지난 20년간 월드 와이드 웹(WWW)은 눈부신 속도로 발전해 왔습니다. 그러나 웹 기술이 고도화될수록 더 빠르고 효율적인 통신·파일 전송 방식이 요구되면서, 기존의 HTTP는 점차 기술적 한계에 부딪히게 되었습니다. 이러한 배경에서 등장한 것이 바로 차세대 웹 프로토콜 HTTP/2입니다.

HTTP/2란 무엇인가?
HTTP/2는 월드 와이드 웹의 근간을 이루는 하이퍼텍스트 전송 프로토콜(HTTP)의 최신 버전입니다. 2015년 2월에 공식 승인되었으며, 최초의 HTTP가 탄생한 지 약 20년 만에 이루어진 대대적인 개편이라는 점에서 의미가 큽니다.
HTTP/2는 페이지 로딩 시간을 단축하고 서버와 브라우저 간 통신 효율을 크게 개선합니다. 현재 대부분의 주요 브라우저가 HTTP/2를 지원하고 있지만, 사용자 입장에서 체감되는 변화는 크지 않습니다. 덕분에 많은 사람들이 HTTP/2의 존재조차 모른 채 그 혜택을 누리고 있는 셈입니다.
HTTP/2는 어떤 역할을 하는가?
HTTP/2는 HTTP의 후속 버전으로서, 기존 프로토콜의 모든 특성을 개선하는 데 초점을 맞추고 있습니다. 이전 버전과의 호환성(하위 호환성)을 유지하기 위해 HTTP의 핵심 기능은 그대로 계승하되, 성능 면에서 획기적인 향상을 도입했습니다.
HTTP와 HTTP/2 모두 다음 사항들을 정의합니다.
- 웹 브라우저와 서버가 각종 명령에 어떻게 반응해야 하는지
- 정보의 비트(bit)가 웹을 통해 한 컴퓨터에서 다른 컴퓨터로 어떻게 전송되는지
- 메시지가 어떻게 생성·형식화·전송되는지
즉, HTTP와 HTTP/2는 웹 콘텐츠가 사용자의 컴퓨터로 전달되는 방식의 표준을 규정합니다. 차이점이 있다면 HTTP/2는 이 모든 과정을 이전 세대보다 훨씬 빠르게 처리한다는 것입니다.
멀티플렉싱 스트림(Multiplexed Streams)
HTTP/2 프로토콜을 통해 서버와 클라이언트 사이에서 양방향으로 주고받는 일련의 텍스트 형식 프레임을 '스트림(stream)'이라고 부릅니다. 기존 HTTP는 한 번에 하나의 스트림만 전송할 수 있었고, 다음 스트림을 보내기 전까지 지연 시간이 발생했습니다.
HTTP/2는 새로운 바이너리 프레이밍 계층(binary framing layer)을 도입해 이 문제를 근본적으로 해결했습니다. 클라이언트와 서버는 HTTP/2 페이로드를 작고 독립적이며 관리하기 쉬운 인터리브(interleaved) 프레임 시퀀스로 분해할 수 있으며, 수신 측에서 이를 다시 조립합니다. 이를 통해 여러 개의 동시 오픈된 독립적 양방향 시퀀스를 연속 스트림 간 지연 없이 교환할 수 있습니다.
주요 이점:
- 병렬로 처리되는 멀티플렉싱 요청·응답이 서로를 차단하지 않습니다.
- 단일 TCP 연결만으로도 여러 데이터 스트림을 전송하며 네트워크 자원을 효율적으로 활용할 수 있습니다.
- 웹 성능 향상, 지연 감소, 검색 엔진 결과 개선으로 이어집니다.
- 네트워크 및 IT 자원 운영에 드는 CapEx(자본 지출)와 OpEx(운영 비용)를 절감합니다.

