HTTP 2.0은 1.1이랑 뭐가 다를까?

0

Web & Network

목록 보기
6/9
post-thumbnail
post-custom-banner

속도의 차이

당연스럽게도 HTTP의 버전업이 이루어 지면서 속도가 빨라졌습니다.

이는 HPACK 압축으로 헤더를 줄이고 응답의 우선순위를 정해 응답을 보내는 방식을 사용하는 것이 HTTP 1.1보다 더 빠른 응답속도를 기록할수 있는 이유입니다.

헤더를 줄이고..~~ 우선순위를 정하고~~ 하는 것은

헤더를 줄이고..~~ 우선순위를 정하고~~ 뭐라는거야

결국 HTTP 1.1의 단점을 보완했다는 이야기입니다. HTTP 1.1의 단점은 아래와 같습니다.

  • Connection 한 개당 하나의 요청을 처리하도록 설계됨

    • 동시에 리소스를 주고 받을 수 없음
    • requestresponse가 순차적으로 이루어짐
    • HTTP 문서 내에 많은 리소스(image, css, script)를 처리하려면 요청할 리소스의 개수에 비례하여 대기시간이 길어짐
  • HOL(Head Of Line) Blocking이 발생할 수 있다.
    HOL 블로킹이란 네트워크에서 같은 큐에있는 첫번째 패킷이 지연되므로써 성능이 저하되는 현상이다.

  • RTT(Round Trip Time) 증가
    첫번째 단점에서 말한 특성때문에 매번 요청 별로 Connection을 만들게 되고 TCP상에서 동작하는 HTTP의 특성상 3-way handshake가 반복적으로 일어나서 불필요한 RTT 증가와 네트워크 지연을 초래하여 성능을 지연시킨다.

  • 무거운 Header 구조
    매 요청마다 중복된 헤더 값을 전송하게 되며, 서버 도메인에 관련된 쿠키 정보도 헤더에 함께 포함되어 전송된다. 이러한 반복적인 헤더 전송, 쿠키 정보로 인해 헤더 크기가 증가한다.


그래서 이런걸 보완한 HTTP 2.0

HTTP2.0HTTP1.1을 완전하게 재작성한 것이 아니라 프로토콜의 성능에 초첨을 맞춰 수정한 버전이라고 생각하면 됩니다.

특히 지연시간이나 네트워크, 서버 리소스 사용량 등과 같은 성능 위주로 개선되었습니다.

주요 특징

  • Multiplexed Streams : connection 한 개로 동시에 여러 개의 메시지를 주고 받을 수 있도록 개선
  • Stream Prioritization : 리소스 간의 의존관계에 따른 우선순위를 설정하여 리소스 로드 문제를 해결함
  • Header Compression : 헤더 정보를 HPACK 방식으로 압축한다.

references

post-custom-banner

0개의 댓글