Written on
·
325
0
put 메소드는 한정된 리소스를 일부 수정하고 그 전체 값을 대체할 때 사용한다고 이해했습니다.
그런데, 제 머리 속에는 서버에 메소드를 전달하여 데이터 처리를 하는 것이
쿼리를 수행하는 것으로 느껴집니다.
예를 들어 1번 유저의 정보를 수정한다고 가정할 시
put/post 메소드 모두 같은 쿼리가 수행 될 것 같습니다.
그렇다면, put과 post의 차이는 pathvariable 사용여부의 차이 일까요?
Answer 1
2
안녕하세요. HUISOO LEE님
put 메소드는 한정된 리소스를 일부 수정하고 그 전체 값을 대체할 때 사용한다고 이해했습니다.
-> put 메소드는 일부 수정이 아니라 해당 리소스 전체를 다 대체하는 목적으로 사용합니다.
반면에 POST는 전체 리소스를 수정해도 되고, 일부 리소스를 수정해도 됩니다. 서비스를 구현하는 입장에 따라 다릅니다.
PUT은 스펙이 전체 리소스를 변경하는 것이 목적이고, POST는 더 넓은 범위에서 구현을 자유롭게 하면됩니다.
따라서 실제 구현은 같을 수도 있고, 다를 수도 있습니다.
그리고 POST와 PUT은 조심할 점이 있는데, PUT은 멱등이 되도록 구현해야하고, POST는 멱등이어도 되고, 멱등이 아니도록 구현해도됩니다.
감사합니다.