Настройка общего заголовка ответа http «Expire Web Content» в IIS - PullRequest
5 голосов
/ 10 октября 2011

У нас довольно большой сайт IIS7.0 (около 1 миллиона запросов в день), многие из которых - Images / CSS / JS.

В качестве быстрого способа уменьшить это, я 'я рассматриваю возможность установки общего заголовка ответа http для истечения срока действия веб-контента каким-либо способом с фиксированной датой в будущем, и задаюсь вопросом, какие возможные недостатки мы могли бы получить при этом.он добавляет:

<staticContent>
    <clientCache cacheControlMode="UseExpires" cacheControlMaxAge="1.00:00:00" httpExpires="Thu, 01 Oct 2020 00:00:00 GMT" />
</staticContent>

Меня беспокоит то, что если мы захотим изменить одно из CSS / JS / Images после установки этого, клиенты не получат изменения, а изображения, вероятно, не изменятся,CSS / JS, безусловно, будет.Означает ли это, что мы должны установить это только для папок, содержащих only images?Или это означает, что нам нужно ввести версионные URL для нашего CSS / JS?

1 Ответ

7 голосов
/ 10 октября 2011

Вы всегда должны кэшировать статический контент (Изображения, CSS, JS)

Даже при кэшировании большинство браузеров по-прежнему вежливо запрашивают у сервера, доступна ли более новая версия ( If-Modified-Так как ) и сервер ответит не измененным.(например, IE по умолчанию «автоматически проверяет наличие новых версий страниц»)

Одно предостережение: если между вашим сервером и клиентами есть другие прокси-серверы, эти прокси-серверы могут строго придерживаться настроек вашего кэша, иможет обслуживать «устаревший» контент, поэтому вам нужно подумать об оптимальной продолжительности кэширования.

...