CCEO 2023. 9. 13. 09:39
반응형

https://javascript.plainenglish.io/http-request-methods-complete-guide-cced531a42b7

HTTP의 메서드는 여러 개가 있지만 그 중 가장 자주 사용하는 것들만 정리하겠습니다.


GET - 리소스 조회

자원을 받아오기만 할 때 사용합니다.

자원의 상태를 변경시키지 않으므로 Safe method라고 불리기도 합니다.

멱등성을 가지고 있습니다.

멱등성: 동일한 API를 여러 번 호출해도 서버의 상태를 변경시키지 않고 동일한 결과를 얻을 수 있는 성질

POST - 새로운 ID 값으로 리소스 생성

새로운 자원을 추가할 때 사용합니다.

그렇기 때문에 서버의 상태를 변경시키며 비멱등성을 가집니다.

201(Created)를 받아야 정상적으로 서버에 추가 되었음을 확인할 수 있습니다.


PUT - 리소스 대체

존재하는 자원을 변경할 때 사용합니다.

하지만 만약 자원이 존재하지 않으면 새로운 자원을 생성하도록 할 수 있습니다. 이 때는 POST처럼 201(Created)를 받게 됩니다.

같은 요청을 계속 호출해도 해당 대상 리소르를 대체하여 동일한 상태를 만들기 때문에 멱등성을 가지고 있습니다.

존재하는 자원을 변경시킨 경우 200(OK) 또는 204(No Content) 응답코드를 받게 됩니다.

POST vs PUT
POST는 여러 개의 자원에 수행되지만, PUT은 단일 자원에만 수행됩니다.

PATCH - 리소스 수정

한 자원의 데이터를 부분적으로 변경할 때 사용합니다.

수정이 필요한 요소와 ID 값만을 사용하여 해당 요소만을 수정할 수 있습니다.

조금 의외로 멱등성을 가지지 않습니다.

 

그 이유는 값을 추가(append)하는 요청 역시 PATCH가 사용되기 때문입니다.

즉 특정 요소를 추가하는 요청이 사용됨으로 그 결과가 요청마다 매번 달라질 수 있기 때문에 비멱등합니다.

 

PATCH는 몇몇의 브라우저, 서버, 앱 어플리케이션 프레임워크에서 사용이 불가능합니다.

PATCH vs PUT
PATCH는 수정이 필요한 요소와 ID 값만을 사용하여 해당 요소만 수정이 가능합니다. (부분적 업데이트)
반면에 PUT은 수정이 필요한 요소 외에 전체 요소의 값을 보내야 합니다. (자원의 전체를 대체)

DELETE - 리소스 삭제

자원을 삭제할 때 사용합니다.

멱등성을 가지는데, 자원을 삭제하는 요청이므로 반복적으로 요청하더라도 결과가 바뀌지 않습니다.

다만 이미 삭제되었으므로 404(Not Found) 응답을 반환합니다.


멱등성에 대해 표로 정리하면 아래와 같습니다.

https://mangkyu.tistory.com/251


출처1

출처2

출처3

반응형