Post와 Put 차이

일반적으로 GET은 조회, POST는 등록, PUT은 수정, DELETE는 삭제라고 생각한다.

POST와 PUT의 차이는 무엇인가

POST

post는 서버에 새 리소스를 등록하는 작업을 한다. 등록하는 리소스는 요청 BODY 에 담겨 넘겨진다. 응답은 200(확인) 또는 204(내용없음)이 적절하다.

PUT

요청한 URI에 이미 리소스가 존재한다면 PUT과 같이 전달된 body는 원본 서버에 수정된 버전으로 변경되어야 한다. 만일 리소스가 존재하지 않는다면 서버로 요청된 데이터로 새 리소스를 생성할 수 있다. 새 리소스가 생성된 경우 201(created)응답을 사용자에게 알려준다. 기존 리소스가 수정된 경우 200(확인) 혹은 204(내용 없음) 응답을 보내야한다. 리소스를 생성할 수 없거나 수정 할 수 없는 경우 적절한 오류 응답을 제공해야한다.

그래서 POST와 PUT의 차이는?

POST는 새 리소스를 생성, PUT은 리소스를 수정 혹은 생성하는 역할을 한다. 따라서 POST가 두번 실행된다면 리소스는 두개가 생기는 것이고 PUT이 두번 실행된다면 리소스가 두번 수정되거나 리소스가 하나 생기고 한번 수정되는 것이다.

참고

HTTP/1.1: Method Definitions (w3.org)