← 질문 목록
#147깊이 0
HTTP 메서드 선택의 기준은 무엇인가?
답변 연습
내 답변 적어보기접힘
이 브라우저에 자동 저장 · 0자
모범답안 확인하기내 답변 뒤에 열어보세요
메서드는 CRUD 이름보다 클라이언트가 서버에 요구하는 의미로 고른다. 대상 URI를 누가 정하는지, 표현을 통째로 바꿀지 일부 변경 명령을 적용할지도 함께 본다.
| 메서드 | 표준이 정의한 요청 의미 | 기본 성질 |
|---|---|---|
| GET | 대상의 현재 표현을 가져온다 | 안전·멱등 |
| POST | 대상이 요청 내용을 자원 고유 규칙으로 처리한다 | 안전하지 않음·비멱등 |
| PUT | 요청 표현으로 지정한 대상을 만들거나 대체한다 | 멱등 |
| PATCH | 변경 명령을 대상에 적용한다 | 안전하지 않음·비멱등 |
| DELETE | 대상 URI와 현재 기능의 연결을 제거한다 | 멱등 |
생성은 무조건 POST라는 규칙은 없다. 서버가 새 URI를 정하는 컬렉션 처리는 POST와 잘 맞는다. 클라이언트가 대상 URI를 알고 같은 표현으로 만들거나 대체한다면 PUT이 맞을 수 있다.
안전하다는 말은 클라이언트가 상태 변경을 요구하지 않는다는 뜻이다. GET을 처리하며 접근 로그나 통계를 남길 수는 있다. 삭제 같은 동작을 GET에 숨기면 미리 가져오기와 검색 로봇도 실행할 수 있어 메서드 계약을 깨뜨린다.
멱등성은 같은 요청을 여러 번 보냈을 때 서버에 요청한 효과가 한 번과 같다는 뜻이다. 응답 코드나 로그까지 같다는 뜻은 아니다. DELETE를 다시 보내 404를 받아도 삭제 효과는 더 늘지 않는다.
PATCH 자체는 비멱등으로 정의되지만 변경 문서의 의미에 따라 멱등하게 설계할 수 있다. 기준 버전이 필요한 변경은 강한 ETag와 If-Match로 다른 수정이 끼어들면 실패시킨다.
메서드 이름만으로 업무 재시도 안전성이 완성되지는 않는다. 비멱등 요청은 멱등 키나 적용 여부 확인이 필요하다. 멱등 메서드도 요청 기한·인증·선행 조건을 보고 재시도한다.
추천 꼬리질문
관련 질문
- 실패 응답 코드는 무엇을 기준으로 고르는가?네트워크HTTP 메서드 선택과 HTTP 상태 코드 선택은 모두 HTTP 요청/응답 메시지 설계의 일부이다.
- HTTP 메서드 선택 기준은 무엇인가?네트워크두 질문 모두 HTTP 메서드 선택 기준이라는 동일한 개념을 다루고 있다.
- 리소스 API의 성숙도를 무엇으로 판단하는가?네트워크리소스 API의 성숙도는 HTTP 메서드의 적절한 활용(예: GET, POST, PUT, DELETE) 여부를 판단 기준으로 삼으며, 메서드 선택 기준을 다룬다.
- 클라이언트 요청 결과에 따른 HTTP 상태 코드는 어떻게 고르는가?네트워크
- 배포 방식은 무엇을 기준으로 고르는가?아키텍처 · 분산시스템