본문 바로가기
CSE/공부

[HTTP 웹 기본 지식] 3. HTTP

by 0/0 2025. 8. 19.

HTTP(HyperText Transfer Protocol)는 **웹에서 클라이언트와 서버가 데이터를 주고받는 규약(프로토콜)**이다. 브라우저가 서버에 페이지를 요청하고, 서버가 HTML·이미지·JSON 같은 데이터를 응답하는 과정은 모두 HTTP를 통해 이루어진다. 기본적으로 비연결성(connectionless), 무상태성(stateless) 특성을 가진다. 즉, 요청-응답이 끝나면 연결은 바로 끊기고, 서버는 이전 요청 상태를 기억하지 않는다. 이를 보완하기 위해 쿠키·세션·토큰 같은 기술이 사용된다.


HTTP 요청 구조

HTTP 요청은 다음과 같은 요소로 구성된다.

  1. 요청 라인: 메서드(GET, POST, PUT, DELETE 등), 요청 경로, HTTP 버전
    • 예: GET /index.html HTTP/1.1
  2. 헤더(Header): 브라우저 정보(User-Agent), 인증 토큰, 쿠키, 데이터 형식 등 메타데이터
  3. 본문(Body): 주로 POST나 PUT 요청에서 데이터(payload)를 담는다.

HTTP 응답 구조

서버는 요청을 처리한 후 다음과 같이 응답한다.

  1. 상태 라인: HTTP 버전, 상태 코드(200 OK, 404 Not Found 등), 메시지
  2. 헤더(Header): 콘텐츠 타입(Content-Type), 캐시 정책(Cache-Control), 쿠키 등
  3. 본문(Body): 실제 데이터(HTML, JSON, 파일 등)

주요 특징

  • 무상태(Stateless): 요청 간 상태를 저장하지 않아 확장성이 높다.
  • 확장성: 단순한 규약이므로 다양한 데이터 타입 전송 가능.
  • 버전 변화:
    • HTTP/1.1 → 가장 널리 사용, 요청마다 연결
    • HTTP/2 → 다중화(Multiplexing)로 성능 향상
    • HTTP/3 → QUIC 기반으로 지연 시간 단축, 모바일 환경 최적화