
HTTP 프로토콜에서 메서드는 클라이언트가 서버에 특정 동작을 요청하기 위한 방법입니다. 각 메서드는 고유한 목적과 특성을 가지고 있어 RESTful API 설계와 웹 개발에 중요한 역할을 합니다.
목적: 리소스 조회
특징:
서버로부터 데이터를 요청하는 용도
URL에 데이터가 노출됨 (쿼리스트링)
요청 본문(body)에 데이터를 포함하지 않음
캐싱 가능
목적: 리소스 생성
특징:
서버에 데이터를 제출하여 새 리소스 생성
요청 본문에 데이터 포함
URL에 데이터가 노출되지 않음
멱등성이 없음 (같은 요청을 여러번 보내면 여러 리소스 생성)
목적: 리소스 완전 대체
특징:
대상 리소스를 요청 페이로드로 완전히 대체
리소스가 없으면 생성할 수 있음
멱등성 있음 (같은 요청을 여러번 보내도 결과 동일)
목적: 리소스 삭제
특징:
지정된 리소스 삭제
멱등성 있음 (이미 삭제된 리소스에 대해 DELETE 요청을 보내도 결과는 동일)
목적: 리소스 부분 수정
특징:
리소스의 일부만 업데이트
PUT과 달리 전체를 대체하지 않고 지정된 필드만 변경
엄밀히 말하면 멱등성이 보장되지 않음
목적: 통신 옵션 확인
특징:
서버가 지원하는 메서드 및 기능 확인
CORS(Cross-Origin Resource Sharing)에서 사전 요청
(preflightrequest)으로 사용
목적: 헤더 정보만 조회
특징:
GET과 유사하지만 응답 본문 없이 헤더만 반환
리소스 존재 여부 확인, 메타데이터 확인 등에 유용
안전한 메서드는 서버의 상태를 변경하지 않는 메서드입니다.
멱등성이란 동일한 요청을 여러 번 수행해도 결과가 동일함을 의미합니다.
응답을 캐시할 수 있는 메서드입니다.
- 사용자 목록 조회: GET /users
- 특정 사용자 조회: GET /users/{id}
- 새 사용자 생성: POST /users
- 사용자 정보 완전 갱신: PUT /users/{id}
- 사용자 정보 부분 갱신: PATCH /users/{id}
- 사용자 삭제: DELETE /users/{id}
HTTP 메서드는 각각 고유한 목적과 특성을 가지고 있으며, 이를 올바르게 이해하고 사용하는 것이 웹 애플리케이션과 API 설계의 핵심입니다. 특히 안전성과 멱등성의 개념은 신뢰성 있는 웹 서비스 구축에 매우 중요합니다.
이러한 개념을 잘 이해하고 적용한다면, 더 견고하고 효율적인 웹 애플리케이션을 개발할 수 있을 것입니다.