개인의 기록
  • 소개
  • 프로젝트
  • 글
  • 링크

© 2026 newgirok

← 글 목록

HTTP — 하이퍼텍스트 전송 프로토콜

2025년 9월 18일
HTTP

HTTP(HyperText Transfer Protocol)는 웹 브라우저와 서버 사이에서 HTML 문서, 이미지, 데이터 등을 주고받는 애플리케이션 계층 프로토콜입니다.

HTTP의 특성

요청-응답 구조

클라이언트(브라우저)가 요청을 보내면 서버가 응답합니다. 서버는 먼저 데이터를 보낼 수 없습니다.

무상태성 (Stateless)

각 요청은 독립적으로 처리됩니다. 서버는 이전 요청을 기억하지 않으므로 로그인 상태 유지에는 쿠키나 세션이 필요합니다.

HTTP 요청 구조

GET /index.html HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0
Accept: text/html
  • 메서드: 요청의 의도 (GET, POST, PUT, DELETE 등)
  • 경로: 요청하는 리소스 위치
  • 버전: HTTP 프로토콜 버전
  • 헤더: 추가 메타데이터

HTTP 응답 구조

HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234

<html>...</html>

HTTP 메서드

메서드용도
GET리소스 조회
POST리소스 생성
PUT리소스 전체 수정
PATCH리소스 일부 수정
DELETE리소스 삭제
HEAD헤더만 조회
OPTIONS허용 메서드 확인

HTTP 상태 코드

범위의미예시
2xx성공200 OK, 201 Created
3xx리다이렉션301 Moved Permanently, 304 Not Modified
4xx클라이언트 오류400 Bad Request, 401 Unauthorized, 404 Not Found
5xx서버 오류500 Internal Server Error, 503 Service Unavailable

HTTP 헤더 주요 항목

헤더설명
Content-Type본문 데이터 형식 (text/html, application/json 등)
Content-Length본문 크기 (바이트)
Authorization인증 정보
Cache-Control캐싱 정책
Cookie쿠키 데이터

HTTP 버전 발전

  • HTTP/1.0: 요청마다 새 TCP 연결
  • HTTP/1.1: Keep-Alive로 연결 재사용, 파이프라이닝 도입
  • HTTP/2: 멀티플렉싱으로 병렬 요청 처리
  • HTTP/3: UDP(QUIC) 기반으로 지연 최소화

HTTP는 평문(plaintext)으로 전송되므로 도청에 취약합니다. 이를 해결한 프로토콜이 TLS를 적용한 HTTPS입니다.

← 이전 글게이트웨이 — 서로 다른 네트워크를 연결하는 장치
다음 글 →HTTP/2 — 멀티플렉싱과 헤더 압축