본문 바로가기

Dev/HTTP

HTTP 메서드 종류 PUT, PATCH 그리고 DELETE

지난 번에 이어서 나머지 메서드도 알아보자!


PUT

리소스를 대체한다. (파일의 복사랑 유사) (출처)

기존에 파일이 없으면 새로 넣어주고, 똑같은 파일이 있다면 덮어 쓴다.

  • 리소스가 있으면 대체
  • 리소스가 없으면 생성
  • 쉽게 이야기해서 덮어버린다.
  • 즉, 완전히 대체해버린다.

중요! 클라이언트가 리소스를 식별

  • 클라이언트가 리소스 위치를 알고 URI 지정
  • POST와의 차이점을 알아두자

아래 그림을 보면 PUT /members/100 HTTP/1.1 

 → 클라이언트가 구체적인 리소스 전체 경로를 알고있고 URI를 지정한다!

 → 이 점이 POST와의 차이점이다.

 → PUT 같은 경우는 클라이언트가 리소스를 식별한다.

HTTP 메서드 PUT


PUT

리소스가 있는 경우 (출처)

보내려는 리소스가 있는 경우

  • username : old로 age를 50이라는 메시지를 담아서 PUT으로 보낸다.
  • 이 메시지는 서버에 있는 리소스를 보낸 메시지로 대체한다.

PUT을 통한 리소스 대체

 

주의할 점

PUT은 리소스를 완전히 대체한다는 점을 꼭 기억하자!

아래와 같이 username 없이 age만 담아서 보내게 될 경우

  • PUT은 완전 대체이기 때문에 보낸 메시지인 age:50으로만 대체된다.
  • 즉, 서버 리소스에 있는 username 필드가 삭제되어버리고 클라이언트에서 요청한 메시지로 덮어쓰게된다는 점

PUT 리소스 완전 대체

 

이런 대체적인 상황으로 사용하는 PUT과는 달리 부분만 변경하고 싶을 땐 어떻게 하지?


해서 나온 HTTP 메서드가 PATCH 이다! (출처)

PATCH의 과정

부분 변경하는 PATCH

 

부분 변경하는 PATCH2

  • 부분 변경하는 경우 PATCH를 사용하는데 서버마다 PATCH를 지원하지 않는 서버도 있다.
  • 그럴 경우에는 POST를 쓰자! 왜냐 POST는 앞에서 만능이라고 했으니까

DELETE

  • 이름에서도 알수 있듯이 리소스를 제거하는 데 사용하는 HTTP 메서드 이다.
  • 클라이언트가 요청한 메시지에 포함된걸 서버가 보고 삭제해준다.

'Dev > HTTP' 카테고리의 다른 글

RS) IP(Internet Protocol)  (0) 2022.03.26
HTTP 메서드 속성  (0) 2021.05.23
HTTP 메서드 종류 GET과 POST  (0) 2021.05.23
HTTP 메서드 = HTTP API  (0) 2021.05.23
HTTP의 메시지  (0) 2021.05.23