Полная перезагрузка страницы в Post / Redirect / Get игнорирует управление кэшем

У меня есть страница, которая загружает много изображений, CSS и JavaScript. Я добавил заголовок Expires далекого будущего и установил для Cache-Control значение public для этих внешних зависимостей, чтобы их можно было кэшировать. Но каждый раз, когда я делаю Post / Redirect / Get Chrome, пытается загрузить их снова. Это поведение очень похоже на перезагрузку страницы. Я добавил ETag и обработал заголовок If-None-Match, который немного помогает, но он по-прежнему генерирует слишком много бесполезных запросов.

Как мне сказать chrome и safari, чтобы получить файлы из кеша?

chrome   NOK
safari   NOK
firefox  OK
ie       OK

Также смПолная перезагрузка страницы в Post / Redirect / Get игнорирует управление кэшем на форуме поддержки Google.

Разъяснение:

Я не хочу, чтобы браузер запрашивалimage1.png дважды. Это должно быть кэшировано.

200 GET  page1.html
200 GET  image1.png (Cache-Control: public, Expires and ETag)
302 POST action.asp (form submitted from page1.html, redirects)
200 GET  page2.html
304 GET  image1.png (If-None-Match)

Пример:

Я создал простой пример, чтобы проиллюстрировать проблему.

http://crydust.be/lab/prg/

Заголовки:

Заголовки, которые я отправляю с изображением:

HTTP/1.1 200 OK
Date: Fri, 18 Jun 2010 11:30:22 GMT
Server: Apache
Cache-Control: public, max-age=86400
Expires: Sat, 19 Jun 2010 11:30:24 GMT
Etag: "123"
Content-Length: 866
Content-Type: image/png

Что должно сделать его кэшированным на 24 часа. Там нет Vary: * или что-нибудь в этом роде.

Обновить: Это поведение теперь также присутствует в Safari Mobile на iOS 4. Огромный регресс в скорости загрузки страницы.

Обновить: Об этой проблеме есть в багзилле webkit.Ошибка 38690 - Отправка сообщения POST, которое приводит к перенаправлению сервера, приводит к повторной загрузке всех кэшированных элементов

Обновить: Проблема сохраняется на iOS 4.0.1

Обновить: Проблема сохраняется на iOS 4.1

Обновить: Проблема сохраняется на iOS 4.2

Обновить: Проблема сохраняется на iOS 4.2.1 и в Chrome с версии 6 до 9.

Обновить: Существует сообщение об этой проблеме в проекте Chromium. (Вы можете пометить это, чтобы показать свою заботу)Проблема 68621: публикация / перенаправление / получение игнорирующих инструкций кэша

Обновить: Проблема сохраняется в Chrome с версии 6 до 10. Сейчас это ошибка 9 месяцев.

Обновить: Проблема исправлена ​​по состоянию на 2011-03-21 19:33:07 PST. Это отражается на поведении хрома 12 (канарейка).

Ответы на вопрос(3)

Ваш ответ на вопрос