Replies: 3 comments
-
HTTP 메서드 중 PATCH와 PUT은 모두 리소스를 업데이트 하는 목적으로 사용된다. 하지만 두 개의 메서드에는 다음과 같은 명확한 차이점이 있다.
간단하게 얘기하자면, PUT은 전체를 업데이트. PATCH는 일부만 업데이트 헷갈릴 수 있어서, 예시도 추가했습니다. 아래와 같은 리소스가 존재한다고 가정.
결과
결과
-- > PUT은 보내지 않은 필드값은 null로 대체됨
결과
결과 만약 서버에 기존 나이를 1살 증가시키는 API가 존재한다면, PATCH는 멱등성을 보장하지 못함 PATCH /crew?id=1 이런 요청을 여러 번 보내게 된다면, 리소스의 상태는 매번 바뀌게 됨. |
Beta Was this translation helpful? Give feedback.
-
PATCH와 PUT은 모두 HTTP 프로토콜에서 리소스를 업데이트하는 메서드입니다. 차이점1. 관점PUT: 리소스를 대체(Replace) 하는 목적을 가집니다. PATCH: 리소스의 일부를 수정(Update) 하는 목적을 가집니다. 2. 요청 URI에 자원이 존재하지 않을 때PUT: 새로운 자원을 생성합니다. PATCH: 새로운 자원을 생성하지 않고, 서버는 오류를 응답합니다. 3. 안전성PUT: 리소스의 전체 데이터가 변경되므로 실수로 인해 리소스의 손상이 발생할 수 있습니다. 예를 들어, 클라이언트가 리소스를 완전히 잘못된 데이터로 대체할 수 있습니다. PATCH: 일부 데이터만 변경하기 때문에, 리소스의 전체 데이터가 잘못되는 것을 방지할 수 있습니다. 클라이언트가 변경하려는 데이터의 일부분만 알고 있을 때 유용하게 사용됩니다. 4. 멱등성(Idempotent)PUT: 멱등성 특성을 가집니다. 결론PUT과 PATCH는 모두 리소스 업데이트를 목적으로 하지만, PUT은 전체 리소스를 대체하는 데 사용되고, PATCH는 일부 데이터만을 수정하는 데 사용됩니다. PUT은 리소스의 전체 정보를 갖고 있는 경우 사용하고, PATCH는 리소스의 일부 정보만을 변경할 때 사용하는 것이 적합합니다. |
Beta Was this translation helpful? Give feedback.
-
PATCH가 멱등성이 보장되지 않을 수 있는 경우는 다음과 같습니다. 멱등성 보장 O
멱등성 보장 X
|
Beta Was this translation helpful? Give feedback.
-
뭘까용
Beta Was this translation helpful? Give feedback.
All reactions