티스토리 뷰

오늘은 HTTP 메서드 중 PUT과 PATCH의 공통점과 차이점에 대해 정리해보고자한다.

출처:https://www.baeldung.com/cs/http-put-vs-patch

PUT과 PATCH의 정의

"PUT"

The PUT method requests that the state of the target resource be created or replaced with the state defined by the representation enclosed in the request message payload.

PUT 메서드는 대상 리소스의 상태를 생성하거나 요청 메시지 페이로드에 포함된 표현으로 정의된 상태로 대체하도록 요청합니다.

 

"PATCH"

This specification defines the new HTTP/1.1 [RFC2616] method, PATCH, which is used to apply partial modifications to a resource.

이 규격은 리소스에 부분 수정 사항을 적용하는 데 사용되는 새로운 HTTP/1.1 [RFC2616] 메서드 PATCH를 정의합니다.

 

출처 : https://www.ietf.org/rfc/rfc2616.txt


공통점

위 두 정의를 봤을 때 알 수 있는 공통점은 둘 다 리소스를 업데이트(생성, 대체, 부분 수정)할 때 사용되는 메서드이다.

 


 

차이점

PUT은 전체 업데이트를 수행하고 PATCH는 부분 업데이트를 수행한다.

 

위의 메서드 정의를 보면 알 수 있다.

 

  • PUT : "리소스의 상태를 생성, 요청 페이로드에 포함된 표현으로 상태를 대체"
  • PATCH : "부분 수정 사항을 적용"

 

PUT 메서드는 클라이언트가 리소스의 전체 데이터를 제공하면 서버에서 해당 리소스를 완전히 교체한다.

 

예를 들어 

ID NAME AGE
1 kim 10

위와 같은 테이블이 있다고 할 때

{
	name : "lee"
}

 이러한 PUT 요청을 보내면 

ID NAME AGE
1 lee NULL

이렇게 보내지 않은 값에 대해서는 NULL 값으로 변하는 것처럼 모든 자원에 대해 수정을 진행하는 것이다.

 

하지만 PATCH 같은경우 아래와 같이 모든 속성이 아닌 name 속성에 대한 수정 요청을 보내도 PUT과 같이 다른 속성에는 영향없이 부분 수정이 된다.

{
	name : "park"
}
ID NAME AGE
1 kim 10

 

따라서 개발자는 PUT과 PATCH의 사용용도를 잘 살펴보고 서버를 구현해야한다.


오늘의 결론

PUT과 PATCH 모두 자원의 수정을 위해 사용되지만 PUT은 자원의 전체를 수정할 때 사용되고 PATCH의 경우 자원의 일부분을 수정할 때 사용된다. 이를 잘 구분해서 사용해야한다.

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

[HTTP]HTTP의 특징  (0) 2022.08.19
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
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
글 보관함