Использовать кеширование браузера - истекает или max-age, last-modified или etag - программирование
Подтвердить что ты не робот

Использовать кеширование браузера - истекает или max-age, last-modified или etag

Мне трудно найти четкое практическое объяснение того, что является правильным способом использовать кеширование браузера для увеличения скорости страницы.

В соответствии с этим сайтом:

Важно указать один из Max-age Expires или Cache-Control, и один из Last-Modified или ETag для всех кэшируемых ресурсов. это избыточным, чтобы указать как Expires, так и Cache-Control: максимальный возраст или укажите как Last-Modified, так и ETag.

Это правильно? Если да, следует ли использовать Expires или max-age? Я думаю, что у меня общее понимание того, что они оба, но не знают, что обычно лучше всего использовать.

Если мне нужно также сделать Last-Modified или ETag, какой из них? Я думаю, что я получаю Last-Modified, но я все еще очень нечеткий по этой концепции ETag.

Кроме того, какие файлы следует включить для кэширования браузера?

4b9b3361

Ответ 1

Правильно ли это?

Да, Expires и max-age делают то же самое, но двумя разными способами. То же самое с Last-Modified и Etag

Если да, то должен ли я делать срок действия или максимальный возраст?

Срок действия зависит от точности пользовательских часов, поэтому в большинстве случаев это плохой выбор (поскольку большинство браузеров поддерживают HTTP/1.1). Используйте max-age, чтобы сообщить браузеру, что файл хорош на протяжении многих секунд. Например, кеш на 1 день будет:

Cache-Control: max-age = 86400

Обратите внимание, что когда присутствуют как Cache-Control, так и Expires, Cache-Control имеет приоритет. читать

Если мне нужно также сделать Last-Modified или ETag, какой из них? Я думаю, что получаю Last-Modified

Вы правы, Last-Modified должен быть лучше. Хотя это время, оно отправляется сервером. Следовательно, нет проблем с пользовательскими часами. Браузер отправляет Last-Modified сервер, отправленный в последний раз, когда он запрашивает файл, и если он тот же, сервер отправляется с пустым ответом "304 Not Modified"

Кроме того, какие файлы следует включить для кэширования браузера?

Все файлы могут помочь в кешировании. У вас есть два разных подхода:

  • с max-age: полезно для файлов, которые никогда не меняются (изображения, CSS, javascript). До тех пор, пока значение max-age, браузер не будет отправлять какой-либо запрос на сервер. Таким образом, вы увидите, что загрузка страницы происходит очень быстро при втором загрузке. Если вам нужно обновить файлы, просто добавьте вопросительный знак и дату изменения (например,/image.png?20110602 или для лучшего кэширования прокси, что-то вроде /20110602/image.png или/image.20110602.png), Таким образом, вы можете заставить файлы истекать, если они срочны (помните, что браузер почти никогда не попадает на сервер, когда у него есть файл максимального возраста). Основное назначение - ускорить процесс и ограничить запросы, отправленные на сервер.
  • с Last-Modified: может быть установлен на всех файлах (в том числе с max-age). Даже если у вас есть динамические страницы, вы можете не изменять содержимое файла некоторое время (даже если это 10 минут), так что это может быть полезно. Главное здесь - сказать браузеру "продолжайте просить меня об этом файле, если он новый, я пришлю вам новый". Таким образом, на каждую загрузку страницы отправляется запрос, но ответ пуст, если файл уже хорошо (304 Not Modified), поэтому вы сохраняете полосу пропускания.

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

Хорошее место, чтобы узнать все это со многими объяснениями: http://www.mnot.net/cache_docs/