Request Methods

요청 메서드 종류

  • 서버에 있는 리소스를 변경하지 않고 읽기만 하는 요청 메서드
    • GET / HEAD / OPTIONS / TRACE
  • 서버에 있는 리소스를 변경하는 요청 메서드
    • POST / PUT / DELETE / PATCH

GET Method로 데이터 요청

보통 GET으로 요청한 경우, 200 으로 응답

  • Request has body – no
    • 요청에는 바디가 없다
  • Successful response has body – yes
    • 응답에는 바디에 데이터가 있어야한다
  • Safe – yes
    • Read-only (리소스를 읽기만 하므로 안전)
  • Idempotent – yes
    • 동일한 요청을 한 번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 지니고, 서버의 상태도 동일하게 남을 때, 해당 HTTP 메서드가 멱등성(Idempotent)을 가졌다고 말함. (참고 : https://developer.mozilla.org/ko/docs/Glossary/Idempotent)
  • Cachable – yes
    • 서버에서 캐시가 가능

POST Method로 데이터 요청

리소스를 생성하는 post method의 경우에는 보통 201로 응답

  • Request has body – yes
    • 요청에 바디가 있음
  • Successful response has body – yes
    • 응답에 바디에 데이터가 있음
  • Safe – no
    • 서버에 데이터를 변경하므로 Safe하지않음
  • Idempotent – no
    • post를 여러번 요청하면 여러번 생성될 수 있으므로 멱등성(Idempotent) X
  • Cachable – only if freshness information is included
    • 부분적으로만 캐시가 가능

PUT / DELETE / PATCH 로 데이터 요청시 응답

삭제하거나 데이터를 대체할 컨텐츠가 없다면 204로 응답 가능


PUT 특징

  • Request has body – yes
    • 요청에 바디가 있음
  • Successful response has body – no
    • 응답에 바디가 없음
  • Safe – no
    • 안전하지 않음 (업데이트)
  • Idempotent – yes
    • 원하는 url 에 내용을 업데이트하는 것으로, 요청을 아무리 많이 해도 동일한 url에 동일한 내용으로 계속 업데이트가 되므로
  • Cachable – no

Patch 특징

  • Request has body – yes
    • 요청에 바디가 있음
  • Successful response has body – yes
    • 응답에 바디가 있음
  • Safe – no
    • 안전하지 않음 (부분 업데이트)
  • Idempotent – no
    • 부분적으로 업데이트 하는 것이므로, 멱등성이 없다고 함
  • Cachable – no

참고 : https://developer.mozilla.org/ko/docs/Web/HTTP/Methods