[네트워크] HOL 블로킹 문제와 HTTP

HOL 블로킹 문제

  • Head of Line
  • 하나의 HTML 기반 페이지에 비디오 클립과 기타 요소들이 있을 때, 비디오 클립이 병목 링크를 통과하는 데 시간이 오래 걸려 뒤의 작은 객체들이 기다려야 한다.

HTTP/1.1

  • 여러 개의 병렬 TCP 연결을 열어 웹페이지의 객체들이 병렬적으로 전송되도록 한다.

HTTP/2

프레이밍 - 각 HTTP 메시지를 독립적인 프레임으로 나누고 같은 TCP 연결에서의 요청과 응답 메시지를 인터리빙한다. - 비디오 클립이 1000개의 프레임, 작은 객체가 2개의 프레임으로 구성되면 1. 비디오 클립 1000개 중 1프레임 전송 1. 각 소형 객체의 2개 중 1프레임 전송 1. 비디오 클립 1000개 중 2프레임 전송 1. 각 소형 객체의 2개 중 2프레임 전송 - 소형 객체 전송 완료 - 프레이밍은 HTTP/2 프로토콜의 프레임으로 구현된 프레이밍 서브 계층에서 이루어 진다. - 클라이언트의 HTTP 요청과 서버의 HTTP 응답은 프레이밍 서브 계층에서 프레임으로 쪼개지고 인터리빙되어 하나의 지속적인 TCP 연결상에서 전송된다.

메시지 우선순위화 - HTTP 요청들의 상대적 우선순위를 조정, 1~256 사이의 가중치 부여 - 서버는 우선순위가 높은 요청을 위한 프레임을 제일 먼저 보낸다.

서버 푸싱 - 서버는 클라이언트의 요청 없이도 추가적인 객체를 푸시하여 보낼 수 있다. - 서버가 HTML 기반 페이지가 필요로 하는 객체들을 식별해 요청하기 전에 해당 객체를 보낸다. - 해당 요청들을 기다리는데 소요되는 추가 지연을 없앤다.

links

social