PUT과 PATCH

wisdom·2022년 7월 2일
0
  • 둘 다 자원을 수정하는 역할
  • 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.
    • 자원의 전체 교체
      • 자원 교체 시 모든 필드 필요
      • 만약 전체가 아닌 일부만 전달할 경우, 전달한 필드 외 모두 null or 초기값 처리되니 주해야한다.
  • PATCH
    • This specification defines the new HTTP/1.1 [RFC2616] method, PATCH, which is used to apply partial modifications to a resource.
    • 자원의 부분 교체
    • 자원 교체 시 일부 필드 필요

PUT과 PATCH 차이점: 멱등성과 관련된 차이가 있다.

  • 멱등성이 뭘까?
    • 멱등성이 유지되어야 하는경우 같은 행위를 여러 번 반복하더라도 같은 효과를 가져야 한다.
      • PUT
      • 리소스의 변경을 일으키지만 여러번 실행되어도 1번 실행된것과 동일한 결과를 가져야 한다
    • 멱등성이 성립하지 않으면, 같은 행위를 여러 번 반복하는 경우 요청마다 다른 효과가 발생된다.
      • PATCH
      • 그래서 여러 번 실행되면 결과가 계속 달라질 가능성이 있기 때문에 신경 쓸 부분이 상대적으로 많다.
      • PATCH 메소드를 사용하려면 Etag의 조합과 더불어 MUST, MUST NOT, SHOULD NOT 시리즈의 제약 내용들이 펼쳐진다.

참고

HTTP

  • Hypertext Transfer Protocol
    • Hypertext 를 주고받을 수 있게 해준다.
      • 주고 받는 규약
  • Text -> Hypertext

URL

  • Uniform Resource Locator
    - URL은 흔히 웹 주소라고도 하며, 컴퓨터 네트워크 상에서 리소스가 어디 있는지 알려주기 위한 규약이다. URI의 서브셋이다.

URI

  • Uniform Resource Identifier
    - 통합 자원 식별자

✅ URI는 식별하고, URL은 위치를 가르킨다.

DNS

  • Domain Name Server
  • URL 에 해당하는 IP를 리턴해준다.

IP

  • internet protocol

REST

  • Representaional State Transfer
    • 자원(resource)의 대표(representation)에 의한 상태 전달
    • resouce를 이름으로 구분하고 해당 자원의 상태를 주고 받는 모든 것이 REST라고 할 수 있다.
    • REST를 좁은 의미로 HTTP를 통해 CRUD를 실행하는 API를 뜻한다.
    • HTTP 프로토콜을 이용하기 때문에 URL(route)를 통해 자원을 특정짓고 HTTP Verbs를 통해 할일(CRUD)을 지정한다.
    • JSON을 통해 데이터를 주고 받는 것이 일반적이다.

RESTfUL

  • RESTful은 REST를 REST답게 쓰기 위한 방법으로 누군가가 공식적으로 발표한 것이 아니라 여러 개발자들이 비공식적으로 의견을 제시한 것들로 명확한 정의는 없다.
    • 목적은 명확하다.
      • 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것
profile
문제를 정의하고, 문제를 해결하는

0개의 댓글