네트워크
HTTP
다른 이름: HyperText Transfer Protocol , HTTP/1.1 , HTTP/2 , HTTP/3
정의
HyperText Transfer Protocol. OSI 7계층(응용 계층) 클라이언트-서버 통신 프로토콜. TCP 80번 포트. 요청(GET/POST/PUT/DELETE)과 응답(200/404/500) 구조. 무상태(Stateless), 텍스트 기반. HTTP/1.1(지속 연결), HTTP/2(멀티플렉싱), HTTP/3(QUIC) 진화
상세 설명
기술 스펙
- HTTP/1.1: 텍스트 기반, 헤더+바디, 지속 연결(Keep-Alive), 파이프라이닝
- HTTP/2: 바이너리 프레이밍, 멀티플렉싱, 서버 푸시, HPACK 헤더 압축
- HTTP/3: QUIC(UDP 기반), 0-RTT 연결, 패킷 손실 독립적 스트림
- 메서드: GET(조회), POST(생성), PUT(수정), DELETE(삭제), PATCH(부분 수정), HEAD, OPTIONS
- 상태 코드: 2xx(성공), 3xx(리다이렉트), 4xx(클라이언트 오류), 5xx(서버 오류)
- 헤더: Content-Type, Authorization, Cookie, Cache-Control, ETag
- 캐싱: Cache-Control, ETag, Last-Modified
실무 활용
- 웹 브라우징: HTML, CSS, JS, 이미지 전송
- REST API: JSON/XML 데이터 교환
- CDN: Cloudflare, Akamai 콘텐츠 배포
- 파일 다운로드: Range 요청으로 부분 다운로드
장점
- 범용성: 모든 브라우저/서버 지원
- 무상태: 서버 확장 용이
- 캐싱: 성능 최적화
- HTTP/2: HOL Blocking 해결, 멀티플렉싱
- HTTP/3: QUIC로 모바일 네트워크 최적화
단점 및 제약
- HTTP/1.1: HOL Blocking, 동시 연결 제한 (6~8개)
- 오버헤드: 헤더 반복 전송 (HTTP/2 HPACK으로 개선)
- 무상태: 세션 관리 복잡 (Cookie, JWT)
- TCP 기반: 패킷 손실 시 지연 (HTTP/3는 UDP)
호환성
모든 브라우저, 서버, 클라이언트. HTTP/2는 2015년~, HTTP/3는 2020년~
표준 정보
표준화 기구: IETF RFC 2616 (HTTP/1.1), RFC 9113 (HTTP/2), RFC 9114 (HTTP/3)
출시 연도: 1991년