Network

[HTTP] HTTP Method의 속성 : 안전 Safe, 멱등 Idempotent, 캐시 가능 Cacheable

HEY__ 2022. 7. 22. 11:04
728x90

이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다!

 

⛅️ HTTP Method의 속성

HTTP Method에는 세 가지 속성 

안전(Safe Methods), 멱등(Idempotent Methods), 캐시 가능(Cacheable Methods)이 있다.

하나씩 살펴보자.

출처: https://ko.widipedia.org/wiki/HTTP


⛅️ 안전 Safe

메서드를 호출해도 리소스가 변경되지 않는 것을 말한다.

해당 메서드를 계속해서 호출해도 리소스가 변경되지 않음을 보장한다.

 

해당 리소스의 변경의 유무만 고려한다.

 

GET, HEAD, OPTIONS, TRACE와 같은 메서드가 여기에 해당한다.

 


⛅️ 멱등 Idempotent

호출의 횟수와 관련 없이 결과가 같은 것을 말한다.

멱등 Idempotent는 외부 요인으로 중간에 리소스가 변경되는 것은 고려하지 않는다.

 

멱등 메서드

GET: 리소스 조회를 몇 번하던 같은 결과가 조회된다.

PUT: 리소스를 완전히 대체하기 때문에 같은 요청을 여러 번 해도 같은 결과가 나온다.

DELETE: 리소스를 삭제하기 때문에 같은 요청을 여러 번해도 같은 결과가 나온다.

 

POST는 멱등 메서드가 아니다!

여러 번 호출하면 중복 결제와 같은 문제가 발생할 수 있다.

 

활용 : 자동 복구 메커니즘 - 서버가 정상 응답을 주지 못했을 때, 클라이언트가 재요청을 해도 되는지 판단 근거로 사용 가능

 


⛅️ 캐시 가능 Cacheable

응답 결과로 받은 리소스를 캐시 Cache해서 사용해도 되는지의 여부를 말한다.

 

캐시 가능 Cacheable 메서드

GET, HEAD, POST, PATCH → 캐시 가능 Cacheable

실제로는 GET, HEAD 정도만 캐시로 사용한다.

 

 

 

728x90