티스토리 뷰

Project 댕린이집

PUT vs POST

xoo | 수진 2024. 6. 25. 11:15

PUT과 POST의 차이가 있고, 실무에서는 POST를 많이 쓴다는 얘기를 줏어듣고선 궁금해졌습니다.

PUT 이라는 것을 따로 만들어놓은 데엔 분명 이유가 있을텐데..왜 POST를 쓰는거지?!

 


 

RESTful API란?

먼저 RESTful에 대해 다시 한번 상기해봅니다. 간단히 말해, 자원을 URI로 표현하고, 자원에 대한 행위를 HTTP Method(GET, POST, PUT, DELETE)로 표현하는 것입니다. 그리고 자원에 대한 행위를 나타내는 4가지 Method는 CRUD(Create/Read/Update/Delete)에 각각 매칭됩니다.

 

POST와 PUT

💡 멱등성: 여러 번 수행해도 결과가 같음
  • 예를 들어, POST로 이름이 까미인 강아지를 생성해달라고 2번 요청한다면 → id가 1과 2인 까미가 두 개를 생성해줍니다. POST는 리소스를 생성하기 위한 메서드로 요청한 횟수마다 새로운 리소스를 생성합니다. 이를 멱등하지 않다고 합니다.
    ⇒ POST는 요청 시 마다, 새로운 리소스가 생성
    ⇒ 멱등하지 않다.
  • PUT으로 이름이 까미인 강아지를 생성해달라고 2번 요청한다면 → id가 1인 까미가 한 번 생성됩니다. id가 1인 리소스는 없었으므로 최소 한번은 생성되고 이후로는 또 생성되지 않습니다. 이를 멱등하다고 합니다.
    ⇒ PUT은 요청 시 마다, 같은 리소스를 반환
    ⇒ 멱등하다.

 

보안적인 차이점도 있을까?

차이점은 알았지만..아직 PUT 대신 POST를 쓰는 명확히 납득갈만한 이유는 찾지 못해서 더 알아봤습니다.

찾아보니 PUT과 DELETE를 사용하면 보안적인 측면에서 위험하다는 이야기들을 보게 되었습니다. 내용을 보면 POST과 GET 이외의 메소드들은 닫는 것이 좋다고 합니다. 왜일까요😮 누가 알려준 적도, 특별히 생각해본 적도 없는 문제라 너무 궁금…….

여러 게시글들을 보았는데 결론은 프로토콜 자체에는 문제가 없으나, GET과 POST가 주로 사용되고, DELETE와 PUT은 자주 사용되지 않다보니 서버 관리자가 주로 GET, POST에 대해서만 보안설정을 하는 경우가 많아서 & 아무나 함부로 호출할 시에 파일 변경 문제 때문에 위험하니 주의해라…이런 말들이 전달되면서 그렇지 않나 생각해봅니다.

뭔가 시원치가 않아서 조금 더 공부를 해봐야할 것 같습니다.

 

 

PUT → POST 로 변경

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함