[ Web ] 3. HTTP Request Methods

 

클라이언트가 웹서버에게 요청하는 목적 및 그 종류를 알리는 수단을 말한다.

 

HTTP Method Request Has Body Response Has Body Safe Idempotent Cacheable
GET Optional
HEAD
POST
PUT
DELETE
CONNECT
OPTIONS Optional
TRACE
PATCH

 

GET

  • 서버에서 데이터를 조회하기 위한 요청
  • URL(URI) 형식으로 서버 측에 리소스를 요청
  • 멱등성 (같은 요청 여러 번 보내도 결과가 같음)
  • 데이터를 변경하지 않음
  • 같은 요청을 여러 번 보내도 결과가 같음
  • 파라미터는 쿼리 스트링(?key=value)을 통해 URL에 붙음
  • URL 길이에 일반적으로 2000자 이내의 제한이 있음
  • GET 요청은 브라우저의 캐시 대상이 되므로, 리소스 조회에 적합

 

HEAD

  • 리소스의 메타데이터(헤더)만 조회
  • GET 과 유사하지만, HEAD는 본문(Body)가 없음
  • Content-Length, Last-Modified, ETag등을 확인 가능
  • 파일 존재 여부나 변경 여부 확인에 활용
  • 불필요한 데이터 전송 줄이기에 유리

 

POST

  • 서버에 데이터 제출, 리소스 생성
  • Request Body에 데이터 담아 전송(Json, Form 등)
  • 멱등 ❌ (같은 요청 여러 번 하면 중복 처리될 수 있음)
  • CSRF 보호 필요

 

PUT

  • 리소스를 완전히 대체하거나 새로 생성
  • 전체 리소스를 덮어쓰므로 부분 수정에는 부적합
  • 멱등성
  • POST 와 유사하나, 기존 데이터를 갱신할 때 사용
  • 리소스의 전체 속성을 알 때만 사용하고 일부만 수정할 경우 PATCH가 적합

 

DELETE

  • 서버에서 특정 리소스(데이터)를 삭제하기 위함
  • 멱등성
  • 실제 삭제 여부는 서버 구현에 따라 다름(논리 삭제 가능성도 존재)

 

CONNECT

  • 클라이언트와 서버 간 SSL/TLS 터널링
  • 클라이언트와 서버 사이의 중간 경유를 위함
  • 보통 Proxy를 통해 HTTPS 연결을 하고자할 때 사용
  • 프록시 서버와 HTTPS 트래픽 처리에 사용
  • 보안상 제한된 환경에서만 사용

 

OPTIONS

  • 서버가 지원하는 HTTP 메서드 목록 확인
  • 서버에서 해당 URL에 허용된 메서드 반환(ex: Allow: GET, POST)
  • CORS Preflight 요청 시 사용됨
  • 응답 헤더의 Access-Control-Allow-*

 

TRACE

  • 요청이 서버에 도달하는 과정을 추적
  • Loop-back 요청 → 서버가 받은 요청을 그대로 반환
  • Request 리소스가 수신되는 경로를 보기위함
  • 웹서버로부터 받은 내용을 확인하기 위해 loop-back 테스트를 할 때 사용
  • 보안상 민감한 정보를 노출할 수 있어 대부분 비활성화
  • 개발/디버깅 단계에서만 사용 권장

 

PATCH

  • 리소스의 일부 속성만 수정
  • 리소스(데이터)의 일부분만 갱신하기 위함
  • PUT과 유사하나, 모든 데이터를 갱신하는 것이 아닌 리소스의 일부분만 수정할 때 쓰임
  • 멱등성을 보장하지 않을 수 있으므로 주의
  • 프로필 수정, 상태값 변경 등에 자주 사용

'Network' 카테고리의 다른 글

[ Web ] 5. REST API  (0) 2025.06.16
[ Web ] 4. HTTP status code  (0) 2025.06.05
[ Web ] 2. Cookie & Session  (0) 2025.06.04
[ Web ] 1. 브라우저 동작 방법  (0) 2025.06.04
Dark Web  (0) 2025.04.16