HTTP Method
https://developer.mozilla.org/ko/docs/Web/HTTP/Methods
비교적 자주 사용되는 HTTP 메서드는 다음과 같다.
- GET: 서버에 특정 리소스를 요청. 정보를 가져올 때 사용
- POST: 서버에 데이터를 제출. 데이터를 추가 / 업데이트할 때 사용
- PUT: 특정 리소스 전체를 갱신(대체)
- PATCH: 특정 리소스의 일부를 수정
- DELETE: 특정 리소스를 제거
MDN에서는 다음 3가지 특성을 기준으로 HTTP 메서드를 설명한다.
- 안전함(Safe): 메서드가 서버의 상태를 변경하지 않는다. 안전한 메서드는 멱등성을 가지지만, 역은 성립하지 않는다.
- ex) PUT은 멱등성을 가지지만, 서버의 상태를 변경한다.
- GET / HEAD / OPTIONS
- 캐시가능(Cacheable): 서버에서 HTTP 응답을 나중에 사용하기 위해 캐싱하여 저장해둘 수 있다. 특정 URI에 대한 캐시 불가능한 요청은 기존 캐시를 무효화한다.
- GET / HEAD: 캐시 가능
- POST / PATCH: Content-Location 헤더를 명시하여 조건부 캐싱이 가능. 현실적으로 사용 X (사실상 캐시 불가)
- PUT/DELETE: 캐시 불가
- 캐시 가능 메서드 + 캐시 가능 상태 코드 조합이 맞아야 캐시 가능
- 멱등성(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 |