Как заставить работать HTTP Cache Headers - PullRequest
0 голосов
/ 23 июля 2010

Может кто-нибудь помочь мне с вопросом о кешировании HTTP?

Я подумал, что если я установлю заголовки запросов "Expires" и "Cache-Control: max-age", то браузер не сделаетзапрос GET до тех пор, пока не истечет максимальный возраст?

Мой сервер видит много условных запросов GET и отвечает 304. Однако я хотел бы исключить эти условные GET, если это возможно, и иметьбраузер запрашивает ресурс только после того, как считает, что срок его действия истек.

Вот подробности, которые я получаю от инструментов разработчика в Chrome:

Request URL:http://localhost:8080/img/branding.gif
Request Method:GET
Status Code:304 Not Modified

Заголовки запроса:

Cache-Control:max-age=0
If-Modified-Since:Thu, 22 Jul 2010 10:54:34 GMT
Referer:http://localhost:8080/
User-Agent:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.99 Safari/533.4

Заголовки ответа:

Cache-Control:max-age=2246400, s-maxage=0
Connection:Keep-Alive
Content-Location:/img/branding.gif
Content-Type:image/gif
Date:Fri, 23 Jul 2010 15:06:10 GMT
Expires:Fri, 07 Jan 2011 15:06:10 GMT
Keep-Alive:timeout=15, max=100
Last-Modified:Thu, 22 Jul 2010 10:54:34 GMT
Pragma:cache
Server:Oracle Application Server Containers for J2EE 10g (9.0.4.0.0)

Я установил заголовки кэша в фильтре в своем Java-коде.Код работает на Oracle OC4J.

Кроме того, я хочу запустить это через HTTPS.Будет ли работать тот же заголовок и для HTTPS?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 15 октября 2010

Может ли это быть s-maxage = 0?Можете ли вы потерять это или установить его так же, как maxage?

Условное получение может происходить от прокси или от браузеров, которые каким-то образом решили действовать как прокси.Кажется маловероятным, я признаю.

0 голосов
/ 23 июля 2010

Удалить заголовок «Last-Modified».Некоторые браузеры всегда отправляют условный GET, если этот заголовок существует.

...