HTTP 메서드

HTTP 요청 메서드의 완전한 가이드(비교표 및 예제 포함).

비교

메서드본문 있음멱등안전캐시 가능
GET
POST
PUT
PATCH
DELETE
HEAD
OPTIONS
TRACE
CONNECT
GET

GET 메서드는 지정된 리소스의 표현을 요청합니다. GET 요청은 데이터를 조회하기만 해야 하며 리소스에 다른 영향을 미쳐서는 안 됩니다. GET 요청은 상태를 변경하지 않으므로 안전하고 멱등한 것으로 간주됩니다.

안전
멱등
캐시 가능
RFC 9110, Section 9.3.1

일반적인 사용 사례

  • 사용자 프로필 또는 계정 세부정보 조회
  • 제품이나 게시물 등 리소스 컬렉션 목록 조회
  • 식별자로 단일 리소스 조회
  • 구성 또는 설정 데이터 로딩
  • 쿼리 매개변수를 사용한 검색 결과 조회
요청
GET /api/users/123 HTTP/1.1
Host: api.example.com
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
응답
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: max-age=60

{
  "id": 123,
  "name": "Alice Johnson",
  "email": "alice@example.com",
  "role": "admin",
  "createdAt": "2025-08-14T10:30:00Z"
}
POST

POST 메서드는 지정된 리소스에 엔티티를 제출하며, 종종 서버에서 상태 변경이나 부작용을 일으킵니다. 일반적으로 새 리소스를 생성하거나 작업을 트리거하는 데 사용됩니다. POST는 안전하지도 멱등하지도 않으므로, 동일한 요청을 반복하면 중복 리소스가 생성될 수 있습니다.

본문 있음
RFC 9110, Section 9.3.3

일반적인 사용 사례

  • 새 사용자 계정 또는 리소스 생성
  • 양식 제출 또는 파일 업로드
  • 이메일 전송 등 서버 측 프로세스 트리거
  • 댓글 또는 메시지 게시
  • 결제 또는 거래 시작
요청
POST /api/users HTTP/1.1
Host: api.example.com
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

{
  "name": "Bob Smith",
  "email": "bob@example.com",
  "role": "member"
}
응답
HTTP/1.1 201 Created
Content-Type: application/json
Location: /api/users/456

{
  "id": 456,
  "name": "Bob Smith",
  "email": "bob@example.com",
  "role": "member",
  "createdAt": "2026-03-02T14:22:00Z"
}
PUT

PUT 메서드는 대상 리소스의 모든 현재 표현을 요청 페이로드로 교체합니다. 리소스가 존재하지 않는 경우 PUT이 리소스를 생성할 수 있습니다. PUT은 멱등하므로, 동일한 요청을 여러 번 수행해도 한 번 수행한 것과 동일한 결과를 생성합니다.

멱등
본문 있음
RFC 9110, Section 9.3.4

일반적인 사용 사례

  • 업데이트된 데이터로 사용자 프로필 교체
  • 특정 URI에 파일 업로드
  • 구성 객체의 전체 표현 업데이트
  • 알려진 URL에 리소스 설정 또는 덮어쓰기
요청
PUT /api/users/123 HTTP/1.1
Host: api.example.com
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

{
  "name": "Alice Johnson-Smith",
  "email": "alice.js@example.com",
  "role": "admin"
}
응답
HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": 123,
  "name": "Alice Johnson-Smith",
  "email": "alice.js@example.com",
  "role": "admin",
  "updatedAt": "2026-03-02T15:10:00Z"
}
PATCH

PATCH 메서드는 리소스에 부분적인 수정을 적용합니다. 전체 리소스를 교체하는 PUT과 달리, PATCH는 요청 본문에 제공된 필드만 업데이트합니다. PATCH는 안전하지도 반드시 멱등하지도 않지만, 멱등하게 구현할 수 있습니다.

본문 있음
RFC 5789

