본문 바로가기
WEB/web 지식

POST, PUT, PATCH 차이점

by 일상코더 2022. 10. 1.

HTTP Method

1.POST

          I.새 리소스 생성(등록)       

                   - 서버가 아직 “식별하지 않은” 새 리소스 생성
                       ex) 회원(리소스)에서 가입기능(method)
                       ex) 회원(리소스)에서 수정기능(method)
         II.  요청 데이터 처리

                   - 단순히 데이터를 생성하거나, 변경하는 것을 넘어서 프로세스를 처리해야하는 경우
                        ex) 주문에서 결제완료 → 배달시작 → 배달완료 같은 단순히 값 변경을 넘어

                               프로세스의 상태가 변경되는 경우
                   - POST의 결과로 새로운 리소스가 생성되지 않을 수도 있을때 컨트롤 URI 사용
                        ex) POST /orders/{orders{/start-delivery (컨트롤 URI)  

 

2. PUT

         I. 리소스를 대체

                      - 리소스가 있으면 “완전히” 대체

                      - 리소스가 없으면 생성

                            ex) 폴더안에 새로운 폴더를 만들때 기존에 있는 폴더면 덮어쓰고 없으면

                                  새폴더 생성 하는 개념과 비슷함.

         II. *클라이언트가 리소스를 식별

                      - 클라이언트가 리소스 위치를 알고 URI 지정

                      - POST와 차이점

                            ex) POST /members HTTP/1.1                PUT /members/100 HTTP/1.1

                                  Content-Type: application/json           Content-Type: application/json

                                 {                                                           {

                                   “username” : “lee”,                                  “username”: “lee”,

                                   “age” : 20                                                 “age”: 20

                                 }                                                           }

 

                         POST 는 리소스 위치를 알지 못하지만 PUT은 100 이라고 정확이 알고있다.

 

       III. 리소스를 완전히 변경하기 때문에 부분 수정이 어렵다.

             - 이때 사용하는것이 PATCH! 

결론)

  1. PUT은 리소스를 완전히 대체하기 때문에 완전히 대체 하지 않고 부분만 수정하고 싶을때 PATCH를 사용하면 된다.
  2. PATCH가 지원이 안되는 서버가 존재 할 수 있다. 그런 경우에는 POST를 쓰면된다 .

 

'WEB > web 지식' 카테고리의 다른 글

HTTP API 설계 예시  (0) 2022.10.01
client to server  (0) 2022.10.01
HTTP API 설계  (0) 2022.10.01
HTTP 메시지 구조  (0) 2022.10.01
web 인증 방식  (0) 2022.09.22

댓글