2011-08-03 7 views
1

나는 그것이 내가 이미 없는 가게에 캐시 제어를 설정하고있어 그응답이

에 개인/민감한 데이터를 가지고 있기 때문에 내가 캐시하지 않으려는 특정 HTTP 응답이 캐시되지 않습니다 확인 , HTTP/1.1을 지원하는 클라이언트를 처리해야합니다.

만료 헤더를 사용하여 HTTP/1.0에서도 동일한 작업을 수행 할 수 있습니까? 난 그냥 1970 년 무언가 타임 스탬프로 설정해야합니까? 캐시하지 말라는 특별한 가치가 있습니까?

+0

응답을 캐싱하지 않으려는 이유 *를 설명해야합니다. 아니 상점은 당신이 바라는 것을하지 않을 수도 있고 과잉이라고 할 수도 있습니다. – EricLaw

+0

@Eric : 개인/민감한 데이터가 있기 때문에 캐시 된 응답을 원하지 않습니다. 질문을 업데이트하겠습니다. – pepsi

답변

2

는 HTTP RFC는 말한다 :로

응답을 표시하려면 "이미 만료 된"것으로 표시하기 위해서 원 서버는이 날짜 헤더 값과 동일 날짜를 만료 보냅니다.

만료 헤더를 과거 날짜로 설정해야합니다. 또한 Cache-Control 헤더에 반드시 revalidate 플래그를 설정해야합니다.

만료 : 1990년 1월 1일 (금) 그리니치 표준시 00시 00분 0초
캐시 제어 : 노 캐시를

을-검증해야합니다 당신은 캐싱 문제를 다루는 좋은 기사를 찾을 수 있습니다 doctype wiki : 과거에 Expires 헤더를 설정

는 HTTP/1.0 및 는 HTTP/1.1 프록시와 브라우저가 콘텐츠를 캐시하지 않을 것을 보장한다. 캐시 제어 지시문은 HTTP/1.1 프록시가 내용을 캐시하지 않도록 지시합니다. 프록시가 부적절한 콘텐츠를 반환하도록 구성 될 수 있다고하더라도 반드시 다시 넣어야합니다 (예 : ). 반드시 다시 적용해야합니다 (예 : ).

+0

no-cache를 no-store로 사용한다면 must-revalidate가 필요합니까? – pepsi

+0

데이터를 캐시해서는 안되는 이유가 보안이라면'no-store'를 추가해야합니다. 이렇게하면 비 휘발성 메모리에 데이터를 저장하는 브라우저와 웹 캐시를 사용할 수 없습니다. 이 플래그가 없으면 브라우저는 '뒤로'및 '소스보기'와 같은 기능에 사용할 데이터의 일부를 계속 유지할 수 있습니다. –