HTTP/1.1, HTTP/2의 특징

2327 단어 HTTP

HTTP/1.1



HTTP는 오랜 세월에 걸쳐 기능 추가와 개량이 거듭되어 왔다. 현재는 HTTP/1.1이 가장 보급되고 있다.

HTTP Keepalive



HTTP/1.0 이전에는 웹 브라우저에서 HTTP 요청을 보낼 때마다 연결을 설정하고 웹 서버가 HTTP 응답을 전달한 단계에서 연결을 닫는 방법이 사용되었습니다.
이 방법에서는, 웹 페이지에 화상 데이터가 내장되어 있는 경우, 화상 취득을 위해 다시 접속을 확립할 필요가 있기 때문에, 쓸데없는 통신이 발생하고 있었다.
HTTP/1.1 이후에서는, 접속을 계속해서 이용하는 방식이 되어, 이 기능을 keepalive라고 부른다.

HTTP 파이프라인



일반적으로 HTTP 응답을 받을 때까지 다음 HTTP 요청을 보낼 수 없습니다.
그러나 HTTP/1.1에서는 HTTP 응답을 기다리지 않고 여러 HTTP 요청을 보낼 수있는 HTTP 파이프 라인이라는 기능이 지원됩니다.
이에 의해, 복수의 HTTP 요구를 단시간에 처리할 수 있다.


HTTP2



비약하는 데이터량의 증가에 대응하기 위해 2015년에 공개된 것이 HTTP/2이다.

스트림에 의한 다중화



HTTP 파이프라인은 "HTTP 요청의 순서대로 HTTP 요청을 반환해야 한다"는 제약이 있기 때문에, 복수의 HTTP 요청이 송신되어도, 어느 하나의 HTTP 응답의 처리에 시간이 걸리는 경우, 그 이후 HTTP 응답은 그 처리를 기다려야했다.
이 문제를 해결하기 위해 HTTP/2는 하나의 연결에 "스트림"이라고하는 여러 개의 가상 통신 경로를 형성하여 각 스트림 내에서 독립적 인 상호 작용을 가능하게합니다. HTTP 응답의 대기 상태가 발생하는 것이 없어져, 보다 빠르고 효율적으로 데이터의 교환이 가능하게 되었다.



바이너리 형식 사용



HTTP/1.1 이전에는 HTTP 요청이나 HTTP 응답의 교환을 텍스트 형식의 포맷으로 해왔다. HTTP/2에서는, 바이너리 형식(컴퓨터가 취급하기 위한 데이터 형식)의 포맷이 되었기 때문에, 변환 처리 시간이나 Web 브라우저나 Web 서버의 부담을 가볍게 할 수 있다.

헤더 압축



HTTP에서의 교환 헤더 정보에서 HTTP 응답은 웹 브라우저의 종류 등, HTTP 요청은 웹 서버의 제법 등이 중복되는 부분이 많다.
HTTP/2에서는 중복 데이터의 전송을 피하기 위해, HPACK라고 불리는 압축 방식을 이용해, 변경이 있던 부분만을 전송하고 있다.

서버 푸시



HTTP/2에서는, HTTP 리퀘스트 내용을 기초로 Web 서버가 필요한 파일을 판단해, 사전에 Web 브라우저에 송신할 수 있다.
예를 들어, HTML 파일에 이미지가 내장된 경우, 웹 서버는 이미지에 대한 HTTP 요청을 수신하지 않아도 미리 이미지 데이터를 전송한다.

참고



일러스트 도해식 이 한 권으로 전부 아는 Web 기술의 기본

좋은 웹페이지 즐겨찾기