HTTP 요청 메서드 정리

HTTP는 아홉 가지 표준 요청 메서드를 정의하지만 실제 트래픽은 그중 몇 가지만 주로 사용합니다. 이 표는 각 메서드의 역할과 안전·멱등 여부, 성공 호출이 반환하는 상태 코드를 정리한 것입니다.

업데이트:

메서드용도안전?멱등?성공 상태
GETRetrieve a resourceYesYes200 OK
HEADRetrieve headers only, no bodyYesYes200 OK
POSTCreate a resource or trigger an actionNoNo201 Created
PUTReplace a resource entirelyNoYes200 OK / 204 No Content
PATCHApply a partial updateNoNo200 OK
DELETERemove a resourceNoYes200 OK / 204 No Content
OPTIONSCORS preflight; list allowed methodsYesYes204 / 200 OK
TRACEEcho the request back for diagnosticsYesYes200 OK
CONNECTOpen a tunnel, e.g. HTTPS via a proxyNoNo200 OK

참고

자주 묻는 질문

GET과 POST의 차이는 무엇인가요?
GET은 부작용 없이 리소스를 조회하며 안전하게 반복할 수 있고 매개변수는 URL에 담깁니다. POST는 무언가를 만들거나 동작을 실행하며 상태를 바꿀 수 있어 무작정 반복하면 안 됩니다.
HTTP 메서드가 '안전(safe)'하다는 것은 무슨 뜻인가요?
안전한 메서드는 서버 상태를 절대 바꾸지 않으므로 부담 없이 호출할 수 있습니다. GET, HEAD, OPTIONS, TRACE가 안전하며 POST, PUT, PATCH, DELETE는 아닙니다.
PUT과 PATCH의 차이는 무엇인가요?
PUT은 보낸 내용으로 리소스 전체를 교체하고, PATCH는 선택한 필드만 부분적으로 변경합니다. PUT은 멱등이라 반복해도 결과가 같지만 PATCH는 일반적으로 멱등이 아닙니다.
HEAD 메서드는 무엇에 쓰나요?
HEAD는 GET과 같지만 응답 본문을 반환하지 않습니다. 전체 내용을 내려받지 않고 리소스 존재 여부, 크기, 헤더를 확인할 때 유용합니다.