요청 메서드 종류
- 서버에 있는 리소스를 변경하지 않고 읽기만 하는 요청 메서드
- 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