일반적인 사용 사례

  • 이메일이나 표시 이름 같은 단일 필드 업데이트
  • 활성 또는 보관 상태 같은 불리언 플래그 전환
  • 복잡한 리소스의 점진적 수정
  • JSON Patch 또는 JSON Merge Patch 문서 적용
요청
PATCH /api/users/123 HTTP/1.1
Host: api.example.com
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...

{
  "email": "alice.new@example.com"
}
응답
HTTP/1.1 200 OK
Content-Type: application/json

{
  "id": 123,
  "name": "Alice Johnson",
  "email": "alice.new@example.com",
  "role": "admin",
  "updatedAt": "2026-03-02T15:45:00Z"
}
DELETE

DELETE 메서드는 서버에서 지정된 리소스를 삭제합니다. 성공적인 DELETE 후, 동일한 URI에 대한 후속 GET 요청은 404 Not Found를 반환해야 합니다. DELETE는 멱등하므로, 이미 삭제된 리소스를 삭제해도 최초 삭제 이상의 오류를 생성해서는 안 됩니다.

멱등
RFC 9110, Section 9.3.5

일반적인 사용 사례

  • 사용자 계정 또는 프로필 삭제
  • 장바구니에서 항목 제거
  • 파일 또는 업로드된 문서 삭제
  • API 키 또는 액세스 토큰 폐기
  • 메일링 리스트 구독 취소
요청
DELETE /api/users/123 HTTP/1.1
Host: api.example.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
응답
HTTP/1.1 204 No Content
X-Request-Id: req_abc123
HEAD

HEAD 메서드는 서버가 응답에 메시지 본문을 반환하지 않아야 한다는 점을 제외하면 GET과 동일합니다. 리소스의 존재 여부 확인, 헤더 검사 또는 전체 응답을 다운로드하지 않고 링크를 테스트하는 데 유용합니다. HEAD는 안전하고 멱등합니다.

안전
멱등
캐시 가능
RFC 9110, Section 9.3.2
예제
HEAD /api/users/123 HTTP/1.1
Host: api.example.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
OPTIONS

OPTIONS 메서드는 대상 리소스에 사용할 수 있는 통신 옵션을 기술합니다. 브라우저가 실제 요청을 보내기 전에 허용되는 HTTP 메서드와 헤더를 확인하는 CORS 프리플라이트 요청에서 일반적으로 사용됩니다. OPTIONS는 안전하고 멱등합니다.

안전
멱등
RFC 9110, Section 9.3.7
예제
OPTIONS /api/users HTTP/1.1
Host: api.example.com
Origin: https://app.example.com
Access-Control-Request-Method: POST
Access-Control-Request-Headers: Content-Type, Authorization
TRACE

TRACE 메서드는 대상 리소스의 경로를 따라 메시지 루프백 테스트를 수행하며, 수신된 요청을 에코백합니다. 주로 중간 프록시가 요청을 어떻게 수정하는지 확인하기 위한 진단 목적으로 사용됩니다. TRACE는 프로덕션 API에서 거의 사용되지 않으며 보안상의 이유로 자주 비활성화됩니다.

안전
멱등
RFC 9110, Section 9.3.8
예제
TRACE /api/users HTTP/1.1
Host: api.example.com
Max-Forwards: 3
CONNECT

CONNECT 메서드는 대상 리소스로 식별된 서버로의 터널을 설정합니다. 주로 HTTP 프록시와 함께 사용되어 프록시를 통한 엔드투엔드 TLS/SSL 연결을 시작하여 HTTPS 트래픽이 HTTP 프록시를 통과할 수 있게 합니다. CONNECT는 안전하지도 캐시 가능하지도 않습니다.

RFC 9110, Section 9.3.6
예제
CONNECT api.example.com:443 HTTP/1.1
Host: api.example.com:443
Proxy-Authorization: Basic dXNlcjpwYXNz

관련 가이드

RequestDock에서 사용해 보기

실제 HTTP 요청을 보내고 응답을 검사하세요 — 브라우저에서 바로.