[HTTP] HTTP Method의 속성 : 안전 Safe, 멱등 Idempotent, 캐시 가능 Cacheable
이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다!
⛅️ HTTP Method의 속성
HTTP Method에는 세 가지 속성
안전(Safe Methods), 멱등(Idempotent Methods), 캐시 가능(Cacheable Methods)이 있다.
하나씩 살펴보자.
⛅️ 안전 Safe
메서드를 호출해도 리소스가 변경되지 않는 것을 말한다.
해당 메서드를 계속해서 호출해도 리소스가 변경되지 않음을 보장한다.
해당 리소스의 변경의 유무만 고려한다.
GET, HEAD, OPTIONS, TRACE와 같은 메서드가 여기에 해당한다.
⛅️ 멱등 Idempotent
호출의 횟수와 관련 없이 결과가 같은 것을 말한다.
멱등 Idempotent는 외부 요인으로 중간에 리소스가 변경되는 것은 고려하지 않는다.
✅ 멱등 메서드
GET: 리소스 조회를 몇 번하던 같은 결과가 조회된다.
PUT: 리소스를 완전히 대체하기 때문에 같은 요청을 여러 번 해도 같은 결과가 나온다.
DELETE: 리소스를 삭제하기 때문에 같은 요청을 여러 번해도 같은 결과가 나온다.
POST는 멱등 메서드가 아니다!
여러 번 호출하면 중복 결제와 같은 문제가 발생할 수 있다.
활용 : 자동 복구 메커니즘 - 서버가 정상 응답을 주지 못했을 때, 클라이언트가 재요청을 해도 되는지 판단 근거로 사용 가능
⛅️ 캐시 가능 Cacheable
응답 결과로 받은 리소스를 캐시 Cache해서 사용해도 되는지의 여부를 말한다.
✅ 캐시 가능 Cacheable 메서드
GET, HEAD, POST, PATCH → 캐시 가능 Cacheable
실제로는 GET, HEAD 정도만 캐시로 사용한다.