[Http] Post와 Put의 차이점

eunji·2022년 10월 7일
0

백엔드분과 협업을 하다보면 api에 대해서 이야기를 나누는 경우가 많이 생기는데 이번에 post와 put의 차이점에 대해서 이야기하다가 정확하게 짚고 넘어가고자 간단하게 포스팅을 작성하게 되었다.

HTTP POST

유저가 새로운 정보를 생성하기 위해 http body에 정보를 담아 서버에 요청을 보내게 되는데 이때 사용하는 방식이 POST방식이다.

이때 POST는 멱등하지 않는데 여기서 멱등하지 않다는 말의 뜻은 여러번 시도할 경우 모두 결과값이 같지 않다는 것을 의미한다.

3번의 POST요청 > 3개의 다른 리소스 생성

POST /meal : 새로운 meal이 생성된다

HTTP PUT

리소스가 존재하냐 안하냐에 따라서 행위의 결과가 다르게 나타나는데 만약 리소스가 존재한다면 그 리소스를 업데이트하고 존재하지 않는다면 리소스가 생성된다.

PUT /MEAL/{존재하는 meal id} : 존재하는 meal id에 존재하는 정보를 overwrite한다.
PUT /MEAL/{존재하지 않는 meal id} : 존재하지 않는 meal id를 가진 새로운 meal이 생성된다

둘의 차이?

  1. Post의 경우 resource identifier가 필요없지만 put의 경우 resource identifier를 나타내줘야 한다.

  2. Post의 경우 멱등하지 않기 때문에 보내는 요청마다 다른 결과를 리턴하지만 Put의 경우 같은 resource identifier로 여러번 요청을 보내도 동일한 결과값을 받는다.(=멱등하다)

profile
프롱이

0개의 댓글