HTTP / 1.1
- Text 기반 => 시간이 갈 수록 텍스트 보다는 이미지 동영상 같은 것들을 더 많이 전송하게 되었다.
- 3way handshake 비효율 => 요청보내고 응답받기 위해서는 커넥션을 맺어야 하는데 이를 매번 반복해야 한다.(keep alive 옵션을 통해 일정시간 동안 커넥션 유지가 가능하긴 함)
- pipelining 실패(HOL블로킹) => 요청만 여러개 보내고 이후 응답 받기를 통해 개선하고자 하였으나 특정 요청에서 응답 시간이 길어지는 현상 및 버그 때문에 개선 불가능해졌다.
- 여러 커넥션 제한 => 브라우저마다 최대 컨넥션의 갯수가 정해져있는데 요청이 매우 많을 경우 느려지게된다.
HTTP / 2
- Text => 바이너리 기반(010101)단위로 변경(분석하기 어려움)
- 하나의 커넥션에서 여러 요청가능 => 커넥션 한 번만 맺으면 동시에 여러 개의 요청을 보낼 수 있게 되었다. 또한 우선순위를 설정할 수 있다.
- 서버푸쉬(서버에서 추가 작업 필요) 가능
- 클라이언트에서 콘텐츠 요청
- 서버에서 클라이언트로 html을 보냄
- 클라이언트에서 별도의 css, js요청이 없어도 서버에서 css,js 파일을 보내줌
- HTTPS 필수
HTTP / 3
- TCP 대신 UDP 기반의 QUIC 프로토콜을 사용하여 더 빠른 연결 설정 및 데이터 전송이 가능하여동영상 서비스에서 속도가 빠름
'네트워크' 카테고리의 다른 글
웹소켓 (0) | 2024.04.15 |
---|---|
HTTP(HyperText Transfer Protocol) (0) | 2024.04.12 |
OSI 7 계층 (0) | 2024.04.12 |