[HTTP] PUT / PATCH 차이

2022. 12. 22. 13:09Web/네트워크

[HTTP] PUT / PATCH 차이

 

업데이트에 관여하는 메서드는 두 가지가 존재한다. 그래서 해당 메서드가 왜 두 가지로 나눠져 있는지 무슨 차이가 있는지 공부를 하고 정리를 하려 한다.

 

PUT

 

 PUT의 경우 리소스를 전체적으로 대체하는 것

 

 만약 파일이 존재하는 상태로 복사 후 붙여 넣기를 하면 해당 파일이 덮어쓰기가 되는 것과 같이 PUT의 경우 전체를 대체하는 형식의 메서드이다.

 

 다만 복사 붙여 넣기처럼 동일한 내용의 파일이 있으면 대체할 수도 있지만 만약 해당 내용이 존재하지 않으면 저장을 하는 것처럼 PUT도 저장이 가능하다.

 

이때 이러한 경우를 보면서 PUT은 리소스를 식별할 수 있다는 점을 알 수 있다.

  • 요청한 URI에 해당 자원이 없다면 POST 방식처럼 해당 리소스를 저장을 한다.
    • 201(created)
  • 해당 리소스가 존재를 한다면 들어온 리소스가 기존 리소스를 대체하고 클라이언트에서 응답을 한다
    • 200(ok) / 204(no content)
    • 204의 경우 response body가 존재하지 않는다는 것을 의미,
      • body에 값을 넣어 결괏값을 보여주는 client에게 보여주는 것이 아닌 응답 결과만 전송

 

 

PATCH

 

PATCH의 경우 리소스의 일부를 변경하는 것

 

다만 부분적으로 수정을 하고 나머지 항목들은 기존 항목을 사용한다. 그렇기에 클라이언트 쪽에서 작업을 진행할 때 해당 자원의 상태를 다 알고 있어야 한다.

 

PATCH의 경우 변경이 되는 데이터를 payload에 담아서 전달하는데 이때 payload안에 전체 데이터가 존재해야 한다.

만약 payload안에 불완전하게 데이터가 들어간 상태이면 해당 entity의 필드값은 null로 변할 수 있다.

 

 

출처

https://tecoble.techcourse.co.kr/post/2020-08-17-put-vs-patch/

 

자원을 수정하는 HTTP 메서드 - PUT vs PATCH

들어가며 웹 API를 설계할 때, 최대한 Http 표준을 따라서 용도에 맞는 Http Method를 사용해야 한다는 것은 아마 많은 개발자들이 인지하고 있을 것이다. 이번 글에서는 Http Method…

tecoble.techcourse.co.kr

'Web > 네트워크' 카테고리의 다른 글

[Etc] Presigned URL이란  (0) 2023.08.28
[Web 지식] IPv6 - Internet Protocol  (0) 2023.05.25
[REST API] REST API 설계  (0) 2022.12.22
[Basic] 인증, 인가  (0) 2022.12.14
[HTTP] HTTP 상태코드  (0) 2022.11.05