GET
- 목적: 리소스 조회
- 특징
- 요청 본문(body)을 가지지 않음
- URL에 데이터를 포함하여 전송 (쿼리 파라미터)
- 멱등성(idempotent): 여러 번 호출해도 결과가 동일
예시: GET /users?id=123
POST
- 목적: 새로운 리소스 생성
- 특징:
- 요청 본문에 데이터를 포함
- 멱등성이 없음: 여러 번 호출하면 여러 리소스가 생성될 수 있음
예시: POST /users (본문에 사용자 정보 포함)
PUT
- 목적: 리소스 전체 수정 또는 생성
- 특징:
- 요청 본문에 수정할 전체 데이터를 포함
- 멱등성 있음: 여러 번 호출해도 결과가 동일
예시: PUT /users/123 (본문에 전체 사용자 정보 포함)
PATCH
- 목적: 리소스 부분 수정
- 특징:
- 요청 본문에 수정할 일부 데이터만 포함
- 멱등성이 없을 수 있음
예시: PATCH /users/123 (본문에 변경할 필드만 포함)
DELETE
- 목적: 리소스 삭제
- 특징:
- 일반적으로 요청 본문 없음
- 멱등성 있음: 여러 번 호출해도 결과 동일 (리소스가 이미 없어도 됨)
예시: DELETE /users/123
HEAD
- 목적: GET과 동일하나 응답 본문을 제외한 헤더만 반환
- 특징:
- 리소스를 받지 않고 메타데이터만 확인할 때 유용
예시: HEAD /files/image.jpg (파일 크기, 타입 등만 확인)
OPTIONS
- 목적: 서버가 지원하는 메서드 확인 또는 CORS preflight 요청
- 특징:
예시: OPTIONS /api/data
CONNECT
예시: CONNECT example.com:443 HTTP/1.1
TRACE
- 목적: 요청 메시지 루프백 테스트
- 특징:
- 디버깅 용도로 사용, 보안상 비활성화되는 경우가 많음
예시: TRACE /index.html
각 메서드는 HTTP/1.1 스펙에 정의되어 있으며, RESTful API 설계에서 중요한 역할을 합니다. 메서드 선택 시 그 의미와 용도를 잘 고려해야 하며, 보안과 성능 측면도 함께 고려해야 합니다.