Как при использовании Cloudfront можно установить заголовок Expires относительно текущей даты?

Мы разрабатываем большой веб-сайт, и все наши изображения и ресурсы находятся в Amazon S3. Мы также используем Cloudfront для глобального распространения нашего Контента. Что мы хотим, так это указать клиентскому веб-браузеру кэшировать наши файлы, потому что, когда мы их изменяем, мы также изменим URL-адрес (Cloudfront не отражает изменения в течение 24 часов в другом месте).

В настоящее время мы используем ETags, но это не оптимально, потому что клиент все равно должен выполнить запрос, чтобы проверить, изменился ли ресурс.

Одним из решений может быть заголовок Expires, но мы не нашли способ установить его относительно текущей даты, например возможно в конфигурации Apache для S3, и мы не можем регулярно обновлять весь Контент, потому что это довольно много. Таким образом, нам понадобится параметр конфигурации, который устанавливает для заголовка Expires значение даты относительно текущей даты для всего содержимого.

Другое решение - установить для Cache-Control: max-age определенное значение. Это работает? Принимается ли он основными браузерами? Могу ли я уничтожить этим некоторые алгоритмы кеширования? Почему YSlow рекомендует устанавливать заголовок Expires, а не Cache-Control: max-age?

Какие-либо другие рекомендации? Мы сжимаем CSS и JS, используя спрайты там, где это возможно, устанавливаем заголовки Expires и ETags, где это возможно, и скоро сжимаем наши изображения с помощью инструмента сжатия Yahoo и gzip-архивирования вывода.

8
задан Paul Weber 21 January 2011 в 15:20
поделиться