[Network] 13. HTTP1.1와 HTTP2.0 차이점은 무엇인가요?
CMSSKKK opened this issue · 1 comments
CMSSKKK commented
HTTP1.1와 HTTP2.0 차이점은 무엇인가요?
키워드
HOL Blocking
, TCP
CMSSKKK commented
HTTP 1.0과 HTTP 1.1 차이 키워드 : HTTP Pipelining, Keep-Alive
HTTP 1.1
-
HTTP 1.1은 HTTP 1.0을 개선해서 하나의 TCP Connection에 여러 요청을 보낼 수 있도록 했습니다.
이 것을HTTP Pipelining
이라 부릅니다. -
하지만 HTTP Pipelining으로 인해서
HOL Blocking
문제가 발생합니다.
HOL(Head Of Line) Blocking은 여러 요청 중 앞 선 요청이 처리되지 않으면 다른 요청들도 모두 지연되는 것을 말합니다. -
또한 모든 요청마다 동일한 Header를 전송하고 응답했기 때문에 네트워크 자원을 낭비합니다.
-
이러한 문제를 해결하기위해 Image Spriting, Domain Sharding 그리고 CSS, JS 최소화 등으로 그 문제를 해결하고자했습니다.
HTTP 2.0
구글의 SPDY 프로토콜을 기반으로 2015년 승인되었습니다.
Multiplexed Streams
- 하나의 Connection으로 여러 요청을 보내는 것은 동일하나, 요청 순서와 관계없이 Stream으로 응답을 받게 되어 HOL Blocking 문제를 해결하였습니다.
Server push
- 클라이언트의 요청없이 서버가 자원을 보내는 것을 뜻합니다.
- 예를 들어 클라이언트가 자원 A를 요청했을 때, 자원 B가 연관되어있다면 서버가 자동적으로 자원 B를 응답해주는 것입니다.
Stream Prioritization
- 응답의 우선순위를 정해서 우선으로 필요로하는 리소스를 먼저 응답하는 것을 뜻합니다.
Header Compression
- 중복되는 Header를 다시 보내지 않고 클라이언트, 서버 모두 Header Table을 관리하는 방식입니다.
- HPACK 압축 방식을 사용하여 Header를 경량화합니다.