서버 푸시(Server Push)와 캐시 푸시(Cache Push)
서버 푸시는 서버가 클라이언트의 요청 없이도 추가적인 캐시 가능 정보를 미리 전송할 수 있게 해주는 기능입니다. 예를 들어 클라이언트가 리소스 A를 요청했는데, A가 리소스 B를 참조한다는 것이 알려져 있다면 서버는 별도의 요청을 기다리지 않고 B를 A와 함께 전송할 수 있습니다. 클라이언트는 푸시된 리소스 B를 캐시에 저장해 두었다가 나중에 활용합니다. 이 기능은 요청-응답 왕복 과정 전체를 생략하게 해 주며 네트워크 지연을 줄여줍니다. 원래 서버 푸시는 구글이 SPDY 프로토콜에서 처음 도입한 개념입니다.
HTTP/2의 또 다른 개선점은 캐시 푸시입니다. 이는 클라이언트의 캐시를 선제적으로 갱신하거나 무효화하여, 서버가 클라이언트가 실제로 원하지 않는 푸시 대상 리소스를 식별할 수 있도록 돕습니다.
주요 이점:
- 클라이언트는 불필요한 푸시 리소스를 거절해 효율적인 캐시 저장소를 유지할 수 있고, 아예 서버 푸시를 비활성화할 수도 있습니다.
- 클라이언트는 동시에 멀티플렉싱되는 푸시 스트림 수를 제한할 수 있습니다.
- 서버는 푸시 리소스의 우선순위를 지정할 수 있으며, 이것이 HTTP/2와 HTTP 간 성능 차이의 핵심 요소 중 하나입니다.
- 서버는 클라이언트가 요청한 정보와 함께 푸시 리소스를 동일한 TCP 연결 안에서 멀티플렉싱할 수 있습니다.
- 클라이언트는 캐시된 리소스를 여러 페이지에 걸쳐 재사용할 수 있습니다.
- 클라이언트는 푸시된 리소스를 캐시 메모리에 저장해 둡니다.
바이너리 프로토콜(Binary Protocols)
HTTP/2는 텍스트 기반 프로토콜을 바이너리 프로토콜로 전환하면서 성능을 크게 끌어올렸습니다. 기존 HTTP가 텍스트 명령을 처리해 요청-응답 주기를 실행했다면, HTTP/2는 바이너리 명령에 의존합니다. 이로 인해 동일한 작업을 0과 1의 형태로 훨씬 짧은 시간 안에 처리할 수 있습니다.
HTTP/2를 지원하는 브라우저는 텍스트 명령을 네트워크 전송 전에 바이너리 코드로 변환합니다. 다만 바이너리 프레이밍 계층은 HTTP 서버·클라이언트와는 하위 호환되지 않는다는 점에 유의해야 합니다.
주요 이점:
- HTTP의 텍스트 특성에서 비롯되는 보안 위협(예: 응답 분할 공격)을 방지합니다.
- 압축, 우선순위 지정, 멀티플렉싱, TLS 효율적 처리, 흐름 제어 등 HTTP/2의 핵심 기능을 구현할 수 있게 합니다.
- 명령의 컴팩트한 표현으로 구현과 처리가 용이해집니다.
- 클라이언트와 서버 간 견고하고 효율적인 데이터 처리가 가능합니다.
- 처리량(throughput)이 향상되고 네트워크 지연이 줄어듭니다.
- 기존 HTTP에 비해 오류 발생 가능성이 낮습니다.
- 네트워크 자원을 매우 효율적으로 활용합니다.
- 데이터 파싱 시 오버헤드가 적습니다.
- 네트워크 부담(network footprint)이 가벼워집니다.

