2013-03-21 2 views
1

Я пытаюсь кэшировать ответ сервлета, но каким-то образом он не работает (Firebug дает мне 200 OK каждый раз, когда я обновляю страницу). Это код, который я добавил в сервлет:Ответ сервлета должен быть кеширован, но не

response.setContentType("application/javascript"); 
long now = System.currentTimeMillis(); 
response.setCharacterEncoding("UTF-8"); 
response.setDateHeader("Last-Modified", 0); 
response.addHeader("Cache-Control", "max-age=5184000"); 
response.setDateHeader("Expires", now + 5184000 * 1000); 
response.addHeader("Vary", "Host"); 

Я также попытался с setHeader и Last-Modified, в настоящее время.

Ничто не работает. Есть идеи?

Благодаря

Это как поджигатель показывает мне заголовки ответа/запрос (если ресурс должен был быть получен с кэшем, но ISNT):

Response Headersview source 
Cache-Control max-age=5184000 
Connection Keep-Alive 
Content-Type application/javascript;charset=UTF-8 
Date Thu, 21 Mar 2013 09:53:48 GMT 
Expires Sun, 31 Mar 2013 16:51:01 GMT 
Keep-Alive timeout=15, max=99 



Request Headersview source 
Accept */* 
Accept-Encoding gzip, deflate 
Accept-Language en-US,en;q=0.5 
Cache-Control max-age=0 
+0

http://stackoverflow.com/questions/2872613/caching-images-served-by-servlet –

ответ

5

Использование Last-Modified требует кооперативной кодирования в сервлет. Когда вы посылаете его клиенту, что клиент будет отправлять обратно, при запросе тот же ресурс, один из возможного набора заголовков:

  • If-Modified-Since:
  • If-Unmodified- так как:

Вы должны обработать эти заголовки, определить, если содержание изменилось с указанной даты, а затем отправить 304 ответ, если он не имел. Много ручной работы. Также обратите внимание, что дата Last-Modified должна быть valid (например: Tue, 15 Nov 1994 12:45:26 GMT).

Самый простой маршрут для вас будет игнорировать Last-Modified сейчас, и вместо того, чтобы использовать Cache-Control и Expires заголовки. Заголовок Expires должен быть в допустимом формате даты, как описано для заголовка Last-Modified.

Подробнее о кэшировании вы можете узнать в this excellent document.

+0

спасибо, удалил заголовок Last-Modified и работает как шарм! –

Смежные вопросы