이끌든지 따르든지 비키든지

Software Development/Web

[Web] HTTP의 버전별 특징

SeongHo5 2024. 6. 30. 20:19

HTTP/0.9


개요

  • 도입 연도: 1991년
  • 주요 특징:
    • 단순히 HTML 파일만 전송 가능한 단일 요청-응답 모델
    • GET 요청만 지원
    • 헤더(Header)와 상태 코드(Status Code) 미지원
  • 장점/한계:
    • 프로토콜이 매우 단순하여 구현이 쉬웠으나, 기능 확장이 어려웠고 다양한 콘텐츠 전송이 불가능

HTTP의 시작점이 된 버전으로, 텍스트 기반의 HTML 문서를 가져오기 위해 만들어졌다.

당시 웹의 규모가 크지 않아 이 정도로도 충분



HTTP/1.0


개요

  • 도입 연도: 1996년
  • 주요 특징:
    • 상태 코드(Status Code)와 헤더(Header)의 도입
    • 다양한 콘텐츠 타입 전송 가능 (이미지, 텍스트, 기타 파일 등)
    • 클라이언트-서버 간 상태 정보 교환 가능 (Cookie, Session 등)
  • 장점/한계:
    • 이전 버전 대비 확장성과 활용도가 크게 향상
    • 매 요청마다 연결을 새로 맺는 단점(비효율적)

웹의 급속한 성장에 대응하고자 기능을 확장한 버전

매 요청마다 TCP 연결이 새롭게 이루어져야 하는 단점이 있었지만, HTTP 프로토콜이 본격적으로 웹에서 활용될 수 있는 기반을 마련



HTTP/1.1


개요

  • 도입 연도: 1997년
  • 주요 특징:
    • 지속 연결(Persistent Connection) 도입
      • 한 번 연결 후, 여러 요청을 같은 연결로 처리하여 TCP 핸드셰이크 비용 절감
    • 파이프라이닝(Pipelining) 지원
      • 여러 요청을 병렬로 보낼 수 있으나, 실제로는 구현상의 이슈로 잘 쓰이지 않음
    • 호스트 헤더(Host Header) 필드 도입
      • 하나의 서버가 여러 도메인을 호스팅 가능(가상 호스팅)
    • 캐싱 메커니즘 강화
  • 장점/한계:
    • HTTP/1.0의 단점을 보완, 현재까지도 매우 널리 사용
    • 여러 객체를 가져오기 위한 동시성 문제(헤더 차단 등)는 여전히 존재

가장 오랫동안 표준으로 자리 잡았고, 현재까지도 많은 서버와 브라우저가 사용하는 버전

지속 연결과 호스트 헤더 도입은 웹 서비스를 더욱 폭넓고 효율적으로 운영할 수 있게 만들었다.

 

 

HTTP/2


개요

  • 도입 연도: 2015년
  • 주요 특징:
    • 이진 프레이밍(Binary Framing) 계층 도입
      • 텍스트 기반에서 벗어나 이진 형태로 데이터를 주고받아 전송 효율 극대화
    • 멀티플렉싱(Multiplexing)
      • 하나의 연결로 여러 요청 및 응답을 동시에 처리
      • HTTP/1.1에서의 헤더 차단 문제(Head-of-line blocking) 완화
    • 헤더 압축(HPACK)
      • 반복되는 헤더 정보를 압축하여 전송량 절감
    • 서버 푸시(Server Push)
      • 서버에서 추가 리소스를 능동적으로 푸시하여 웹 로딩 성능 향상
  • 장점/한계:
    • 웹 성능과 보안을 크게 개선(HTTPS 사용이 사실상 기본)
    • 브라우저와 서버에서 지원해야 하므로, 구현 의존성이 존재

스피디(SPDY) 프로토콜을 기반으로 성능 최적화에 초점을 두었다.

특히 멀티플렉싱과 헤더 압축을 통해 네트워크 지연 시간을 줄임.

 

 

HTTP/3


개요

  • 도입 연도: 2020년(표준화)
  • 주요 특징:
    • QUIC 프로토콜 기반
      • TCP 대신 UDP를 사용하며, TLS(보안 계층)과 연결 설정을 통합
    • 빠른 연결 설정
      • TCP의 3웨이 핸드셰이크(3-Way Handshake)를 거치지 않아 지연 감소
    • 개선된 데이터 전송 속도
      • 혼잡 제어나 스트림 간 독립성(한 스트림 지연이 다른 스트림에 영향 X)
    • 연결 복구 기능 강화
      • 연결이 끊기더라도 QUIC이 빠르게 복구
  • 장점/한계:
    • 속도, 보안, 안정성 측면에서 가장 진보된 HTTP 버전
    • 아직은 모든 환경에서 100% 지원되지 않을 수 있으므로, 인프라 구축이 중요

 

'Software Development > Web' 카테고리의 다른 글

URI와 URL의 차이  (0) 2024.07.16
[Web] RESTful한 API란?  (0) 2024.02.20