Web
HTTP
초코푸딩
2022. 10. 8. 12:52
HTTP 1.1
- Persistent Connection : 지정한 타임아웃동안 커넥션을 닫지 않는 방식
- Pipelining : 하나의 커넥션에서 응답을 기다리지 않고 순차적인 여러 요청을 연속적으로 보내 그 순서에 맞춰 응답을 받는 방식으로 지연 시간을 줄이는 방법
문제점 : head of line blocking, Header구조의 중복
HTTP/2
- 기존 HTTP/1.X버전의 성능 향상에 초점을 맞춘 프로토콜
- 네이버, facebook, instagram에서 사용중
- HTTP 메시지 전송 방식의 변화 : 바이너리 프레이밍 계층 사용으로 파싱&전송속도가 향상되고 오류 발생 가능성이 낮아졌다.
- 프레임으로 쪼개졌기 때문에 요청과 응답의 다중화(multiplexing)가 가능해졌다. -> head of line blocking 해결
- 리소스간 우선 순위를 설정 가능하다.
- Server Push : 어차피 요청할텐데 미리 줘버리자..
- Header 압축: 헤더의 크기를 줄여 페이지 로드 시간 감소
QUIC
- TCP의 한계(지연불가피)를 극복하려는 전송 프로토콜
- 전송 속도 향상
- Connection UUID라는 고유한 식별자로 서버와 연결하기 때문에 커넥션 재수립이 필요없다.
- TLS 기본 적용
- IP Spoofing 으로 Replay attck을 방지한다.
- 독립 스트림 사용
- 구글과 유튜브 사용중