개발자

rest에서 put, post 의 차이

2023년 01월 25일조회 175

put은 서버에 자원을 한번만 생성하는 것이고, post는 무한히 생성하는 것으로 알고 있는데, 그러면 보통 rest를 구성할 때 post보다는 put만 사용하는 것이 좋나요? (로그인과 로그아웃을 제외한)

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 3

profile picture

익명

작성자

2023년 01월 25일

추가로 똑같은 object를 보내는 것을 내부적으로 어떻게 구별하는지 궁금합니다 !

손정현님의 프로필 사진

안녕하세요 | 보통 rest를 구성할 때 post보다는 put만 사용하는 것이 좋나요? 구현하고자 하는 기능에 따라 달라질 것 같아요. 보통 PUT의 경우는 /collection-resource/:resourceID가 붙고 POST의 경우는 /collection-resource의 형태입니다. 그래서 PUT의 경우는 여러개의 요청이 들어와도 제공되는 ID로 동일한 리소스를 변경/생성 한다는 개념을 가지고 있어요. 반면 POST는 여러개의 요청이 들어오면 다 다른 생성 요청으로 인식하고 수행합니다. (멱등성) PUT은 알고 계신 것처럼 "리소스가 없으면 생성"의 개념도 있지만 일반적으로 리소스를 덮어쓸때 주로 많이 사용하는것 같아요. 관련해서 잘 정리한 블로그가 보여서 첨부합니다. - https://kingjakeu.github.io/study/2020/07/15/http-post-put/

profile picture

익명

작성자

2023년 01월 25일

답변 정말 감사드립니다!!! 많은 도움을 얻고 있습니다.

😎님의 프로필 사진

Api 행위에 따른 약속이라고 생각 하시면 될 것 같아요. Restful 하다고 하죠 CRUD Get : Read 조회한다 Post : Create 생성한다 Put : Update 수정한다 Delete : Delete 삭제한다 이런 의미를 내포하고 있습니다. 유저를 생성할때 /create-users 이런식으로 만들기보단 Post /users 이런식으로 하죠 post 인걸 보고 유저를 생성하나보다? 예상 할수 있죠 Put도 똑같습니다 /update-users 이런식으로 하기 보단 Put /users/:id 아 어떤 id를 가진 유저를 수정하나 보다 예상할 수있져 어떤 행위냐에 따라 post와 put을 적절하게 사용하시면 됩니다 어떻게 규칙을 만들지는 팀내에서 규칙으로 정하시면 됩니다. 예를들어 회원 탈퇴를 구현하는데 삭제니까 delete 로 할 수도 있고, 삭제라고 해서 진짜 유저 정보를 삭제하는 아니라 유저의 탈퇴 여부만 수정 해야지 해서 put 으로 할 수도 있습니다. 상황에 따라, 팀내 규칙에 따라 하시면 됩니다

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!