HTTP 1.1 특징
(단점)
RTT (Round Trip Time) : 비연결성이 디폴트이므로, TCP에서 동작하는 특성상 매 연결마다 handshake가 반복적으로 일어나, 불필요한 자원 소모와 RTT가 증가하니까 결국 네트워크 성능 떨어짐.
HOLB (Head of Line Blocking) - 특정 응답 지연 : 순차적으로 데이터를 요청하고 받아야 하므로, 먼저 들어온 request의 response가 처리되지 않으면, 나중에 들어온 request의 response가 처리되었어도 서버가 클라이언트에게 보내주지 못하고 기다리고 있어야됨.
<aside> 💡 [HOLB 2종류]
HTTP의 HOLB : res에 대해 resp가 순서대로 오면 좋겠어. 따라서 이를 위해 지연 발생.
TCP의 HOLB : TCP는 패킷의 순서를 보장함. 순서대로 패킷이 들어와야되고, 순서대로 패킷이 처리(파싱)되어야 함. 따라서 이를 위해 지연 발생
</aside>
Multiplexed Streams : pipelining처럼 하나의 연결에 req 연속해서 여러 번 가능. 그렇지만, resp 순서대로 도착안해도 됨. → HTTP 1.1의 Keep-Alive, Pipelining의 개선 → HTTP의 HOLB 해결! 그치만 TCP의 HOLB는 아직..
Server Push : 클라이언트가 req 안했어도 서버가 먼저 리소스를 보내줄 수 있음
page.html
includestyle.css
,image.png
라고 하자.
Stream Optimization : 연계된 리소스 간 우선순위를 설정하여 브라우저의 렌더링을 매끄럽게 함.
UDP
를 사용함!