HTTP 버전 별차이

박현민·2025년 4월 21일

게임서버

목록 보기
4/8

HTTP프로코톨 버전 별 차이점 정리

HTTP(HyperText Transfer Protocol)는 웹 통신의 근간이 되는 프로토콜이다.

1991년 첫 버전이 나온 이후 여러 차례의 버전 업데이트를 거쳐 성능과 안정성 면에서 많은 발전을 이루었다

이번 글에서는 HTTP/0.9 버전 부터 HTTP/3 버전까지 각 버전의 특징과 발전 과정을 알아볼 것 이다.

HTTP/0.9


HTTP/0.9는 1991년도에 나온 최초의 HTTP 버전으로 매우 단순한 구조를 가지었다.

지원하는 메서드는 GET 하나 뿐이며, 클라이언트는 서버에게 HTML 문서를 요청할 수 있었고,

서버는 그에 대한 응답으로 오직 HTML 파일의 내용만을 반환했다.

헤더 정보가 없었기에, 메타데이터를 주고 받을 수 없었으며, HTML 문서만을 처리할 수 있었는 구조였다.

요청 예시

GET /mypage.html

응답 예시

<HTML>
A page with an image
 <IMG SRC="/myimage.gif">
</HTML>

HTTP/1.0


HTTP/1.0은 1996년에 나온 HTTP/0.9의 한계를 보완한 헤더를 도입한 버전이다.

이를 통해 클라이언트와 서버는 서로 다양한 정보를 교환할 수 있게 되었으며,
GET 이외에 POST , HEAD다양한 메서드가 추가 되었다.

하지만 여전히 요청마다 TCP 연결을 새로 요청해야 했기 때문에, 여러 개의 리소스를 요청할 경우 성능 저하가 발생했다.

요청 예시

GET /mypage.html HTTP/1.0
User-Agent: KCSA_Mosaic/2.0 (Windows 3.1)

응답 예시

HTTP/1.0 200 OK
Date: Tue, 15 Nov 1994 11:58:00 GMT
Server: CERN/3.0 libwww/2.17
Content-Type: text/html

<HTML>
A page with an image
	<IMG SRC="/myimage.gif">
</HTML>

HTTP/1.1


HTTP/1.1은 1997년에 나온 HTTP/1.0의 문제였던 TCP 연결을 새로 만드는 방법을 개선하여,

연결 유지(Persistent Connection)을 도입한 버전이다.

이를 통해 하나의 TCP 연결을 재사용할 수 있게 되었으며, 파이프라이닝(PipeLining) 기능을 통해 여러 요청을 동시에 보내는 것도 가능해졌다.

또한 Host 헤더의 도입으로 하나의 IP 주소에 여러개의 도메인을 할당하는
가상 호스팅이 가능해졌고, 캐시 처리, 압축 전송, 상태 코드 정교화 등의
다양한 기능이 추가
되었다.

요청 예시

GET /mypage.html HTTP/1.1
Host: www.example.com
Connection: keep-alive

응답 예시

HTTP/1.1 200 OK
Date: Mon, 21 Apr 2025 13:00:00 GMT
Server: Apache/2.4.1
Content-Type: text/html
Content-Length: 123

<HTML>
A page with an image
 <IMG SRC="/myimage.gif">
</HTML>

HTTP/2


HTTP/2는 2015년에 나온 HTTP/1.1의 성능 문제를 해결하기 위해 만들어진 버전으로, 텍스트 기반이 아닌

바이터리 프레이밍 (binary framing) 방식을 도입하여 데이터 전송의 효율성을 크게 높혔다.

가장 핵심적인 기능은 멀티 플렉싱(Multiplexing) 기능으로, 하나의 TCP 연결에서 여러 개의 연결과 응답을 동시에 주고 받을 수 있게 되었다.

이를 통해 헤드 오브 라인 블로킹(Head-of-line blocking) 문제를 줄일 수 있었다.

❓ 헤드 오브 라인 블로킹: 앞줄에 있는 하나의 느린 요청이, 뒤에 있는 모든 요청을 막아버리는 현상

또한 헤더 압축(HPACK)을 통해 중복되는 헤더 데이터를 줄이고, 서버가 클라이언트에게 리소스를 미리 전송할 수 있는 서버 푸시(Server Push) 기능도 제공한다.

HTTP/3


HTTP/3기존 TCP 기반의 한계를 극복하기 위해 UDP 기반의 새로운 전송 프로토콜인 QUIC(Quick UDP Internet Connections)를 사용한 2022년에 나온 최신 HTTP 버전이다.

HTTP/2에서의 멀티플렉싱 기능은 여전히 유지되지만, TCP를 기반으로 하기 때문에 발생하는 문제인 헤드 오브 라인 블로킹(transport-level HOL blocking)을 완전히 제거할 수 없었다.

HTTP/3는 이를 해결하기 위해 전송 계층부터 TCP → QUIC으로 변경하였다.

profile
자라고 있는 게임개발자

0개의 댓글