RFC 7540 — HTTP/2 개요와 핵심 개념

서론 HTTP2는 HTTP/1.1을 업데이트하면서 많이 바꾼 점을 더 다듬는 방향이었습니다. HTTP 1에서 HTTP/1.1 업데이트 하면서 HTTP Pipelining을 추가했었지만 그래도 요청 동시성 문제를 남았었습니다 HTTP Pipelining: HTTP/1.1에서 사용했었지만 응답 순서 보장 때문에, 요청이 연달아 들어와도 서버는 요청 순서대로 응답해야하기에, 뒤 요청은 대기 상태가되는 문제를 가짐 HOL(head of line blocking) 문제도 있었고 HOL: HTTP/1.1 파이프라인에서 응답 순서 보장되기 때문에 응답이 크거나 느릴 때 뒤 응답은 대기되는 문제 HTTP 파이프라인에서 응답은 순서대로 처리해야하기에 불필요한 블로킹이 생기는데, HTTP/2에서 우선순위와 스트림 멀티플렉싱 등이 추가해서 어느 정도 완화했지만, HTTP/2도 TCP 하나를 공유하므로 HOL은 발생하긴 합니다, 하지만 이 부분은 HTTP/3로 이어지죠 HTTP 헤더 필드는 중복도 있고 불필요한 데이터들도 많아서 불필요한 네트워크 트래픽이 발생했습니다 TCP 혼잡 윈도우(Congestion Window)가 새 TCP 연결에서 상황에 맞지 않게 조절되어 지연을 발생시킬 수 있었죠. TCP 혼잡 윈도우(Congestion Window)는 송신자가 네트워크 혼잡을 피하기 위해 ACK 되지 않은 채 올려둘 수 있는 바이트의 상한을 제어하는 변수 HTTP/2는 최적화 매핑을 통해 이 문제를 해결했는데, HTTP 의미론(HTTP Semantics)을 기본 연결에 적용하는 방향으로 단일 TCP 연결 안에서 여러 요청과 응답을 번갈아 가며 전송할 수 있게해서 해결했습니다. 즉 불필요한 연결을 줄이고 연결을 HTTP/1.1보다 길게 가져갑니다. 또 HPACK으로 HTTP 헤더를 압축하여 효율적으로 사용하면서, 우선순위 지정을 허용하여 중요도가 높은 요청을 우선적으로 처리할 수 있게 함으로써 요청 처리 시간이 빨라져 성능이 더욱 향상되었죠. ...

April 18, 2026 · 9 min · DSeung001