[CS 정리] HTTP/1.1, HTTP/2, QUIC

June·2021년 5월 21일
0

[CS] CS 지식 정리

목록 보기
6/27

테코톡 - HTTP/1.1, HTTP/2, 그리고 QUIC

HTTP란?

네트워크에서 통신이 일어나는 과정

HTTP는 어플리케이션 레이어다.

TCP

데이터 전송 과정에 데이터가 유실되면 다시 데이터 요청을 하는 등 신뢰성 구축에 신경을 많이 씀

UDP

받는 것에 신경쓰지 않고 데이터를 보냄

TCP/UDP 비교

HTTP

HTTP/0.9

요청이 매우 심플하다. 메소드도 get 밖에 없었다.

HTTP/1.0

헤더가 생겼다. 상태코드, content-type이라는 것도 생겼다.

커넥션 하나당, 요청 하나, 응답 하나만 처리해줄 수 있다.

HTTP/1.1

Pipelining

Pipelining의 단점

첫번째 요청을 받고 첫번째 요청을 처리하는데 시간이 오래 걸리면 두 번째, 세번째도 기다려야하는 단점이 생긴다.

헤더의 중복이 많아서 쓸데 없이 데이터의 크기가 커진다.

HTTP/2

메시지를 header와 data로 분할한다. 그것을 바이너리로 인코딩해서 파싱이나 전송 속도가 올라간다.

스트림이라는 데이터 양방향 흐름안에, 프레임 조각 조각들이 합쳐져서 요청이나 메시지가 된다.

요청과 응답이 다중화, 즉 multiplexing이 가능해진다. 프레임으로 쪼개졌기 때문에 메시지간의 순서라는 것이 사라졌다. 도착한 순서대로 조립이 된다.

우선순위에 가중치를 줄 수 있다.

클라이언트가 요청하지 않은 것도 서버측에서 보내줄 수 있는 것이다. 서버 생각에 분명ㅇ히 곧 이것도 요청할 것 같으면 미리 보재누늑 ㅓㅅ이다.

static dynamic table을 이용해서 중복된 것은 뽑는 것이다.

head의 크기가 85%정도 준다.

QUIC

tcp에서는 스트림이 처리가 되고있는데 도중에 하나가 손실이되면 나머지가 대기를 해야하는 것이다.

이미 HTTP/3이 나온 상태이다.

0개의 댓글