record logo record

목차

HTTP 개요

HTTP(HyperText Transfer Protocol)는 WWW(World Wide Web)에 내재된 프로토콜로 팀 버너스리(Tim Berners-Lee)에 의해 1989~1991년에 발명되었습니다. HTML과 같은 하이퍼미디어 문서를 전송하기 위한 Application Layer의 프로토콜입니다.

HTTP 초기 버전에는 버전 번호가 없었습니다. 그러나 차후 버전과 구별하기 위해 버전 번호가 붙었고 다음과 같이 발전해왔습니다.

이번 게시글에서는 HTTP/1.1HTTP/2 에 대해서 알아보겠습니다.

HTTP와 자세한 내용은 이곳 HTTP를 참고해주세요.

HTTP/1.1

HTTP의 첫번째 표준 버전인 HTTP/1.1은 HTTP/1.0이 나온지 몇 달 안되서 1997년 초에 공개되었습니다.

HTTP/1.1은 모호함을 명확하게 하고 많은 개선 사항들을 도입했습니다.

HTTP의 확장

보안 전송을 위한 HTTP

HTTP는 기본적으로 TCP/IP 스택을 기반으로 연결합니다. 그리고 넷스케이프 커뮤니케이션즈(Netscape Communications)는 이것의 토대 위에 추가적인 암호화된 전송 계층인 SSL을 만들었습니다. 그리고 이후 SSL이 표준화 되어 TLS가 되었습니다.

복잡한 애플리케이션을 위한 HTTP

기존 웹은 단순히 읽기 전용의 매체는 아니였습니다. 팀버너스리는 사람들이 문서를 원격으로 추가, 이동 가능한 분산된 파일 시스템의 한 종류로 웹을 상상했었습니다. 1996년도 쯤 HTTP는 저작을 허용하도록 확장되었고 WebDAV라는 표준이 만들어 지면서 특정 애플리케이션들로 확장 되어왔습니다.

그리고 2000년에, HTTP 사용에 대한 새로운 패턴이 고안되었는데 그것이 REST(REpresentational State Transfer) 입니다. 이것은 웹 애플리케이션으로 하여금 브라우저나 서버의 갱신없이 데이터 탐색과 수정을 허용하는 API 제공이 가능해졌습니다.

웹의 보안 모델 완화

웹 보안 모델은 HTTP가 만들어진 이후에 개발되어 왔습니다. 이러한 내용들은 Cross-Origin Resource Sharing(CORS) 혹은 컨텐츠 보안 정책(CSP) 과 같은 스펙 내에 정의되어있습니다.

HTTP/1.1와 HTTP/2

HTTP/1.1의 커넥션은 올바른 순서로 전송되는 요청을 필요로 합니다. 때문에 몇 이론적으로 병렬 커넥션이 가능한 몇몇 경우에는 여전히 많은 양의 오버헤드와 복잡도가 남아있습니다.

이러한 점에서 HTTP/2 프로토콜은 HTTP/1.1 버전과 다른 몇가지 차이점을 가지고 있습니다.

차세대 HTTP

HTTP는 HTTP/2의 릴리즈와 함께 계속된 진화를 거듭하고 있습니다. HTTP의 확장성은 여전히 새로운 기능들을 추가하는데 사용되고 있습니다. 다음은 2016년에 나타난 HTTP의 새로운 확장들을 볼 수 있습니다.

References