inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

HTTP 메서드의 속성

캐시할 때의 key와 value

455

11 1

작성한 질문수 147

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]

POST, PATCH는 본문 내용까지 캐시 키로 고려해야 하는데, 구현이 쉽지 않음

 

-> 만약 POST로 캐시를 한다고 하면

key는 POST '요청 메시지'의 URI 필드 + message body를 이용하여 구성하고,

value는 '응답 메시지'의 정보들로 구성

이렇게 생각하면 될까요? key는 요청 메시지와 관련되고, value는 응답 메시지랑 관련된 게 맞는지 궁금합니다..

 

혹시 뒤 강의에 나오나요?

네트워크

답변 1

2

나무늘보

안녕하세요. 11 1님, 공식 서포터즈 코즈위버입니다.

POST 캐시는 강의에서 다루지 않습니다.

캐시를 하려면 응답값이 항상 일정하거나 최소한 자주 변경하지 않아야 합니다. (멱등성이 있어야 캐시 하기 좋다는 의미입니다)

그러나 POST 같은 메서드는 일반적으로 멱등하지 않습니다. 호출함과 동시에 새로운 리소스를 생성하므로, 호출할때마다 새로운 결과가 만들어지기에 캐시할 수 없는 값이 되지요 :)

질문하신 것처럼 GET에 대한 캐싱은 요청파라미터, 결과페이지를 Key, Value 형태로 저장합니다. 가령 상품리스트 조회 같은 경우 응답값을 캐시로 저장하며 일정기간 뒤에 캐시를 새로 갱신하도록 만들어 둡니다. (상품정보가 바뀔 경우 상품리스트 조회도 결과값이 달라질 수 있기에, 캐시를 새로 갱신해야 합니다)

감사합니다.

1

11 1

감사합니다

0

howdeep

이해하기 쉬운 답변 너무 감사합니다!

여기서 궁금한 게 PUT는 멱등하니까 캐시하기에 만약 가능하다면 문제가 없어보이는데..

왜 PUT은 지원 안하는 지도 궁금해요..

가능하다는 가정이면 PUT 캐시가 가능해보이긴 하네요
제 생각에는 굳이 PUT의 내용을 캐시할 필요는 없어보이지만 설명대로라면 궁금해서 질문드려요..

캐시무효화시 그냥 no-store만 넣어되지 않나요?

0

71

2

API의 헤더와 바디에 대한 문의 입니다.

0

70

2

수정폼과 수정

0

66

1

쿠키에 대해 질문드려요!

0

88

2

서버에서 캐시 검증 헤더를 직접 처리해야 하나요?

0

86

1

http api get, post 멱등

0

40

1

컬렉션의 개념

0

49

1

시작라인에 들어가는 요청 대상 경로는 상대 경로 아닌가요?

0

54

1

PATCH 는 PUT처럼 멱등이여야 하지 않나요?

0

81

1

리소스 질문드립니다

0

56

1

IP 패킷 질문입니다.

0

59

1

html from, http api

0

75

2

브라우저 캐시가 60초 유효하다는게 무슨 뜻일까요

0

120

1

stateless 무상태 예제가 생각났는데. 저가 생각 한게 맞는지 궁금합니다.

0

99

1

URI 및 URL 질문, 왜 자바(스프링)에서는 이렇게 나누었는지?

0

141

1

host와 port

0

106

1

tcp/ip는 연결을 유지? 아니면 유지하지 않음?

0

145

1

다음 강의 커리큘럼 질문!!

0

130

2

캐시 개념에 대해서 설명하시지는 않으시는건가요?

0

113

1

클라이언트가 patch, delete 요청 시 알아야 하는 url

0

91

1

html form 형태 전송시 new, edit 등 컨트롤 리소스를 사용하는 이유

0

168

2

비 연결성(connectionless) 강의에서 질문입니다~

0

140

1

PATCH를 사용하지 못할 때 왜 POST?

0

162

2

협상과 우선순위3 질문드립니다.

1

130

1