Welcome! Everything is fine.

[CS 발표_11] PUT과 PATCH의 차이, PUT과 POST의 차이 본문

CS 스터디/발표

[CS 발표_11] PUT과 PATCH의 차이, PUT과 POST의 차이

개발곰발 2024. 6. 13.
728x90
PUT과 PATCH의 차이를 설명해보세요.

 

HTTP METHOD

HTTP METHOD란 클라이언트가 요청을 보낼 때 요청에 포함되어 해당 요청의 종류와 목적을 나타낸다.

주요 메소드

  • POST : 데이터 생성
  • GET :데이터 조회
  • PUT : 데이터 갱신, 해당 리소스가 없으면 생성
  • PATCH : 데이터 일부 갱신
  • DELETE : 데이터 삭제

기타 메소드

  • HEAD : 데이터 조회, 그러나 HTTP 메시지에 바디를 포함하지 않고 헤더로만 응답
  • TRACE : 쿠키 및 세션 값을 포함해 클라이언트의 요청 메시지를 그대로 반환
  • CONNECT : 요청한 자원을 양방향으로 연결, SSL을 사용하는 웹사이트에 접속 가능
  • OPTION : 서버가 지원하는 HTTP 메서드를 메시지 헤더에 포함해 응답

PUT과 PATCH의 차이

  • PUT
    • 리소스 전체를 업데이트한다. 
    • 일부만 변경하고자 모든 필드를 전달하지 않고 일부만 전달할 경우, 보내지 않은 값은 모두 null로 처리될 수 있다.
    • 리소스가 존재하지 않고, Request-URI와 Response-URI가 올바르다면 리소스를 생성할 수 있다.
  • PATCH
    • 리소스의 일부를 업데이트 한다.
    • 요청에 포함되어 있는 값만 변경할 수 있다.

PUT과 POST의 차이

  • PUT
    • 리소스 전체를 업데이트한다. 
    • 여러 번 요청해도 한 번 요청한 것과 같은 결과를 가져오기 때문에 멱등한다. 
    • PUT 요청의 응답은 캐싱하지 않는 것이 일반적이다.
  • POST
    • 리소스를 생성한다.
    • 여러 번 요청하면 그만큼 데이터가 생기기 때문에 멱등하지 않는다.
    • 일반적이지는 않지만, HTTP 헤더 중 Cache-Control 혹은 Expires가 올바르게 정의되어 있다면 응답 값을 캐싱하는 것이 가능하다.
    • Cache-Control을 사용한 POST 요청 응답 캐싱
POST /submit-data HTTP/1.1
Host: example.com
Content-Type: application/json

{
  "name": "John Doe",
  "email": "john.doe@example.com"
}
HTTP/1.1 200 OK
Cache-Control: public, max-age=3600
Content-Type: application/json

{
  "status": "success",
  "message": "Data submitted successfully.",
  "id": 12345
}