HTTP/2 (원래 HTTP 2.0이라고 불림)은 월드 와이드 웹을 위해 사용되는 하이퍼텍스트 전송 프로토콜의 두 번째 버전입니다. 주로 SPDY 프로토콜을 기반으로 하며, HTTP 헤더 필드의 데이터 압축, 데이터 전송의 멀티플렉싱, 서버 푸시와 같은 조치를 구현하여 네트워크 지연 시간을 줄이고 클라이언트 페이지 로드 속도를 향상시킵니다. HTTP/2는 여전히 HTTP 요청 메서드, 상태 코드 및 헤더 필드를 활용하며, HTTP의 응용 의미를 변경하지 않습니다. 주로 메시지 전송 형식을 수정하여 이진 프레이밍 도입을 통해 성능을 향상시킵니다.
HTTP는 가장 널리 사용되는 인터넷 애플리케이션 프로토콜입니다. 초기 HTTP 프로토콜 버전은 단순했습니다: HTTP/0.9는 단 한 줄의 프로토콜로 월드 와이드 웹을 시작했으며; HTTP/1.0는 인기 있는 HTTP/0.9를 확장한 공식 사양이었습니다; HTTP/1.1이 IETF에 의해 최초의 공식 표준으로 발표되기까지는 시간이 걸렸습니다. 초기 단계에서의 단순함은 애플리케이션 성능의 대가를 치렀습니다: HTTP/1.1은 동시성을 달성하고 지연 시간을 줄이기 위해 클라이언트가 여러 연결을 사용해야 했고; HTTP/1.1은 요청 및 응답 헤더 필드를 압축하지 않아 불필요한 네트워크 트래픽을 초래했습니다; HTTP/1.1은 효과적인 리소스 우선 순위를 지원하지 않아 기본 TCP 연결의 활용도가 낮아졌습니다.
네트워크 애플리케이션이 사람들의 일상 생활에 통합됨에 따라 그 범위, 복잡성 및 중요성이 계속 확장되었습니다. HTTP 프로토콜의 문제를 해결하기 위해 HTTP/2가 도입되었습니다. HTTP/2는 HTTP의 요청 메서드, 상태 코드 및 헤더 필드를 계속 사용하며, 응용 의미를 변경하지 않았습니다. 주로 메시지 전송 형식을 수정하여 네트워크 지연 시간을 줄이고 클라이언트 페이지 로드 속도를 개선하는 데 기여합니다.
HTTP/2와 HTTP/1.1은 웹 페이지 및 기타 리소스를 네트워크를 통해 전송하는 데 사용되는 두 가지 다른 버전의 HTTP(하이퍼텍스트 전송 프로토콜)입니다. 두 가지 사이에는 몇 가지 주요 차이점이 있습니다:
HTTP/2는 HTTP/1.1에 비해 성능, 효율성 및 기능에서 상당한 개선을 제공합니다. 따라서 현대 웹 애플리케이션에 더 나은 선택입니다. 그러나 일부 구형 클라이언트와 서버는 여전히 HTTP/1.1만 지원할 수 있습니다. 실제로는 서버가 두 프로토콜 모두를 지원하도록 하여 향후 호환성과 최대 성능 이점을 확보하는 것이 가장 좋습니다.
HTTP/3, 또한 QUIC(Quick UDP Internet Connections)라고도 불리는 것은 HTTP의 최신 버전으로, HTTP/2에 비해 많은 이점을 제공합니다:
이러한 이점들 덕분에 HTTP/3는 HTTP/2보다 웹 성능과 보안을 개선할 수 있는 매력적인 옵션입니다.
curl 명령어를 사용하여 HTTP/2 요청을 할 수 있습니다. 이를 위해서는 curl의 버전이 HTTP/2를 지원해야 합니다. 다음을 실행하여 확인할 수 있습니다:
curl --version
그리고 기능 목록에서 HTTP2를 찾아야 합니다. 버전이 HTTP/2를 지원하는 경우, 다음과 같이
-http2
플래그를 사용하여 HTTP/2를 활성화할 수 있습니다:
curl -v --http2 https://example.com
텐센트 클라우드의 EdgeOne 서비스는 HTTP/2, HTTP/3와 같은 현대 프로토콜을 광범위하게 지원합니다. 각 프로토콜의 지원 방법은 다음과 같습니다: