정의
웹에서 데이터를 교환하기 위한 텍스트 기반의 표준 프로토콜 버전입니다.
클라이언트와 서버가 요청과 응답을 주고받는 방식의 기반이 되어 가장 많이사용되는 HTTP 버전입니다.
특징
연결 재사용 및 헤더 처리 기능을 향상시킵니다.
💡 Persistent Connection: keep-alive를 통해 TCP 연결을 재사용 가능
💡 파이프라이닝 지원: 요청을 병렬적으로 전송 (하지만 브라우저는 대부분 미지원)
💡 Host 헤더 도입: 가상 호스팅 서버 구분 가능
💡 Transfer-Encoding: chunked 전송을 통한 스트리밍 지원
💡 캐시 명세 강화: Cache-Control, ETag, If-Modified-Since 등 세부 캐시 규칙 추가
장점
웹 성능과 유연성 측면에서의 효율적입니다.
💡 리소스 절약: 하나의 연결로 여러 요청을 처리할 수 있어 TCP 연결 비용 감소
💡 다양한 콘텐츠 타입: MIME 타입을 통해 유연한 콘텐츠 표현
💡 프록시/캐시 제어: 다양한 캐시 정책 및 중간 서버 제어 가능
💡 다중 호스트 지원: 하나의 서버에서 여러 도메인 서비스 가능
사용 예시
일반적인 웹 애플리케이션 통신 기반
브라우저 ↔ 웹 서버: HTML, CSS, JS, 이미지 요청 및 응답
REST API 서버: JSON 기반 요청/응답 처리
CDN 통신: 정적 자산 전송 최적화
코드 예시
HTTP/1.1 요청 구조 예시
GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
Accept: text/html