인프런 커뮤니티 질문&답변

cbw0916님의 프로필 이미지

작성한 질문수

모든 개발자를 위한 HTTP 웹 기본 지식

HTTP 메서드의 속성

왜 PUT, DELETE는 캐시가 불가능한가요

21.07.03 21:42 작성

·

440

8

안녕하세요 좋은 강의 잘 보고있습니다.

GET, HEAD, POST, PATCH 메서드가 캐시 가능하고,

POST, PATCH는 요청하는 본문 내용을 키로 만들기 어려워 구현이 쉽지 않다는 것 까지 이해하였습니다. (일반적으로 사용하지 않지만 불가능 한것은 아님)

그런데 PUT과 DELETE는 왜 캐시가 불가능한 것인가요??

멱등성이 유지되기 때문에 오히려 더 캐시 가능한게 아닌가 생각이 되어서요

오히려 멱등성이 유지가 되지 않는 POST와 PATCH가 캐시가 가능하다는 것이 어떤 의미인지도 궁금합니다.

감사합니다.

답변 1

8

김영한님의 프로필 이미지
김영한
지식공유자

2021. 07. 04. 22:21

안녕하세요. cbw0916님

캐시를 이해하는 중요한 키는 데이터의 변경 관점입니다.

캐시라는 것은 원본 데이터가 변경되지 않고 유지되어야 합니다. 그런데 POST, PUT, DELETE, PATCH로 데이터를 변경하게 되면 원본 데이터가 변경되기 때문에 캐시를 유지하기가 어렵겠지요?

그래서 데이터 변경 관점으로 이해하시면 됩니다.

GET은 단순 조회이기 때문에 데이터를 변경하지 않습니다.

HTTP에서는 이렇게 선언해두었지만, 실제로는 데이터를 변경할 가능성이 있는 POST, PUT, DELETE, PATCH는 대부분의 구현에서 캐시를 유지하지 않습니다.

감사합니다.

cbw0916님의 프로필 이미지
cbw0916
질문자

2021. 07. 10. 14:25

답변 감사합니다!

cbw0916님의 프로필 이미지

작성한 질문수

질문하기