-
[NETWORK] HTTP1.1 vs. HTTP2.0study/network 2020. 7. 26. 17:56
HTTP
: 웹상에서 클라이언트와 서버 간에 요청/응답으로 정보를 주고받을 수 있는 프로토콜
HTTP/1.1
: 기본적으로 연결당 하나의 요청과 응답을 처리하는 방식
HTTP/1.1의 문제점
1. 연결당 하나의 요청과 응답을 처리하기 때문에 동시 전송 문제와 다수의 리소스를 처기하기에 속도와 성능면에서 이슈가 존재한다.
2. 사양상의 제한으로 클라이언트 요청의 순서와 서버 응답 순서는 동기화가 되어야 하는데 이때 HOL(Head Of Line) Blocking, 즉 특정 응답 지연 문제가 발생한다.
먼저 받은 요청이 끝나지 않으면 그 뒤에 있는 요청의 처리가 아무리 빨리 끝나도 먼저 온 요청이 끝날 때까지 기다려야 함.
3. RTT(Round Trip Time) 증가, 양방향 지연 문제 발생
RTT란 네트워크 시작 지점에서 대상 지점으로 이동하고 다시 시작 지점으로 이동하는데 걸리는 시간
4. 헤더다 크다.
HTTP/1.1의 헤더에는 많은 메타 정보들이 들어있음.
사용자가 방문한 웹 페이지는 다수의 http 요청이 발생하게 되는데 이 경우 매 요청 시마다 중복된 헤더 값을 전송하게 되며 각 도메인에 설정된 쿠키 정보도 매 요청시마다 헤더에 포함되어 전송
HTTP/2.0의 등장
- SDPY(구글 제안 프로토콜) 기반으로 등장
- HTTP/1.1의 성능 및 속도 문제를 개선
HTTP/1.1과의 비교
1. Multiplexed Streams ( 한 커넥션에 여러 개의 메세지를 동시에 주고 받을 수 있음 )
2. 요청이 커넥션 상에서 다중화되므로 HOL 발생 X
3. Stream Prioritization ( 요청 리소스간 의존 관계를 설정 )
4. Header Compression ( 헤더 정보를 HPACK 압축 방식으로 압축 전송 )
5. Server Push ( HTML문서 상에 필요한 리소스를 클라이언트의 요청없이 보내줄 수 있음 )
6. 페이지 로딩 속도 향상
7. HTTP/1.1과의 높은 수준의 호환성
참고
https://goldfishhead.tistory.com/26