истекает заголовки? Как мне их реализовать и каковы они? - PullRequest
1 голос
/ 31 августа 2010

Я пытался найти способ их реализации, но для меня это не имеет смысла.В нем говорится об apache, Django и Lighttpd, но я понятия не имею, что это такое.

Я использовал ySlow на своей веб-странице, и он сказал мне, что мне нужен заголовок expires.

Очевидно, это действительно помогаетс производительностью, хотя и это то, что мне действительно нужно.

Ответы [ 4 ]

1 голос
/ 31 августа 2010

Заголовок Expires находится за пределами самой страницы, это метаданные, которые сервер добавляет в ответы, чтобы указать клиенту, как долго контент действителен.

В конечном счете, досервер для установки заголовков ответа.Это можно сделать глобально, чтобы весь контент, отправляемый с сервера, имел одинаковые значения.Или, если вы используете серверную платформу (например, ASP.NET, PHP и т. Д.), Вы можете установить заголовок Expires программно и для каждого ресурса (страницы).

ОднакоПохоже, вам просто нужно установить их глобально - что обычно делается с настройками сервера.

Для Apache взгляните на mod_expires

Для IIS7, взгляните на это

Для других серверных платформ просто попробуйте поискать "Howto set expires header {server}", где {server} - это любая платформа / версия, которая вам нужна.

И чтобы уточнить , что они Если браузер ранее извлек ресурс (скажем, myPage.html), и этот ресурс имеет срок действия 24 часа, то браузерпо сути, говорят: «если вы попытаетесь загрузить эту страницу снова в течение следующих 24 часов, вы можете просто показать ранее извлеченную версию, а не запрашивать новую копию с сервера».

Для статических страниц это может быть идеально- более длительный срок действия может привести кn более быстрая загрузка страниц для ваших пользователей (браузер сохраняет поездки на сервер), и сервер должен обрабатывать меньше запросов.

Однако;для динамических страниц, имеющих длительный срок действия, может быть вредным.Представьте себе страницу, которая просто сообщает время, например <h1>1:01PM EST</h1> (где сервер генерирует HTML).Если заголовок expires установлен на что-то вроде 1h, то браузер может показывать пользователю «1:01 EST», когда он shoudl равен «1:45 EST» и т. Д.

Если вам необходимо явно отключить кэширование в браузере (разные браузеры используют разные значения по умолчанию, т. Е. IE8 очень агрессивно относится к кешированию), тогда вы можете установить Expires=-1, что фактически означает, что срок действия страницы истекает немедленно.

1 голос
/ 31 августа 2010

Истекает - это поле заголовка HTTP, которое не может быть установлено с помощью jQuery.

Но вы можете попытаться добавить эквивалент HTTP META элемент :

$("head").append('<META http-equiv="Expires" content="Tue, 20 Aug 1996 14:25:27 GMT">')

Но от агента пользователя зависит, распознается ли такой HTTP-эквивалент META элемент .Лучше было бы установить это в заголовке HTTP.

Кстати: в HTTP 1.1 поле заголовка Cache-Control с max-Параметр age предпочтительнее, чем Expires (см. Модификации базового механизма истечения срока действия ).

1 голос
/ 31 августа 2010

Это не имеет ничего общего с jQuery.В ответе вашего сервера должны быть установлены соответствующие заголовки, такие как Expires, E-Tag и т. Д.

Какой язык вы используете на стороне сервера?

Если вы используете PHP, пример отправкиСрок действия заголовка будет:

header("Expires: Tue, 31 Aug 2010 02:30:00 GMT");
0 голосов
/ 31 августа 2010

Заголовок Expires используется для кэширования HTTP и указывает следующую дату / время, когда текущая версия объекта больше не является текущей. Это может использоваться браузерами и HTTP-кешами для уменьшения нагрузки на исходные веб-серверы.

Есть несколько других заголовков, связанных с кэшированием, которые вы также должны исследовать, например ETag и Cache-Control.

См .: http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13

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