Network

[Network] HTTP/1.1과 HTTP/2의 차이는 무엇일까?

sagecode 2025. 6. 8. 03:56

HTTP/1.1

HTTP/1.0에서 발전한 것이 바로 HTTP/1.1이다. 매번 TCP 연결을 하는 것이 아니라 한 번 TCP 초기화를 한 이후에 keep-alive라는 옵션으로 여러 개의 파일을 송수신할 수 있게 바뀌었다. 한 번 3-way-handshake가 발생하면 그다음부터 발생하지 않는다.

 

1.1의 헤더에는 쿠키 등 많은 메타데이터가 들어있고 압축이 되지 않아 무겁다. 또한 직렬처리로 인해 순차적으로 데이터를 보낼 때, 한 번에 하나씩 보내므로 HOL Blocking이 발생한다. 네트워크에서 같은 큐에 있는 패킷이 지연되는 현상을 말한다.

 

HTTP/2

HTTP/2는 지연시간을 줄이고 응답시간을 더 빠르게 할 수 있다. 멀티플렉싱, 헤더 압축, 서버 푸기, 요청의 우선순위 처리를 지원한다.

멀티플렉싱

멀티플렉싱이란 여러 개의 스트림을 사용하여 송수신한다는 것이다. 이를 통해 요청간 순서를 기다릴 필요가 없어지게 되므로 빠른 전송이 가능하다.

헤더 압축

HTTP/1.1에서 헤더의 크기가 너무 컸다. 허프만 코딩 압축 알고리즘을 사용하여 HPACK 압축 형식을 갖는다.

서버 푸시

HTTP/1.1에서는 클라이언트가 서버에 요청을 해야 파일을 다운로드 받을 수 있었지만, HTTP/2는 클라이언트 요청 없이 서버가 바로 리소스를 푸시할 수 있다. html을 읽으면서 css,js 파일을 한번에 서버에서 푸시하여 클라이언트에 먼저 줄 수 있다.

항목 HTTP/1.1 HTTP/2
요청 처리 방식 직렬 처리 (한 번에 하나씩) 병렬 처리 (한 연결로 여러 개 요청 처리)
헤더 압축 없음 (매번 전체 헤더 전송) 있음 (HPACK으로 헤더 압축)
연결 방식 요청마다 개별 연결 또는 Keep-Alive 사용 하나의 TCP 연결에서 멀티플렉싱
성능 느림. 많은 요청 시 지연 빠름. 지연 시간 줄고 대역폭 절약
서버 푸시 지원 안 함 지원함 (서버가 미리 리소스를 보낼 수 있음)
요청 우선순위 없음 있음 (클라이언트가 요청 우선순위 지정 가능)

 

'Network' 카테고리의 다른 글

[Network] 공인(Public) IP vs 사설(Private) IP  (2) 2025.06.14
[Network] ARP vs RARP  (1) 2025.06.13
[Network] TCP vs UDP 차이가 무엇일까?  (1) 2025.06.11