본문 바로가기

WEB&서버

[WEB] HTTP Method

HTTP Method

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

비교적 자주 사용되는 HTTP 메서드는 다음과 같다.

  • GET: 서버에 특정 리소스를 요청. 정보를 가져올 때 사용
  • POST: 서버에 데이터를 제출. 데이터를 추가 / 업데이트할 때 사용
  • PUT: 특정 리소스 전체를 갱신(대체)
  • PATCH: 특정 리소스의 일부를 수정
  • DELETE: 특정 리소스를 제거

MDN에서는 다음 3가지 특성을 기준으로 HTTP 메서드를 설명한다.

  1. 안전함(Safe): 메서드가 서버의 상태를 변경하지 않는다. 안전한 메서드는 멱등성을 가지지만, 역은 성립하지 않는다.
    • ex) PUT은 멱등성을 가지지만, 서버의 상태를 변경한다.
    • GET / HEAD / OPTIONS
  2. 캐시가능(Cacheable): 서버에서 HTTP 응답을 나중에 사용하기 위해  캐싱하여 저장해둘 수 있다. 특정 URI에 대한 캐시 불가능한 요청은 기존 캐시를 무효화한다.
    • GET / HEAD: 캐시 가능
    • POST / PATCH: Content-Location 헤더를 명시하여 조건부 캐싱이 가능. 현실적으로 사용 X (사실상 캐시 불가)
    • PUT/DELETE: 캐시 불가
    • 캐시 가능 메서드 + 캐시 가능 상태 코드 조합이 맞아야 캐시 가능
  3. 멱등성(Idempotent): 동일한 요청을 반복적으로 보내도 동일한 결과를 보장한다. 즉, 요청을 얼마나 보내도 요청에 따른 서버 상태는 동일해야 한다.
    메서드에 대해 의도된 범위에 대해서만 적용된다. 매 요청마다 로그를 남기는 행위는 멱등성과 무관하다.
    • GET / HEAD / OPTIONS: 안전(safe)하므로 멱등성을 지닌다.
    • POST: 멱등성을 가지지 않는다. ( create 등 )
    • PUT / DELETE: 멱등성을 가진다.
    • PATCH: 일반적으로 멱등성을 가지지 않는다. ( 일부만 교체할 수 있다. )

정리하면 다음과 같다.

메서드 안전(safe) 캐시가능(Cacheable) 멱등성(Idempotent)
GET O O O
POST X △(사실상 X) X
PUT X X O
PATCH X △(사실상 X) △(일반적으로 X)
DELETE X X O
HEAD O O  

'WEB&서버' 카테고리의 다른 글

HTTP HATEOAS  (0) 2024.03.20
[WEB] REST & REST API  (0) 2024.03.14
[HTTP Status] 429 Too Many Requests  (0) 2023.09.30
[WEB] XPath로 SVG 요소 식별하기  (0) 2023.07.30
[WEB] XPath axes  (0) 2023.07.30