Http Method에서 PUT과 PATCH의 차이에 대해서 알아보겠습니다.
🟧 01. PUT 메서드와 PATCH 메서드는 무슨 일을 할까 ?
Http Method 중에서 PUT과 PATCH는 자원을 수정할 때 사용하는 메서드이다.
그렇다면 왜 수정하는 메서드가 두 가지(PUT, PATCH)가 있을까 ?
🟧 02. PUT 메서드는 자원을 대체한다.
PUT 메서드는 자원을 완전히 대체하거나 생성하는 메서드이다.
좀 더 쉽게 말하면 자원을 덮어씌운다.
먼저 PUT 요청과 기존 데이터이 있다고 하자.
이 때 name은 "하이에나" -> "헤나"로 수정되기를 원한다.
실제로 PUT 메서드 요청을 보내면 아래와 같이 된다.
PUT 메서드를 요청했을 때 name만 변경될 거 같지만 실제로 같은 값인 userId도 값이 덮여씌어졌다.
🟧 02. PUT 메서드로 수정하고 싶은 값만 수정할 수는 없다
위에서 name만 "하이에나"를 "헤나"로 수정하고 싶었다.
그러면 PUT 메서드를 요청할 때 수정할 name만 보내면 되지 않을까 ?
정답은 그렇지 않다.
이유는 수정할 name만 보낸다면 기존 userId의 값은 사라지게 되기 때문이다.
PUT 메서드는 덮어씌운다고 생각하면 이해하기 쉬울거다.
그림으로 표현하면 아래와 같다.
먼저 수정하기 전에는 name, userId 둘 다 존재한다.
name은 성공했지만 userId가 삭제되는 일이 발생할 수 있음에 주의하자.
🟧 03. PATCH는 자원의 부분 변경이 가능하다.
원래 Http Method에 PATCH 메서드는 없었다.
이후에 자원의 부분 변경을 위해서 업데이트 된 메서드이다.
PUT 메서드에서 모든 자원을 변경해야 함을 PATCH 메서드로 해소할 수 있다.
PUT 메서드 예제에서 name만 변경하려고 했을 때 userId까지 사라졌었는데 PATCH로 진행할 경우 결과가 달라진다.
PATCH 메서드로 name만 수정하려고 한다고 하자.
PATCH 메서드를 이용해서 자원의 부분 변경이 가능함을 그림으로 확인할 수 있다.
👊 정리하자면
PUT 메서드는 자원을 덮어씌운다.
PATCH 메서드는 자원의 부분 변경이 가능하다.
'🌐 네트워크' 카테고리의 다른 글
[네트워크] 애플리케이션 계층 - DNS 서버의 동작 원리 (0) | 2023.06.16 |
---|---|
[네트워크] 애플리케이션 계층 - HTTP, Cookie, Web Cache (0) | 2023.06.14 |
[네트워크] 애플리케이션 계층 - 네트워크 애플리케이션의 원리 (0) | 2023.06.13 |
[네트워크] 메시지 무결성과 전자서명 (0) | 2023.05.28 |
[네트워크] 암호화의 원리 (0) | 2023.05.28 |