HTTP메서드 PUT과 PATCH의 차이

Yoonezi·2023년 5월 23일
0

TTP 메서드 중 PUT과 PATCH는 모두 리소스를 수정하는 데 사용되는 메서드입니다.

하지만 PUT과 PATCH는 다음과 같은 차이가 있습니다:

수정 방식

PUT:

전체 리소스를 대체 또는 새로 생성합니다.

즉, 요청 본문에는 수정하려는 리소스의 전체 내용이 포함되어야 합니다.
서버에서는 요청된 URI의 리소스를 요청 본문의 내용으로 완전히 대체합니다.

PATCH:
리소스의 일부를 수정합니다.

요청 본문에는 수정하려는 리소스의 변경 사항만 포함되어야 합니다.
서버에서는 요청된 URI의 리소스를 요청 본문에 포함된 변경 사항으로 업데이트합니다.

Idempotency (멱등성)

PUT:

멱등적입니다.

동일한 요청을 여러 번 실행해도 결과는 항상 동일합니다.
PUT을 여러 번 호출하더라도 리소스는 동일한 상태로 유지됩니다.

PATCH:

멱등적이지 않을 수 있습니다.

동일한 PATCH 요청을 여러 번 실행하면 리소스의 상태가 다를 수 있습니다.
PATCH는 리소스의 일부만 수정하기 때문에 순서에 따라 결과가 달라질 수 있습니다.

요청 본문

PUT:

요청 본문에는 리소스의 전체 내용이 포함되어야 합니다.

PATCH:

요청 본문에는 수정하려는 리소스의 변경 사항만 포함되어야 합니다.

변경 사항은 특정 형식(예: JSON Patch, JSON Merge Patch, 등)에 따라 전달됩니다.

지원 여부

PUT:

모든 서버가 PUT 메서드를 지원해야 합니다.

PATCH:

일부 서버가 PATCH 메서드를 지원하지 않을 수 있습니다.

서버가 PATCH를 지원하지 않는 경우, 일반적으로 405 Method Not Allowed 오류를 반환하게 됩니다.

따라서, PUT은 전체 리소스를 대체 또는 새로 생성할 때 사용되고, PATCH는 리소스의 일부를 수정할 때 사용됩니다.

profile
차곡차곡

0개의 댓글