HTTP Cache - проверяйте с сервером, всегда отправляя If-Modified-Since - PullRequest
2 голосов
/ 16 декабря 2009

У меня есть ресурс, который генерируется пользователем и поэтому изменяется в непредсказуемое время (например, пользователь загружает новую версию текстового документа). Я бы хотел, чтобы браузеры кешировали этот ресурс и проверяли его кеш на сервере при каждом запросе (т.е. всегда отправляли заголовок If-Modified-Since).

Из тестирования я обнаружил, что Firefox обрабатывает это соответствующим образом, когда я использую «Cache-Control: no-cache» в заголовке ответа. Однако Internet Explorer 7 не отправляет «If-Modified-Since» в своем заголовке запроса.

Достигает ли "Cache-Control: no-cache" того, что я описал в начале? Если нет, могу ли я что-то сделать по-другому, чтобы добиться того, что я описал в разных браузерах?

Спасибо.

1 Ответ

3 голосов
/ 17 декабря 2009

Согласно Microsoft (http://support.microsoft.com/kb/234067),, для корректной работы в Internet Explorer необходимо установить заголовок Expires для -1.

Со страницы:

Во многих случаях веб-серверы имеют один или более изменчивые страницы на сервере, который содержать информацию, которая является предметом изменить немедленно. Эти страницы должен быть помечен сервером с помощью значение «-1» для Expires заголовок. По будущим запросам пользователь, обычно Internet Explorer связывается с веб-сервером для обновления эта страница с помощью условного Запрос If-Modified-Since.

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

На странице также сказано, что IE поддерживает Cache-control: no-cache, хотя это и не рекомендуется. Похоже, это должно сработать, но все равно попробуйте Expires.

Кроме того, другие поиски в Google говорят мне, что браузеры должны отправлять If-Modified-Since в общем, поэтому, возможно, именно поэтому Firefox работает. Попробуйте удалить Cache-Control: no-cache, чтобы проверить, продолжает ли Firefox работать правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...