HTTP/2는 인터넷에서 클라이언트-서버 간 상호 작용의 속도와 보안을 개선하기 위한 HTTP 표준의 주요 업그레이드입니다. HTTP/2는 이전 버전과의 호환성을 유지하면서 여러 새로운 기능을 추가합니다. 따라서 HTTP/2를 지원하지 않는 브라우저와 서버는 계속 정상 작동하고, 지원하는 브라우저와 서버는 향상된 성능을 활용할 수 있습니다.
HTTP/2 개선 사항의 중점 부분은 속도입니다. HTTP/1의 주요 한계는 지정된 연결에서 한 번에 하나의 리소스 요청만 허용된다는 것입니다. 대부분의 경우처럼 수십 개의 이미지, 스크립트 및 스타일시트로 구성된 웹페이지의 로드 시간을 최소화하기 위해 브라우저는 일반적으로 사이트에 대한 여러 HTTP/1 연결을 한꺼번에 열어 각 연결에 상당한 오버헤드가 필요한 리소스를 동시에 요청할 수 있습니다. HTTP/2는 멀티플렉스 연결을 사용하여 단일 연결로 여러 리소스를 전송함으로써 클라이언트와 웹 서버 간의 연결 수를 크게 줄입니다.
또한 HTTP/2는 압축을 광범위하게 사용하여 대역폭을 절약함으로써 성능을 향상시킵니다. HTTP/2에서는 헤더가 사람이 읽을 수 있는 일반 텍스트가 아닌 압축된 바이너리로 전송됩니다. 상당한 대역폭 절약은 (헤더를 압축 및 압축 해제하기 위해) CPU 부하가 약간 증가하는 것과 헤더(예: 디버깅 목적)를 읽을 수 없는 사용자에게 불편을 주는 것을 상쇄합니다.
또한 HTTP/2는 리소스 우선순위 지정 기능을 도입하여 사용자의 페이지 로딩 경험을 개선합니다. 이제 웹 브라우저와 기타 클라이언트는 리소스를 수신할 순서를 지정할 수 있습니다. HTTP/2를 제대로 지원하는 브라우저는 사용자가 먼저 봐야 하는 리소스의 우선순위를 지정하여 페이지를 훨씬 빠르게 렌더링할 수 있습니다. HTTP/2 성능의 조기 테스트 결과, 일부 페이지는 거의 2배 빠르게 로드되는 것으로 나타났습니다.
HTTP/2가 HTTP에 대한 보안 요구 사항을 명시적으로 변경하지 않았지만, HTTP/2를 사용하는 거의 모든 브라우저는 웹사이트에서 SSL/TLS를 활성화해야 하며 이는 모든 의도와 목적에서 필수입니다. HTTP/2는 클라이언트에 대해 단일 멀티플렉스 연결을 사용하므로 웹사이트 보안 비용이 상당히 감소했습니다. 브라우저에서 열린 여러 연결에 대해 각각 SSL/TLS 핸드셰이크(클라이언트와 서버가 신원을 확인하고 암호화 키를 교환하는 작업)를 수행해야 하는 대신, 클라이언트 세션의 전체 기간에 대해 한 번만 수행하여 처리할 수 있습니다.
NGINX Plus
HTTP/2와 TLS는 사이트 성능을 개선하고 사용자에게 사이트와의 상호 작용이 안전함을 알릴 수 있습니다. HTTP/2를 처음 구현하든 또는 경쟁사를 따라잡기 위해 노력하고 있든 관계없이 HTTP/2의 기능, 장점 및 단점에 대한 심도 있는 토론을 보려면 이 컨퍼런스 강연을 시청하십시오.