← 질문 목록
#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로 다른 수정이 끼어들면 실패시킨다.

메서드 이름만으로 업무 재시도 안전성이 완성되지는 않는다. 비멱등 요청은 멱등 키나 적용 여부 확인이 필요하다. 멱등 메서드도 요청 기한·인증·선행 조건을 보고 재시도한다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

HTTP 메서드 선택의 기준은 무엇인가?