Next-Squad/Interview-Question

[Network] 13. HTTP1.1와 HTTP2.0 차이점은 무엇인가요?

CMSSKKK opened this issue · 1 comments

HTTP1.1와 HTTP2.0 차이점은 무엇인가요?

키워드

HOL Blocking, TCP

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를 경량화합니다.

Reference