작성
·
356
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
POST, PATCH는 본문 내용까지 캐시 키로 고려해야 하는데, 구현이 쉽지 않음
-> 만약 POST로 캐시를 한다고 하면
key는 POST '요청 메시지'의 URI 필드 + message body를 이용하여 구성하고,
value는 '응답 메시지'의 정보들로 구성
이렇게 생각하면 될까요? key는 요청 메시지와 관련되고, value는 응답 메시지랑 관련된 게 맞는지 궁금합니다..
혹시 뒤 강의에 나오나요?
답변 1
2
안녕하세요. 11 1님, 공식 서포터즈 코즈위버입니다.
POST 캐시는 강의에서 다루지 않습니다.
캐시를 하려면 응답값이 항상 일정하거나 최소한 자주 변경하지 않아야 합니다. (멱등성이 있어야 캐시 하기 좋다는 의미입니다)
그러나 POST 같은 메서드는 일반적으로 멱등하지 않습니다. 호출함과 동시에 새로운 리소스를 생성하므로, 호출할때마다 새로운 결과가 만들어지기에 캐시할 수 없는 값이 되지요 :)
질문하신 것처럼 GET에 대한 캐싱은 요청파라미터, 결과페이지를 Key, Value 형태로 저장합니다. 가령 상품리스트 조회 같은 경우 응답값을 캐시로 저장하며 일정기간 뒤에 캐시를 새로 갱신하도록 만들어 둡니다. (상품정보가 바뀔 경우 상품리스트 조회도 결과값이 달라질 수 있기에, 캐시를 새로 갱신해야 합니다)
감사합니다.
이해하기 쉬운 답변 너무 감사합니다!
여기서 궁금한 게 PUT는 멱등하니까 캐시하기에 만약 가능하다면 문제가 없어보이는데..
왜 PUT은 지원 안하는 지도 궁금해요..
가능하다는 가정이면 PUT 캐시가 가능해보이긴 하네요
제 생각에는 굳이 PUT의 내용을 캐시할 필요는 없어보이지만 설명대로라면 궁금해서 질문드려요..
감사합니다