본문 바로가기

개발/Network

[Network] HTTP 버전별 특징

면접을 진행하면서 단골 질문이 될 수 있는 내용들에 대해 하나씩 공부하고, 정리중이다.

 

HTTP/1.0

한 연결당 하나의 요청을 처리하도록 설계되었다. 이는 매 요청마다 3-way handshake를 계속해서 열어야 했기 때문에 RTT(Round Trip Time)가 증가한다는 단점이 있었다.

이를 해결하기 위해, 코드 압축, 이미지 Base64인코딩 등의 방법을 사용했다.

 

HTTP/1.1

매번 TCP 연결을 하지 않고, 한 번 3-way handshake로 초기화를 한 후 keep-alive 옵션으로 여러개의 파일을 송수신 할 수 있게 되었다. keep-alive 옵션은 1.0에도 있기는 했지만 1.1부터 표준화 되었다.

그럼에도 불구하고 1.1에서는 문제가 여전히 존재한다.

HOL Blocking(Head Of Line Blocking)은 하나의 파일의 다운로드가 지연될 경우 이후에 다운로드 될 파일들이 대기하게 되면서 다운로드가 지연되는 상태를 말한다. 그리고 HTTP/1.1의 헤더에는 많은 메타 데이터들이 압축되지 않은 상태로 전송되기 때문에 "무거운 헤더"라는 한계도 있다.

 

HTTP/2

HTTP/1.1의 문제를 해결하기 위해 HTTP/2에서는 멀티플렉싱, 헤더 압축, 서버 푸시, 요청 우선순위 처리 등을 지원한다.

  • 멀티플렉싱
    멀티플렉싱이란 여러개의 스트림을 사용하여 송수신하는 것을 의미한다. 이로 인해 특정 스트림의 패킷이 손실되더라도 해당 스트림에만 영향이 있고, 나머지 스트림은 정상적으로 동작하게 된다.
  • 헤더 압축
    HTTP/1.1의 무거운 헤더를 해결하기 위해 "허프만 코딩" 압축 알고리즘을 통해 헤더를 압축한다.
  • 서버 푸시
    HTTP/2에서는 클라이언트의 요청 없이도 서버가 리소스를 푸시할 수 있다.
  • HTTPS
    HTTP/2 는 HTTPS 위에서 동작한다. 애플리케이션 계층과 전송 계층 사이에 SSL/TLS 계층을 넣은 신뢰할 수 있는 HTTP 요청을 의미한다. 구축하는 방법은 크게 세 가지인데, 직접 CA를 통해 구매한 인증키를 기반으로 서비스를 구축하거나, HTTPS를 제공하는 로드 밸런서를 두어도 되고, HTTPS를 제공하는 CDN을 앞단에 두어서 구축할 수도 있다.
    일단 SSL/TLS는 독립적으로 내용이 방대하므로, 추후에 따로 학습한 후 다루고자 한다.

HTTP/3

TCP위에서 동작하는 HTTP/2와는 달리 QUIC라는 계층 위에서 돌아가며, UDP기반이다. 따라서 3-way handshake 과정이 없고, 초기 연결을 설정할때 지연시간이 더 짧다는 특징이 있다.


참고 : 면접을 위한 CS 전공지식 노트, 주홍철, (주)도서출판 길벗, https://www.yes24.com/Product/Goods/108887922

 

면접을 위한 CS 전공지식 노트 - 예스24

디자인 패턴, 네트워크, 운영체제, 데이터베이스, 자료 구조, 개발자 면접과 포트폴리오까지!CS 전공지식 습득과 면접 대비, 이 책 한 권이면 충분하다!개발자 면접에서 큰 비중을 차지하는 CS(Comp

www.yes24.com

 

'개발 > Network' 카테고리의 다른 글

[Network] TCP & HTTP 비교  (0) 2023.10.22
[HTTP] 비연결성  (0) 2022.05.02
[HTTP] TCP : 3way handshake  (0) 2022.03.24
[Network]로드밸런싱(Load Balancing)  (0) 2022.03.14