스트림 우선순위 지정(Stream Prioritization)
HTTP/2는 클라이언트가 특정 데이터 스트림에 우선순위를 부여할 수 있도록 허용합니다. 서버가 반드시 이 지시를 따를 의무는 없지만, 이 메커니즘 덕분에 서버는 사용자 요구에 맞춰 네트워크 자원 배분을 최적화할 수 있습니다.
스트림 우선순위는 각 스트림에 할당되는 가중치(weight)와 종속성(dependency)을 기반으로 작동합니다. 모든 스트림은 서로 종속 관계에 있으며, 1~256 사이의 가중치가 부여됩니다. 스트림 우선순위 메커니즘은 아직 논쟁의 여지가 있는 주제이지만, 단일 TCP 연결에서 여러 데이터 스트림을 처리하는 HTTP/2의 능력과 결합되면 우선순위가 다른 서버 요청들이 동시에 도착하는 효과를 낼 수 있습니다.
주요 이점:
- 네트워크 지연이 주는 부정적 영향을 줄입니다.
- 사용자 경험과 페이지 로딩 속도가 개선됩니다.
- 서버와 클라이언트 간 데이터 통신이 최적화됩니다.
- 네트워크 자원을 매우 효율적으로 활용합니다.
- 핵심 콘텐츠 요청의 전달 시간이 단축됩니다.
상태 기반 헤더 압축(Stateful Header Compression)
미디어가 풍부한 웹사이트를 기존 HTTP로 탐색할 때, 클라이언트는 내용이 거의 유사한 헤더 프레임을 수없이 반복해서 전송하게 됩니다. 모든 클라이언트 요청이 서버가 요청 작업을 수행하는 데 필요한 정보를 최대한 담아야 하기 때문입니다. 이 과정은 지연과 불필요한 자원 낭비로 이어집니다.
HTTP/2는 대량의 중복 헤더 프레임을 압축하는 기능을 갖추고 있으며, 안전하고 간단한 헤더 압축 방식인 HPACK 사양에 의존합니다. 클라이언트와 서버는 이전 클라이언트-서버 요청에서 사용된 헤더 목록을 함께 유지함으로써 중복 헤더 프레임 문제를 직접적으로 해결합니다.
주요 이점:
- 자주 사용되는 헤더와 대형 헤더를 인코딩해 헤더 프레임 전체를 전송할 필요가 없어지고, 각 스트림의 개별 크기가 크게 줄어듭니다.
- 압축된 헤더의 데이터 스트림을 노리는 CRIME 같은 보안 공격을 방지합니다.
- 멀티플렉싱 메커니즘을 효율적으로 활용합니다.
- 스트림 우선순위 지정이 효율적으로 이루어집니다.
- 자원 오버헤드가 감소합니다.

HTTP/2의 실질적인 효과
HTTP/2는 기술의 잠재력을 극대화해 미래의 요구와 기대에 부응하는 것을 목표로 합니다. 실제 환경에서 HTTP/2가 제공하는 이점은 다음과 같습니다.
웹 및 모바일 웹 성능 향상 – HTTP/2는 한 번의 클라이언트-서버 통신 주기에서 더 많은 데이터를 주고받을 수 있습니다. 이는 사용자당 대역폭이 제한된 모바일 데이터 네트워크에서 인터넷 서비스 접근 지연을 줄이는 데 큰 효과를 발휘합니다.
더 저렴한 고속 인터넷 – HTTP/2는 데이터 통신의 효율을 높여, 인터넷 제공업체가 고속 인터넷 품질을 유지하면서도 전체 비용을 절감할 수 있게 합니다.
보안 강화 – HTTP/2는 텍스트 기반 애플리케이션 계층 프로토콜을 노리는 위협에 취약하지 않습니다. 또한 'Security by Obscurity' 방식을 활용해 클라이언트와 서버 간 민감한 데이터 전송을 보호합니다.
확장된 도달 범위 – HTTP/2가 가져오는 이점은 인터넷 제공업체의 운영 부담을 줄여 주며, 결과적으로 전 세계적인 인터넷 커버리지 확대로 이어질 수 있습니다.
풍부한 미디어 웹 경험 – HTTP/2가 월드 와이드 웹에 제공하는 기술적 특성과 장점은 더 빠른 페이지 로딩 속도로 미디어 중심 콘텐츠를 전달할 수 있는 인프라를 마련해 줍니다.
마무리
HTTP/2는 비교적 새로운 프로토콜이지만, 지원 범위는 꾸준히 확대되고 있습니다. 현재 Microsoft Edge, Google Chrome, Safari, Firefox, Android용 Chrome 등 대부분의 인터넷 브라우저가 HTTP/2를 지원하며, Apache HTTP Server, Tomcat, NGINX 같은 주요 웹 서버도 네이티브 지원을 포함하고 있습니다. 의심할 여지 없이 HTTP/2는 미래 월드 와이드 웹의 표준 프로토콜이 될 것입니다.