-
[네트워크] HTTP/2CS/네트워크 2021. 4. 22. 19:06
HTTP/1.1의 단점
- TCP 기반 위에서 동작하는 프로토콜이기 때문에 신뢰성 확보를 위해 연결을 맺고 끊는 핸드 셰이크가 이루어진다.
- HTTP는 비연결성 프로토콜이기 때문에 한 번의 요청과 응답이 끝나면 연결을 끊어 버린다.
- 핸드 셰이크 오버헤드 극복?
- Keep-alive 기능 추가
- 한 번 맺어졌던 연결을 끊지 않고 지속적으로 유지
- 파이브라이닝
- 하나의 커넥션에서 한 번에 순차적으로 여러 요청을 연속적으로 하고 그 순서에 맞춰 응답을 받는 방식으로 지연 시간을 줄이는 방법
- HOL(Head Of Line) Blocking 이슈 발생
- 먼저 받은 요청이 끝나지 않으면 그 뒤의 요청이 끝났더라도 기다려야 하는 이슈
- Keep-alive 기능 추가
HTTP/2
- 바이너리 프레이밍 계층을 이용해 요청과 응답의 멀티플렉싱을 지원 (양방향 스트림 통신)
- HTTP 메세지를 바이너리 형태의 프레임으로 분리하여 송수신
- 여러 개의 연결 없이 병렬 처리도 할 수 있고 파이브라이닝과는 달리 HOL 이슈도 해결
- 요청 우선순위를 지정할 수 있고 헤더를 압축하여 헤더 오버헤드를 줄일 수 있음
용어 설명
멀티플렉싱
- 하나의 통신 채널을 통해서 둘 이상의 데이터를 전송하는데 사용되는 기술
'CS > 네트워크' 카테고리의 다른 글
[네트워크] Netty (0) 2021.04.22 [네트워크] gRPC (0) 2021.04.22 [네트워크] Sticky Session (0) 2021.04.22 [네트워크] OSGI 7 계층 (0) 2021.04.05 [네트워크] URI와 웹 브라우저 요청 흐름 (0) 2021.04.05