Http2란?
29 May 2019 | Http2작성중…
HTTP2의 탄생배경
-
옛날에 비해서 사이트의 리소스 용량이 커졌다.
-
HTTP 1은 요청할떄마다 새로운 커넥션을 생성하고, HTTP 1.1 에서는 지속 커넥션이라는 개념이 도입되서 커넥션을 재사용할 수 있다. 또한 Request를 미리 서버에 여러개를 날릴 수 있게 변경되었지만 여전히 Request를 보낸 순서대로 Response를 받을 수 있다는 문제점이 생겼다.
-
만약, 처음에 요청한 Request에 문제가 있어서, 응답이 늦어지면 2번째, 3번째에 요청한 Request의 응답도 같이 늦어진다는 문제점이 발생한다.
HTTP1 VS HTTP2 데이터 구조
- HTTP1은 플레인텍스트로 이루어져있다
Request
POST / HTTP 1.1
header_line ( 요청형식, 요청코드 유저 정보, 쿠키 등등 다양한 데이터 담겨있다 )
_blank 빈줄
바디라인
Response
헤더라인
_blank 빈줄
바디라인
-
HTTP 1.1에서 HTTP 요청과 응답은 메시지라는 단위로 구성되어 있다. 메시지는 Header / Body 등의 데이터로 구성되어 있다. 그런데 HTTP2에서는 Frame과 Stream이라는 개념이 추가되었다.
-
Frame은 HTTP2 통신에서 데이터를 주고받을 수 있는 가장 작은 단위이다. 헤더 프레임, 데이터 프레임으로 구성되어 있다.
-
메시지는 HTTP1.1처럼 요청과 응답의 단위이다. 메시지는 다수의 Frame으로 구성되어 있다. 스트림은 클라이언트와 서버사이에 맺어진 연결을 통해 양방향으로 데이터를 주고받는 한개 이상의 메시지를 의미한다. 즉, 프레임이 여러개가 모여, 메시지가 되어, 메시지가 여러개가 모여, 스트림이 되는 구조이다
Headers Frame 헤더프레임
Data Frame 데이터프레임
Comments