http1? http2?

2020-04-06
  • web
  • http/1.1 의 단점

    하나의 connection 당 하나의 요청을 처리하도록 설계되어 있다.

    HOL(Head Of Line) Blocking 특정 응답의 지연

    한 문서에 여러 자원이 필요하다고하면, 특정 자원의 대기 시간이 길어 짐에 따라 다른 자원들이 기다리는 현상이 발생한다.

    RTT( Round Trip Time ) 증가

    매요청 마다 connection 을 만든다.

    무거운 HEADER

    다양한 헤더 및 쿠키등을 들고다닌다.

    http/1.1 의 단점 을 극복하기위한 노-력

    Image Spriting, 이미지 스프라이팅

    요청 수를 줄이기 위해 큰 이미지하나에 작은이미지를 다 때려넣고 잘라서 사용한다..

    Domain Sharding, 도메인 샤딩

    브라우져에서 다수의 connection 을 생성해 병렬로 요청한다. 하지만 도메인 별로 connection 수가 제한되어 있다고 한다.

    Minify CSS/Javascript

    css/javascript 를 압축한다.

    Data URI Scheme

    이미지를 base64인코딩으로 html 에 박아서 보낸다.

    Load Faster

    css 를 html 문서의 위에 배치, script 를 아래에 배치..

    http/2 ?

    구글의 SPDY 로부터 시작.

    그저 갓

    그럼 뭐가 달라졌나?

    Multiplexed Streams

    한 커넥션으로 동시에 여러개의 메세지를 주고 받을 있으며, 응답은 순서에 상관없이 stream으로 주고 받는다.

    Stream Prioritization

    동시에 여러 자원을 받다보니 일어날 수 있는 문제를, 자원간 의존관계를 설정하여 해결했다.

    Server Push

    클라이언트가 자원을 추가로 요청하기전에 미리 서버에서 push 할 수 있다.

    Header Compression

    Huffman Encoding 기법을 사용하여 중복된 헤더를 전부 보내지 않는다.

    출처