Подробнее о заголовке Last-Modified — last-modified.com
Проверяю…
HTTP заголовок Last-Modified
сообщает клиенту (браузеру, поисковому боту) время последнего изменения страницы (объекта). Если клиент получил заголовок Last-Modified
, то при следующем обращении к адресу, при условии, что страница (объект) есть в локальном кэше, он добавит заголовок-вопрос If-Modified-Since
(не изменилась ли страница после даты, полученной в Last-Modified
).
В свою очередь сервер, получив запрос If-Modified-Since
должен сверить полученную временную метку с временем последнего изменения страницы и, если страница не изменялась ответить 304 Not Modified
.
Экономия Трафика
Если страница не изменилась, то сервер прекратит передачу данных после отправки заголовков с кодом 304 Not Modified
, тело страницы, изображения и другие объекты передаваться не будут.
Снижение нагрузки на сервер
Правильная реализация проверки времени последнего изменения страницы может значительно (до 30% и более) сократить нагрузку на сервер. Под правильной реализацией подразумевается проверка времени до начала генерации страницы на динамическом сайте. В таком случае все действия для генерации страницы (запрос контента из базы данных, парсинг шаблонов, получение комментариев и др) выполняться не будут.
Особенно это актуально для сайтов с высокой посещаемостью и долгой продолжительностью визита пользователя. Пример: пользователь находится на сайте спортивных новостей и постоянно обновляет главную страницу в ожидании публикации результата матча. За несколько минут страница может быть запрошена и получена десятки раз. Если заголовок Last-Modified
отдается и запрос If-Modified-Since
обрабатывается правильно, то реально страница будет передана один раз, а на все последующие запросы будет выдан ответ 304 Not Modified
.
Еще пример: джоб борды, например, «работа в Минске». Соискатели, находящиеся на таком сайте в будний день могут неоднократно обновлять страницы разделов в поиске свежих вакансий.
Ускорение индексации поисковыми системами
Поисковые системы через руководство для вебмастеров рекомендуют отсылать заголовок Last-Modified
и правильно обрабатывать If-Modified-Since
.
Google: Руководство для веб-мастеров
Убедитесь, что ваш веб-сервер поддерживает HTTP-заголовок If-Modified-Since
. Этот заголовок позволит веб-серверу сообщать Google, изменилось ли содержание сайта со времени последнего сканирования. Поддержка данной функции сократит нагрузку на пропускную способность и издержки.
Яндекс: Советы вебмастеру
Следите за корректностью http-заголовков. В частности, важно, содержание ответа, который сервер отдает на запрос if-modified-since
. Заголовок Last-Modified
должен отдавать корректную дату последнего изменения документа. Если сервер не выдает дату последней модификации документа, ваш сайт будет проиндексирован, но:
— в результатах поиска не будет показываться дата рядом со страницами вашего сайта;
— при сортировке по дате сайт не будет виден большинству пользователей;
— робот не сможет получить информацию о том, обновилась ли страница сайта с момента последнего индексирования. А так как число страниц, получаемых роботом с сайта за один заход, ограничено, изменившиеся страницы будут переиндексироваться реже.
Проверить HTTP-заголовки Last-Modified и If-Modified-Since
SEO инструменты и сервисы
- SEO инструменты
- Проверка Last-Modified
Следите за корректностью HTTP-заголовков. В частности, важно, содержание ответа, который сервер отдает на запрос If-Modified-Since. Заголовок Last-Modified должен отдавать корректную дату последнего изменения документа.
Правильно настроенный сервер должен возвращать код 304 Not Modified, если клиент запросил документ методом GET, использовал заголовок If-Modified-Since или If-None-Match и документ не изменился с указанного момента. При этом сообщение сервера не должно содержать тела страницы.
Сервис поддерживает IDN-домены и для их проверки не требуется переводить имя домена в Punycode. Просто введите адрес вашего кириллического домена и проверьте HTTP-заголовки Last-Modified и If-Modified-Since.
ЯндексGoogleMail.ruBingYahoo!Google ChromeMozilla FirefoxOperaEdgeInternet ExplorerSafariIE MobileOpera MiniOpera MobileВаш браузерUser-Agent
* На время выполнения этой операции влияет размер страницы, время ответа сервера, загруженность сети и скорость подключения.
После регистрации, рекламу можно заблокировать
HTTP-заголовок Last-Modified
HTTP-заголовок Last-Modified сообщает клиенту время последнего изменения страницы (объекта). Если клиент (браузер, поисковый робот) получил заголовок Last-Modified, то при следующем обращении к адресу, при условии, что страница (объект) есть в локальном кеше, он добавит вопрос If-Modified-Since (не изменилась ли страница после даты, полученной в Last-Modified). В свою очередь сервер, получив запрос If-Modified-Since должен сверить полученную временную метку с временем последнего изменения страницы и, если страница не изменялась ответить 304 Not Modified. Появился в HTTP/1.0.
HTTP-заголовок If-Modified-Since
Заголовок HTTP запроса If-Modified-Since делает запрос условным: сервер отправит обратно запрошенный ресурс с статусом 200 OK (Хорошо), только если он был изменён после указанной даты. Если запрос не был изменён после указанной даты, ответ будет 304 Not Modified (Не изменялось) без какого-либо тела; заголовок Last-Modified при этом будет содержать дату последней модификации. В отличие от If-Unmodified-Since, If-Modified-Since может использоваться только с GET или HEAD. Появился в HTTP/1.0.
При использовании в сочетании с If-None-Match (en-US) заголовок If-Modified-Since игнорируется, кроме тех случаев, когда сервер не поддерживает If-None-Match.
Код состояния HTTP 304 Not Modified
Код состояния HTTP (англ. HTTP status code) является частью первой строки ответа сервера. Он представляет собой целое число из трех арабских цифр. Первая цифра указывает на класс состояния. За кодом ответа обычно следует отделённая пробелом поясняющая фраза на английском языке, которая разъясняет человеку причину именно такого ответа.
304 Not Modified (Не изменялось) — Сервер возвращает такой код, если клиент запросил документ методом GET, использовал заголовок If-Modified-Since или If-None-Match и документ не изменился с указанного момента. При этом сообщение сервера не должно содержать тела. Появился в HTTP/1.0.
Зачем нужен Last-Modified
Поисковые системы рекомендуют настроить отправку заголовка Last-Modified и обработку запроса If-Modified-Since. При правильной передаче ответа на запрос If-Modified-Since от сервера к клиенту (браузер, поисковый робот) передаются только измененные страницы. За счет этого получаем следующие эффекты:
Экономия Трафика
Если страница не изменилась, то сервер прекратит передачу данных после отправки заголовков с кодом 304 Not Modified, тело страницы, изображения и другие объекты передаваться не будут.
Снижение нагрузки на сервер
Правильная реализация проверки времени последнего изменения страницы может значительно (до 30% и более) сократить нагрузку на сервер. Под правильной реализацией подразумевается проверка времени до начала генерации страницы на динамическом сайте. В таком случае все действия для генерации страницы (запрос контента из базы данных, парсинг шаблонов, получение комментариев и др) выполняться не будут. Особенно это актуально для сайтов с высокой посещаемостью и долгой продолжительностью визита пользователя. Пример: пользователь находится на сайте спортивных новостей и постоянно обновляет главную страницу в ожидании публикации результата матча. За несколько минут страница может быть запрошена и получена десятки раз. Если заголовок Last-Modified отдается и запрос If-Modified-Since обрабатывается правильно, то реально страница будет передана один раз, а на все последующие запросы будет выдан ответ 304 Not Modified.
Ускорение индексации поисковыми системами
Поисковые системы через руководство для вебмастеров рекомендуют отсылать заголовок Last-Modified и правильно обрабатывать If-Modified-Since.
Убедитесь, что ваш веб-сервер поддерживает HTTP-заголовок If-Modified-Since. Этот заголовок позволит веб-серверу сообщать Google, изменилось ли содержание сайта со времени последнего сканирования. Поддержка данной функции сократит нагрузку на пропускную способность и издержки.
Google: Руководство для веб-мастеров
Следите за корректностью HTTP-заголовков. В частности, важно, содержание ответа, который сервер отдает на запрос If-Modified-Since. Заголовок Last-Modified должен отдавать корректную дату последнего изменения документа. Даже если сервер не выдает дату последней модификации документа (Last-Modified), ваш сайт будет проиндексирован. Однако в этом случае следует учитывать следующее:
Яндекс: Советы вебмастеру
- в результатах поиска не будет показываться дата рядом со страницами вашего сайта;
- при сортировке по дате сайт не будет виден большинству пользователей;
- робот не сможет получить информацию о том, обновилась ли страница сайта с момента последнего индексирования. А так как число страниц, получаемых роботом с сайта за один заход, ограничено, изменившиеся страницы будут переиндексироваться реже.
После регистрации, рекламу можно заблокировать
Поделиться:
Распечатано со страницы: https://tools.seo-auditor.com.ru/if-modified-since/
PDF-файл сгенерирован со страницы: https://tools.seo-auditor.com.ru/if-modified-since/
If-Modified-Since — HTTP | МДН
HTTP-заголовок запроса If-Modified-Since
делает
условный запрос: сервер отправляет обратно запрошенный ресурс с 200
статус, только если последний раз он был изменен после указанной даты. Если
ресурс не был изменен с тех пор, ответ 304
без всякого тела; заголовок ответа Last-Modified
предыдущего
запрос содержит дату последнего изменения. В отличие от If-Unmodified-Since
, If-Modified-Since
можно использовать только
с GET
или HEAD
.
При использовании в сочетании с If-None-Match
игнорируется, если только
сервер не поддерживает If-None-Match
.
Наиболее распространенный вариант использования — обновить кэшированный объект, который не имеет связанного с ним объекта.
.
Тип коллектора | Заголовок запроса |
---|---|
Запрещенное имя заголовка | нет |
If-Modified-Since: <название дня>, <день> <месяц> <год> <час>:<минута>:<секунда> GMT
- <день-имя>
Один из «Пн», «Вт», «Ср», «Чт», «Пт», «Сб» или «Вс» (с учетом регистра).
- <день>
2-значный номер дня, напр. «04» или «23».
- <месяц>
Один из «январь», «февраль», «март», «апрель», «май», «июнь», «июль», «август», «сен», «октябрь», «ноябрь», «декабрь» (с учетом регистра).
- <год>
4-значный номер года, например «1990» или «2016».
- <час>
2-значный номер часа, например. «09» или «23».
- <минута>
2-значный номер минуты, напр. «04» или «59».
- <секунда>
2-значный второй номер, напр. «04» или «59».
-
Гринвич
Среднее время по Гринвичу. Даты HTTP всегда выражаются по Гринвичу, а не по местному времени.
If-Modified-Since: ср, 21 октября 2015 г., 07:28:00 по Гринвичу
Спецификация |
---|
Семантика HTTP # field.if-modified-since |
Таблицы BCD загружаются только в браузере с включенным JavaScript. Включите JavaScript для просмотра данных.
-
ETag
-
Если-без изменений-с
-
Если-совпадение
-
Если не совпадает
-
304 Без изменений
Обнаружили проблему с содержанием этой страницы?
- Отредактируйте страницу на GitHub.
- Сообщить о проблеме с содержимым.
- Посмотреть исходный код на GitHub.
Хотите принять более активное участие?
Узнайте, как внести свой вклад.
Последний раз эта страница была изменена участниками MDN.
Если-немодифицированный-с-HTTP | МДН
Заголовок запроса протокола передачи гипертекста (HTTP) If-Unmodified-Since
POST
или другого небезопасного метода только в том случае, если ресурс не был изменен после даты, указанной в этом HTTP-заголовке. Если ресурс был изменен
после указанной даты ответ будет 412 Precondition Failed
ошибка.
HTTP-заголовок If-Unmodified-Since
обычно используется в следующих ситуациях:
- В сочетании с небезопасными методами, такими как
POST
, этот заголовок можно использовать для реализации оптимистичного контроля параллелизма, как это делается в некоторых вики: редакции отклоняются, если сохраненный документ был изменен с момента извлечения оригинала. - В сочетании с запросом диапазона с использованием
Заголовок диапазона
, этот заголовок может использоваться для обеспечения того, чтобы новый запрошенный фрагмент исходил из неизмененного документа.
Тип коллектора | Заголовок запроса |
---|---|
Запрещенное имя заголовка | нет |
If-Unmodified-Since: <название дня>, <день> <месяц> <год> <час>:<минута>:<секунда> GMT
- <название дня>
Трехбуквенное описание дня недели. Один из «Пн», «Вт», «Ср», «Чт», «Пт», «Сб» или «Вс» (с учетом регистра).
- <день>
Двузначный номер дня месяца. Примеры: «04», «23».
- <месяц>
Трехбуквенное описание месяца. Один из «январь», «февраль», «март», «апрель», «май», «июнь», «июль», «август», «сен», «октябрь», «ноябрь», «декабрь» ( с учетом регистра).
- <год>
Четырехзначный номер года. Примеры: «1990», «2016».
- <час>
Двухзначный номер часа в 24-часовом формате. Примеры: «09», «23».
- <минута>
Двухзначный номер минуты. Примеры: «04», «59».
- <секунда>
Двухзначное второе число. Примеры: «04», «59».
-
Гринвич
Среднее время по Гринвичу. Даты HTTP всегда выражаются по Гринвичу, а не по местному времени.
If-Unmodified-Since: ср, 21 октября 2015 г., 07:28:00 по Гринвичу
Спецификация |
---|
Семантика HTTP # field.if-unmodified-since |