HTTP의 발전: HTTP/0.9에서 HTTP/3.0까지

0

network

목록 보기
32/39

HTTP 버전별 주요 특징 정리


1. HTTP 초기 버전

1) HTTP/0.9

  • 특징:
    • 초창기 HTTP 버전으로 GET 메서드만 지원.
    • 헤더와 메시지 본문을 지원하지 않음.
    • 텍스트 기반으로 간단한 자원 요청만 가능.
  • 현황: 현재는 거의 사용되지 않음.

2) HTTP/1.0

  • 특징:
    • POST, HEAD 등 다양한 메서드 지원.
    • 헤더를 통한 부가 정보 전달 가능.
    • 지속 연결(Persistent Connection) 미지원.
      • 요청-응답마다 TCP 연결을 열고 닫는 방식.
  • 현황: 일부 레거시 시스템에서 사용될 수 있으나, 대부분 최신 버전으로 교체됨.

2. HTTP/1.1

  • 특징:
    • 오늘날 가장 널리 사용되는 HTTP 버전.
    • 지속 연결(Persistent Connection) 공식 지원.
    • 파이프라이닝(Pipelining) 지원:
      • 하나의 연결에서 요청을 순차적으로 처리.
    • 콘텐츠 협상(Content Negotiation):
      • 클라이언트의 요구에 따라 콘텐츠 타입(예: HTML, JSON)을 선택.
    • 문제점: 헤드라인 블로킹(Head-of-Line Blocking):
      • 첫 번째 요청이 지연되면, 대기 중인 요청들도 지연되는 문제.

3. HTTP/2.0

  • 특징:
    • HTTP 효율과 성능 개선을 목표로 개발.
    • 주요 기능:
      1. 바이너리 프로토콜:
        • 1.1의 텍스트 기반 대신 바이너리 데이터 전송.
      2. 헤더 압축:
        • 헤더 크기를 줄여 전송 효율성 향상.
      3. 멀티플렉싱(Multiplexing):
        • 하나의 연결에서 여러 스트림(Stream)을 병렬로 처리.
        • 헤드라인 블로킹 문제 완화.
      4. 서버 푸시(Server Push):
        • 클라이언트가 요청하지 않은 자원을 미리 전송.
        • 예: HTML 요청 시, 필요한 CSS와 JS 파일을 함께 전송.
  • 장점:
    • 데이터 전송 속도와 네트워크 효율성 향상.
    • 헤더 압축 및 병렬 처리로 대기 시간 감소.
  • 현황: HTTP/1.1과 함께 널리 사용 중.

4. HTTP/3.0

  • 특징:
    • 최신 HTTP 버전, 빠른 데이터 전송을 목표.
    • 주요 변화:
      1. UDP 기반:
        • 기존 버전의 TCP 기반 대신 QUIC 프로토콜 사용.
        • UDP를 기반으로 빠른 연결 설정 및 데이터 전송.
      2. 연결 속도 향상:
        • UDP 특성상 TCP의 연결 설정 과정(TCP 3-way handshake)이 제거됨.
      3. 헤드라인 블로킹 문제 완전 해결:
        • 스트림 독립성 보장.
    • 장점:
      • 연결 속도와 데이터 전송 효율성 극대화.
      • 네트워크 장애 시도 빠른 복구 가능.
  • 현황: 최신 웹 기술을 지원하는 브라우저와 서버에서 점차 도입 중.

HTTP 버전별 비교

버전주요 특징문제점/한계현황
0.9GET 메서드만 지원, 단순 텍스트 요청.헤더 및 메시지 본문 미지원.현재는 거의 사용되지 않음.
1.0다양한 메서드 및 헤더 지원.지속 연결 미지원.일부 레거시 환경에서 사용.
1.1지속 연결, 파이프라이닝, 콘텐츠 협상 지원.헤드라인 블로킹 문제.가장 널리 사용되는 버전.
2.0바이너리 전송, 멀티플렉싱, 헤더 압축, 서버 푸시 지원.여전히 TCP 기반.1.1과 함께 널리 사용 중.
3.0UDP 기반 QUIC 프로토콜, 연결 속도 및 성능 대폭 향상.UDP 기반의 호환성 문제(초기 단계).최신 환경에서 점차 도입 중.

HTTP 버전 학습 포인트

  1. HTTP/1.1:
    • 현재 표준으로 가장 널리 사용.
    • 지속 연결과 콘텐츠 협상의 개념 이해.
  2. HTTP/2.0:
    • 멀티플렉싱과 헤더 압축의 성능 개선 효과.
    • 서버 푸시 개념 이해.
  3. HTTP/3.0:
    • UDP 기반 QUIC 프로토콜의 장점.
    • 네트워크 성능 개선의 이유.

HTTP는 인터넷과 웹의 핵심 기술입니다. 버전별로 특징과 차이를 이해하면, 네트워크와 웹 개발에서 큰 도움이 됩니다. 추가로 궁금한 점이 있으면 언제든지 질문해주세요! 😊

0개의 댓글