Узнать ответ сервера



         

Для чего предназначен инструмент «Проверка заголовков сервера»?

С помощью данного инструмента веб-мастер сможет узнать ответ сервера по интересующему ресурсу. Для этого необходимо ввести адрес сайта в верхней строке и определить его работоспособность, сверившись с таблицей «Перечень кодов HTTP», расположенной ниже.

Что такое заголовки сервера и для чего они нужны?

Различные устройства обмениваются между собой информацией с помощью протокола HTTP (аббревиатура от HyperText Transfer Protocol – «Протокол передачи гипертекста»), и заголовки в этом «общении» играют очень важную роль. В заголовке передается основная информация о соединении, которое устанавливается, и о передаваемых через это соединение данных.


Как работает инструмент «Проверка HTTP статусов» и для чего он нужен?

После того, как вы введете адрес ресурса и нажмете кнопку «Показать», сервер обработает запрос и выдаст результат. В самой верхней строке ответа вы увидите состояние (статус) сервера: например, HTTP/1.1 200 OK.

Что такое статус сервера?

Статусов у сервера – четыре, и они сгруппированы по назначению.

Коды 2xx обозначают, что запрос обработан успешно, и вы сможете узнать более подробную информацию о ресурсе.

Коды 3xx обозначают, что сервер перенаправил запрос и получить информацию о ресурсе можно другим способом.

Коды 4xx – это самая обширная группа статусов сервера, которая обозначают, что в запросе допущена ошибка.

Коды 5xx обозначают, что в работе запрашиваемого сервера произошел какой-то сбой, и получение информации об интересующем ресурсе пока невозможно.

Более подробно о статусах запросов вы можете узнать из таблицы «Перечень кодов HTTP» ниже.

Что такое метод GET и метод POST?

Существует три типа запросов, принимаемых сервером: GET, POST и HEAD, но мы поговорим о наиболее распространенных – первых двух. Третий метод используется достаточно редко, потому как HEAD запрашивает только заголовок ответа, а полноценный обмен данными при этом не происходит. Метод GET используется при запросе к серверу по умолчанию, а POST – только при однозначном указании в запросе формы. Веб-мастера должны учитывать, что при запросе методом GET серверу передаются все данные формы вместе с URL, а при использовании метода POST данные перемещаются не в URL, а в само тело запроса.

Коды 2xx (успешно)

Перечень кодов статуса HTTP, использующихся при успешном запросе (коды 2xx).



Код Ошибка Описание
200 Хорошо

Успешный запрос ресурса. Если клиентом были запрошены какие-либо данные, то они находятся в заголовке и/или теле сообщения.

201 Транзакция прошла успешно

В результате успешного выполнения запроса был создан новый ресурс. Сервер должен указать его местоположение в заголовке Location. Серверу рекомендуется ещё указывать в заголовке характеристики созданного ресурса (например, в поле Content-Type). Если сервер не уверен, что ресурс действительно будет существовать к моменту получения данного сообщения клиентом, то лучше использовать ответ 202.

202 Принято

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

203 Неавторитетная информация

Аналогично ответу 200, но в этом случае передаваемая информация была взята не из первичного источника (резервной копии, другого сервера и т. д.) и поэтому может быть неактуальной.

204 Нет содержимого

Сервер успешно обработал запрос, но в ответе были переданы только заголовки без тела сообщения. Клиент не должен обновлять содержимое документа, но может применить к нему полученные метаданные.

205 Сбросить содержимое

Сервер обязывает клиента сбросить введённые пользователем данные. Тела сообщения сервер при этом не передаёт и документ обновлять не обязательно.

206 Частичное содержимое

Сервер удачно выполнил частичный GET возвратив только часть. В заголовке Content-Range сервер указывает байтовые диапазоны содержимого. Особое внимание при работе с подобными ответами следует уделить кэшированию.

207 Многостатусный

Сервер передаёт результаты выполнения сразу нескольких независимых операций. Они помещаются в само тело сообщения в виде XML-документа с объектом multistatus.

226 IM использовано

Заголовок A-IM от клиента был успешно принят и сервер возвращает содержимое с учётом указанных параметров.

Коды 3xx (перенаправление)

Перечень кодов статуса HTTP, использующихся при перенаправлении запроса (коды 3xx).



Код Ошибка Описание
300 Множественный выбор

Затребованный URL обозначает более одного ресурса, и робот не смог однозначно определить, к какой странице URL относится (получен код 300 Multiple Choices).

Исправьте заголовки или укажите ресурс правильно, и тогда робот сможет проиндексировать страницу.

301 Ресурс перемещен навсегда

Документ уже не используется сервером, а ссылка перенаправляет на другую страницу (получен код 301 Moved Permanently).

Так как пользователи не смогут увидеть подобные документы, показывать их в поиске не имеет смысла, и робот их не индексирует. Однако робот обязательно проиндексирует страницу, на которую установлено перенаправление.

302 Ресурс временно перемещен

Запрошенный ресурс временно находится под другим адресом (получен код 302 Found).

Так как пользователи не смогут увидеть подобные документы, показывать их в поиске не имеет смысла, и робот их не индексирует. Однако робот обязательно проиндексирует страницу, на которую установлено перенаправление.

303 Смотрите другой ресурс

Запрошенный ресурс находится под другим адресом и его следует запрашивать, используя метод GET (получен код 303 See Other). Если вы хотите, чтобы указанная страница находилась в поиске, она должна отвечать кодом 200.

304 Ресурс не изменялся

Получен код 304 Not Modified. Если страница не изменилась с момента последнего обращения робота, рекомендуется выдавать этот код. Это ускорит индексирование и уменьшит трафик.

305 Следует использовать прокси

Доступ к затребованному ресурсу может осуществляться только через прокси-сервер, указанный в заголовке Location (получен код 305 Use Proxy).

307 Временное перенаправление

Затребованный ресурс был временно переведен на другой адрес, который необходимо прописать в Location (получен код 307 Temporary Redirect).

Коды 4xx (ошибка клиента)

Содержит перечень кодов статуса HTTP, использующихся для обозначения возможных ошибок в клиентском запросе (коды 4xx).




Код Ошибка Описание
400 Неверный запрос

Запрос не может быть понят сервером из-за некорректного синтаксиса (получен код 400 Bad Request).

401 Неавторизованный запрос

Для доступа к документу необходимо вводить пароль или быть зарегистрированным пользователем (получен код 401 Unauthorized).

402 Необходима оплата за запрос

Внутренняя ошибка или ошибка конфигурации сервера (получен код 402 Payment Required).

403 Доступ к ресурсу запрещен

Доступ к документу запрещен (получен код 403 Forbidden). Если вы хотите, чтобы страница индексировалась, необходимо разрешить доступ к ней.

404 Ресурс не найден

Документ не существует (получен код 404 Not Found). Если вы удалили какой-то раздел сайта, можно с помощью robots.txt запретить роботу обращаться к нему. Если такой страницы на сайте никогда не существовало, игнорируйте эту ошибку, возможно, кто-то поставил некорректную ссылку на ваш сайт.

405 Недопустимый метод

Метод, определенный в строке запроса (Request-Line), не дозволено применять для указанного ресурса, поэтому робот не смог его проиндексировать (получен код 405 Method Not Allowed).

406 Неприемлемый запрос

Нужный документ существует, но не в том формате (язык или кодировка не поддерживаются роботом). Получен код 406 Not Acceptable.

407 Требуется идентификация прокси, файервола

Необходима регистрация на прокси-сервере (получен код 407 Proxy Authentication Required).

408 Время запроса истекло

Сайт не передал полный запрос в течение установленного времени и робот разорвал соединение (получен код 408 Request Timeout).

409 Конфликт

Запрос конфликтует с другим запросом или с конфигурацией сервера (получен код 409 Conflict).

410 Ресурс недоступен

Затребованный ресурс был окончательно удален с сайта (получен код 410 Gone).

411 Необходимо указать длину

Сервер отказывается принимать запрос без определенного заголовка Content-Length (получен код 411 Length Required). Поправьте заголовки на своем сервере;— тогда в следующий раз робот сможет проиндексировать страницу.

412 Сбой при обработке предварительного условия

При проверке на сервере одного или более полей заголовка запроса обнаружено несоответствие (сбой или ошибка при обработке предварительного условия). Получен код 412 Precondition Failed.

413 Тело запроса превышает допустимый размер

Сервер отказывается обрабатывать запрос потому, что размер запроса больше того, что может обработать сервер (получен код 413 Request Entity Too Large).

414 Недопустимая длина URI запроса

Сервер отказывается обслуживать запрос, потому что запрашиваемый роботом URI (Request-URI) длиннее, чем сервер может интерпретировать (получен код 414 Request-URI Too Long).

415 Неподдерживаемый MIME тип

Сервер отказывается обрабатывать запрос, потому что тело запроса имеет неподдерживаемый формат (получен код 415 Unsupported Media Type).

416 Диапазон не может быть обработан

Сервер отказывается обрабатывать запрос, потому что значение поля Range в заголовке запроса указывает на недопустимый диапазон байтов (получен код 416 Requested Range Not Satisfiable).

417 Сбой при ожидании

Сервер отказывается обрабатывать запрос, потому что значение поля Expect в заголовке запроса не соответствует ожиданиям (получен код 417 Expectation Failed).

422 Необрабатываемый элемент

Сервер не в состоянии обработать один (или более) элемент запроса (получен код 422 Unprocessable Entity).

423 Заблокировано

Сервер отказывается обработать запрос, так как один из требуемых ресурсов заблокирован (получен код 423 Locked).

424 Неверная зависимость

Сервер отказывается обработать запрос, так как один из зависимых ресурсов заблокирован (получен код 424 Failed Dependency).

426 Требуется обновление

Сервер запросил апгрейд соединения до SSL, но SSL не поддерживается клиентом (получен код 426 Upgrade Required).


Коды 5xx (ошибка сервера)

Перечень кодов статуса HTTP, использующихся для обозначения возможных ошибок сервера (коды 5xx).


Код Ошибка Описание
500 Внутренняя ошибка сервера

Сервер столкнулся с непредвиденным условием, которое не позволяет ему выполнить запрос (получен код 500 Internal Server Error).

501 Метод не поддерживается

Сервер не поддерживает функциональные возможности, требуемые для выполнения запроса (получен код 501 Not Implemented). Этот ответ соответствует состоянию, когда сервер не распознает метод запроса и не способен обеспечить его для любого ресурса.

502 Ошибка шлюза

Сервер, действуя в качестве шлюза или прокси-сервера, получил недопустимый ответ от следующего сервера в цепочке запросов, к которому обратился при попытке выполнить запрос (получен код 502 Bad Gateway).

503 Служба недоступна

Возникла ошибка из-за временной перегрузки или отключения на техническое обслуживание сервера (получен код 503 Service Unavailable).

504 Время прохождения через межсетевой шлюз истекло

Сервер, при работе в качестве внешнего шлюза или прокси-сервера, своевременно не получил отклик от вышестоящего сервера, к которому он обратился, пытаясь выполнить запрос (получен код 504 Gateway Timeout).

505 Версия НТТР не поддерживается

Сервер не поддерживает или отказывается поддерживать версию HTTP-протокола, которая используется в сообщении запроса робота (получен код 505 HTTP Version Not Supported).

507 Недостаточно места

Сервер не может обработать запрос из-за недостатка места на диске (получен код 507 Insufficient Storage).

510 Отсутствуют расширения

Сервер не может обработать запрос из-за того, что запрашиваемое расширение не поддерживается (получен код 510 Not Extended).

www.cy-pr.com

Что такое код статуса HTTP?

Код статуса HTTP (или код ответа сервера) — трёхзначное число, которое обозначает определенный статус запрашиваемой страницы.

Пример:

HTTP/1.1 200 OK , где
HTTP/1.1 — версии протокола,
200 — код успешного выполнения запроса.

Подробнее посмотреть значения кодов ответа сервера можно в этой статье.

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

 

Проверить код ответа сервера страницы

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

Все довольно просто: необходимо вставить URL страницы и нажать кнопку “Проверить”.

Также можно воспользоваться проверкой ответа сервера в Яндекс Вебмастере , инструмент доступен только для подтверждённых сайтов.

Узнать код ответа сервера всех страниц сайта

Для пакетной  проверки ответа сервера вышеизложенный сервис нам, к сожалению, не подойдет, поэтому воспользуемся десктопными приложениями Xenu или Spider, которые помогут пропарсить все страницы сайта и проверить код ответа всех страниц.

 

Получение статуса страниц в Xenu

В главном меню перейдем «File- Check URL». Введем адрес сайта и запустим проверку урлов на ответ сервера

Результат проверки статуса ответа сервера можно будет увидеть в колонке «Status».

 

Получение статуса страниц в Spider

Запускаем приложение, вводим URL. Результат смотрим в колонке “Статус”.

Массовая проверка страниц на код ответа сервера

Используется для проверки группы Url-ом нескольких сайтов или вполне конкретных страниц. В решении этой задаче нам поможет этот сервис. Вводим списком адреса.

Получаем результат.

Есть небольшое ограничение: максимальное количество Url-ов составляет 100 адресов.

Но это совсем не проблема. Я предлагаю вам решение, которое вы можете реализовать на вашем веб-сервере (необходимы небольшие знания PHP).

Рассмотрим функцию get_headers, которая возвращает все заголовки, посланные сервером в ответ на HTTP запрос.

Пример: Возвращает код ответа сервера заданного URL-а.

  <!--?php  ini_set('max_execution_time', 900);  $url='//semantica.in/';  $code=get_headers($url);  echo($code[0]);  ?>  

Немного доработав php код , мы сможем списком вводить URL-ы и получать коды ответа сервера:

  <form action="index.php" method="POST">  	<textarea name='url'></textarea>  	<button type="submit">Send</button>  </form>  <?php  	if(!empty($_POST["url"])){  		$url = $_POST['url'];  		$links = explode("rn",$url);  		$count = count($links);     		for ($i =0; $count > $i; $i++)  		{  			$url = $links[$i];  			$head = get_headers($url);  			$code = $head[0];  			echo "$url $code";  			echo "<br>";  		}  				}  ?>  

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

semantica.in

От чего зависит время ответа сервера

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

Не существует универсального способа сократить время ответа сервера. В каждом случае должен быть индивидуальный подход к оптимизации нагрузки.

Нормальное время ответа — это сколько?

Чем меньше, тем лучше.

  • До 300 миллисекунд — очень хороший результат, можно спать спокойно.
  • От 300 до 700 миллисекунд — тоже неплохо, волноваться повода нет.
  • Если время ответа вашего сайта приближается к секунде, или ещё выше — повод принимать меры.

Если вы этого ещё не сделали, то рекомендую прямо сейчас проверить скорость ответа вашего сайта. Результат может быть неожиданным для вас. Более того, рекомендую делать это регулярно. Для этого в нашем тестере предусмотрена возможность сохранять проверки. Достаточно один раз сохранить все страницы, которые вы желаете проверять, и далее проверять их мгновенно за 1 клик.

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

Коды ответов HTTP

Код состояния HTTP — это число, состоящее из трех цифр. Первая цифра означает группу, к которой принадлежит код.

Существуют следующие группы:

  • 1xx — Информационные коды
  • 2xx — Успешные коды
  • 3xx — Коды перенаправлений
  • 4xx — Коды ошибок клиента
  • 5xx — Коды ошибок сервера

Проверка 304 Not Modified

Правильно настроенный сервер должен обрабатывать заголовок If-Modified-Since. Этот заголовок содержит дату и спрашивает, была ли изменена страница после этой даты. Если страница не была изменена, сервер должен вернуть ответ 304 Not Modified. При этом ответ содержит только заголовки и не содержит тело страницы. Это значительно экономит время и трафик при обходе вашего сайта поисковыми роботами.

Помимо этого, для корректной работы этой схемы сайт должен на каждый GET запрос возвращать заголовок Last-Modified, содержащий дату последнего изменения страницы. Браузеры и поисковые роботы сохраняют эту дату и при следующем запросе используют именно её для заголовка If-Modified-Since как бы спрашивая, изменилась ли страница с тех пор, нужно ли её скачивать заново.

calcus.ru

Популярные коды статусов HTTP

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

  • 200 OK — запрос выполнен успешно. Если у вас при проверке отображается код ответа сервера 200, значит с этой страницей все хорошо.
  • 301 Moved Permanently — мы уже встречались с этим вариантом в статье про 301 редирект. Он означает, что страница навсегда перемещена на другой адрес (URL). При этом передается почти весь ссылочный вес.
  • 302 Moved Temporarily — запрашивая страница временно доступна по другому адресу.
  • 404 Not Found — по указанному УРЛу ничего не найдено. Желательно создать на своем сайте эффективную страницу 404 ошибки, где пользователю отображалась бы соответствующая информация и рекомендации.
  • 403 Forbidden — ограничение прав доступа к конкретной странице. Администратор сайта может специально закрыть от пользователей системные файлы или директории. Также это может свидетельствовать об ошибке установки прав на папку. Если для доступа к странице нужна аутентификация, то используется код статуса HTTP 401 Unauthorized.
  • 408 Request Timeout — истекло время ожидания сервером. Бывает при загрузке пользователем слишком объемного файла на сайт.
  • 500 Internal Server Error — код ответа сервера 500 означает любую ошибку, не описанную в других статусах 5xx.
  • 502 Bad Gateway — свидетельствует о проблемах в работе сервера DNS, прокси или хостинг провайдера. Обычно траблы возникают с последним — можете смело писать в тех.поддержку и спрашивать почему не работает сайт.
  • 503 Service Unavailable — данный код означает, что сервер недоступен по техническим причинам (будь то перегрузка или отключение на тех.обслуживание). С помощью параметра Retry-After можно указать рекомендуемое время повторения запроса. В любом случае поисковые роботы позже еще зайдут на ваш сайт.
  • 504 Gateway Timeout — сервер не успел вернуть ответ в определенный лимит времени. Обычно это случается при резких больших нагрузках на сайт, к которым ваш хостинг не готов. Как вариант решения — купить сервер помощнее.

Данные коды состояния HTTP попадаются вебмастерам наиболее часто, остальные, как я уже сказал выше, смотрите в Wikipedia.

Методы проверки ответа сервера

Чтобы проверить код ответа сервера есть разные варианты, все зависит от ситуации — нужно ли вам определить статус страницы своего/чужого сайта, предпочитаете использовать онлайн сервисы или десктопные приложения, это будет массовая проверка кодов ответа сервера или одна страница и т.п. Рассмотрим поочередно все возможности.

Код ответа сервера в Яндекс.Вебмастере

Когда требуется проверить HTTP статус конкретной страницы своего сайта, можно воспользоваться Яндекс.Вебмастером. Переходите в соответствующий раздел панели либо по этой ссылке.

Проверка кода ответа сервера в Яндекс.Вебмастере

В строке ввода указываете URL, а справа выбираете тип поискового робота для захода на страницу. Через некоторое время отобразится разная служебная информация по запросу. К сожалению, проверить код ответа сервера в Яндекс можно только на своих подтвержденных проектах и только внутри панели вебмастеров. Регистрация и добавления сайта, понятно дело, занимает определенное время, поэтому, метод не самый быстрый и простой.

Сервисы проверки ответа сервера

Разных веб-проектов, позволяющих проверить ответ сервера достаточно много. Из наших больше всего внушает доверие следующие три варианта:

PR-CY

PR-CY для проверки ответа сервера

Среди множества SEO инструментов портала PR-CY нашлась нужная нам функция проверки заголовков сервера. Кроме самого статуса выводится некоторая дополнительная информация.

Checkmy

Checkmy - сервис получения ответа сервера

Онлайн сервис специально создан для определения кода ответа сервера. Поддерживается gzip сжатие, кириллические домены, имеется выбор User Agent’а, а также мобильная версия. Выглядит симпатично.

Mainspy

Mainspy - получение HTTP статуса страницы

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

HTTP Status Code Checker

HTTP Status Code Checker

Англоязычных сервисов, где можно проверить ответ сервера еще больше. Один из первых в выдаче — httpstatus.io. Тут все предельно просто: вводите адрес страницы, выбираете (если нужно) дополнительные параметры запроса и кликаете Submit.

Server Headers Checker

Server Headers Checker

Очень часто функцию проверки HTTP кода состояния страниц можно встретить на тематических SEOшных порталах или даже блогах. Инструменты от Seobook — отличный тому пример. Особенностью сервиса есть возможность исследования сразу нескольких страниц.

Netpeak Spider — программа проверки ответа сервера

Когда-то я уже рассказывал о полезном софте от Netpeak. Для решения текущей задачи нам пригодится их программа Netpeak Spider, которая позволяет анализировать внутренние страницы проекта. Помимо поиска битых линков, дубрей, выгрузки МЕТА тегов и работы со ссылками, с ее помощью можно узнать разные параметры страниц сайта (в том числе и код ответа сервера).

Netpeak Spider для проверки ответа сервера

В отличии от большинства предыдущих онлайн сервисов программа позволяет оценить сразу множество страниц. Удобно для анализа своего сайта, однако не уверен, что она сможет «обработать» набор разных URL’ов из заданного списка. Скачавайте ее тут. Распространяется бесплатно.

HEADMasterSEO

Недавно на почту написал автор еще одной подходящей программы — HEADMasterSEO. Она хоть является платным продуктом, но имеет возможност проверки до 500 ссылок просто так. Этого, как правило, должно хватить для задач рядового вебмастера.

HEADMasterSEO

Софт позволяет получить статусы ответов сервера для большого списка линков, а также считывает ряд других параметров: редиректы, время отклика, ссылки в head, X-Robots-Tag и т.п. Результаты можно сортировать, фильтровать и экспортировать в CSV. Работает программа под Windows и Mac OS X. Честно, не совсем понимаю, что значит ограничее 500 урлов «за одну операцию» — если допускается повторный запуск программы с новыми ссылками, то это безусловно удобнее чем юзать Tor для онлайн чекеров или запускать по 50 линков.

tods-blog.com.ua

Что такое код ответа сервера?

Для нормальной работы различных программ, работающих по протоколу HTTP сервер возвращает не только текст страницы, но и трехзначный код, который позволяет определить результат запроса. С помощью этого кода можно не только описать какая ошибка возникла во время обработки, но и перенаправить пользователя на другую страницу, или же сказать, что страница не была изменена. Вот самые распространенные коды ответа сервера:

1xx — информационные:

  • 100 — сервер принял первую часть запроса, можно подрожать передачу;
  • 101 — нужно изменить протокол работы на более подходящий;
  • 102 — на обработку запроса уйдет много времени, используется чтобы браузер не разрывал соединение раньше времени;

2хх — операция успешна:

  • 200 — запрос выполнен успешно, отправляется для большинства запрашиваемых страниц;
  • 201 — после выполнения запроса был создан ресурс;
  • 202 — запрос принят, но еще не обработан;
  • 203 — запрос выполнен успешно, но информация для ответа взята из прокси;
  • 204 — запрос обработан, но контента для отображения нет;
  • 205 — попросить пользователя ввести необходимые данные;
  • 206 — запрос обработан, но передана только часть контента;

3xx — перенаправления:

  • 300 — есть несколько страниц для этого запроса, например, на нескольких языках;
  • 301 — страница навсегда перемещена по новому адресу;
  • 302 — документ был временно перемещен;
  • 303 — документ необходимо загрузить по указанному адресу с помощью протокола GET;
  • 304 — документ не изменился с последнего запроса;
  • 305 — нужно использовать прокси;
  • 307 — ресурс временно перемещен на новый адрес.

4хх — ошибка в запросе:

  • 400 — неверный запрос;
  • 401 — необходимо аутентифицироваться;
  • 403 — запрос принят, но у вас нет доступа;
  • 404 — страница не найдена на сервере;
  • 405 — используемый метод нельзя применять на сервере;
  • 408 — время ожидания передачи запроса истекло;
  • 410 — ресурс полностью удален;
  • 411 — нужно указать длину запроса;
  • 413 — запрос слишком длинный;
  • 414 — URI запроса слишком длинная.

5хх — ошибка сервера:

  • 500 — внутренняя ошибка сервера;
  • 501 — нужная функция не поддерживается;
  • 502 — прокси не может соединиться со шлюзом;
  • 503 — сервер не может обрабатывать запросы по техническим причинам;
  • 504 — прокси не дождался ответа от сервера;
  • 505 — версия протокола HTTP не поддерживается.

Что такое http заголовки?

С помощью http заголовков клиент и сервер обмениваются информацией и командами между собой. Они используются для согласования метода, протокола, кодировки, языка и многих других параметров работы. Рассмотрим основные заголовки, которые будет отправлять сервер:

  • Server — имя и версия веб-сервера;
  • Date — дата осуществления запроса;
  • Content-Type — MIME тип передаваемых данных, например, text/html, тут же задается кодировка;
  • Connection — тип соединения, может быть closed — уже закрыто, или keep-alive — открыто для передачи данных;
  • Vary — указывает при каких заголовках веб-сервер будет возвращать разные старины для одного URI;
  • Set-Cookie — сохранить Cookie информацию для страницы;
  • Expires — можно хранить страницу или ресурс в кэше до определенной даты;
  • Cache-Control — настройка времени кэширования страницы браузером, а также разрешения на кэширования;
  • ETag — содержит контрольную сумму для страницы, применимо для проверки кэша;
  • Last-Modified — дата, когда страница последний раз была изменена;

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

Проверка кода ответа сервера с помощью cURL

Чтобы увидеть только код ответа страницы достаточно выполнить такую команду:

curl -s -o /dev/null -w "%{http_code}" https://losst.ru

Узнать ответ сервера

Или, если хотите, чтобы ответ выглядел более естественно:

curl -I https://losst.ru 2>/dev/null | head -n 1 | cut -d$' ' -f2

Узнать ответ сервера

Страницы вернули 200, все в порядке. Но отправляет ли сервер редирект для нужных нам страниц? Если ваш сайт работает на https, то все запросы http должны перекидываться на https, также для любого сайта, все запросы на www домен должны перенаправляться на основной, или наоборот. Запросы на ip сайта тоже в идеале должны отправляться на основной домен. Проверка http ответа:

curl -I http://losst.ru 2>/dev/null | head -n 1 | cut -d$' ' -f2

curl -I https://www.losst.ru 2>/dev/null | head -n 1 | cut -d$' ' -f2

Узнать ответ сервера

Все работает так, как нужно. Но смотреть код ответа сервера вряд ли понадобиться, намного интереснее проверка http статусов.

Проверка http заголовков с помощью Curl

Для проверки заголовков мы тоже можем использовать утилиту curl. Чтобы вывести заголовки страницы запустите ее с опцией -I:

curl -I https://losst.ru

Узнать ответ сервера

Здесь отображается код ответа сервера, а также принятые http заголовки. Из них мы можем сделать такие выводы:

  • Страница сгенерирована в nginx 1.10.2;
  • Это обычная html страница (text/html);
  • Размер страницы 102452 байт или 100 кб;
  • Страница последний раз изменялась 18:13:12 (last_modified) это очень важный параметр для поисковых систем;
  • Сервер будет выдавать разные версии страниц при изменении поля Accept-Encoding (Vary);
  • Страница может храниться в любом кэше (public) на протяжении часа (expires);

Таким способом может быть выполнена проверка http заголовков для любой страницы или ресурса чтобы сразу определить все ли отправляется правильно. Например, посмотрим заголовки для изображения:

 curl -I https://losst.ru/wp-content/uploads/2016/08/map-2.png

Узнать ответ сервера

Мы можем видеть, что картинка будет храниться в кэше намного дольше (max-age) чем html страница.

Осталось проверить работают ли такие заголовки, как If-Modified-Since и If-None-Match. Первый позволяет выполнять проверку актуальности кэша по дате модификации, второй — по контрольной сумме поля ETag. Кэш очень важен, чтобы снизить нагрузку на ваш сервер. Если страница не изменилась, то сервер лишь сообщает что она не изменилась, отправляя код ответа 304, вместо передачи полного файла.

Конечно, вы можете использовать для этого онлайн сервисы, но работают они плохо и не всегда показывают верное значение. Поэтому пользуемся опять curl.

Проверка If-Modified-Since

Сначала запрашиваем нашу страницу для просмотра заголовков http, а затем копируем поле Last-Modified:

curl -I https://losst.ru

Узнать ответ сервера

Теперь запрашиваем ее еще раз, но уже с заголовком If-Modified-Since: и ваша дата:

curl -I --header 'If-Modified-Since: Mon, 26 Dec 2016 18:13:12 GMT' https://losst.ru

Узнать ответ сервера

В ответ вы должны получить не саму страницу, а только заголовок HTTP/1.1 304 Not Modified. Если так, значит проверка кода ответа сервера пройдена и все работает верно.

Проверка If-None-Match

Заголовок If-None-Match работает похожим образом, только здесь используется значение контрольной суммы кэша из поля ETag. Опять запросим нашу страницу и скопируем сумму:

curl -I https://losst.ru

Узнать ответ сервера

Затем отправим полученную сумму с заголовком:

curl -I --header 'If-None-Match: "58615db8-19034"' https://losst.ru

Узнать ответ сервера

 

 

И снова мы должны получить ответ 304, страница не изменена.

Проверка сжатия

Сжатие позволяет уменьшить размер передаваемых данных, но в то же время создает дополнительную нагрузку на сервер. Чтобы проверить поддерживает ли сервер сжатие gzip нужно отправить в запросе заголовок Accept-Encoding с параметром gzip:

 curl -I https://losst.ru --header 'Accept-Encoding: gzip'

Узнать ответ сервера

В ответе мы увидим поле Content-Encoding: gzip. Это будет означать, что сжатие используется.

Выводы

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

losst.ru

Коды 2xx (успешно)

Код Ошибка Описание
200 Хорошо

Успешный запрос ресурса. Если клиентом были запрошены какие-либо данные, то они находятся в заголовке и/или теле сообщения.

201 Транзакция прошла успешно

В результате успешного выполнения запроса был создан новый ресурс. Сервер должен указать его местоположение в заголовке Location. Серверу рекомендуется дополнительно указывать в заголовке характеристики созданного ресурса (например, в поле Content-Type). Если сервер не уверен, что ресурс действительно будет существовать к моменту получения данного сообщения клиентом, то лучше использовать ответ 202.

202 Принято

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

203 Неавторитетная информация

Аналогично ответу 200, но в этом случае передаваемая информация была взята не из первичного источника (резервной копии, другого сервера и т. д.) и поэтому может быть неактуальной.

204 Нет содержимого

Сервер успешно обработал запрос, но в ответе были переданы только заголовки без тела сообщения. Клиент не должен обновлять содержимое документа, но может применить к нему полученные метаданные.

205 Сбросить содержимое

Сервер обязывает клиента сбросить введенные пользователем данные. Тела сообщения сервер при этом не передаёт и документ обновлять не обязательно.

206 Частичное содержимое

Сервер удачно выполнил частичный GET возвратив только часть. В заголовке Content-Range сервер указывает байтовые диапазоны содержимого. Особое внимание при работе с подобными ответами следует уделить кэшированию.

207 Многостатусный

Сервер передаёт результаты выполнения сразу нескольких независимых операций. Они помещаются в само тело сообщения в виде XML-документа с объектом multistatus.

226 IM использовано

Заголовок A-IM от клиента был успешно принят и сервер возвращает содержимое с учетом указанных параметров.

 

Коды 3xx (перенаправление)

Код Ошибка Описание
300 Множественный выбор

Затребованный URL обозначает более одного ресурса, и робот не смог однозначно определить, к какой странице URL относится (получен код 300 Multiple Choices).

Исправьте заголовки или укажите ресурс правильно, и тогда робот сможет проиндексировать страницу.

301 Ресурс перемещен навсегда

Документ уже не используется сервером, а ссылка перенаправляет на другую страницу (получен код 301 Moved Permanently).

Так как пользователи не смогут увидеть подобные документы, показывать их в поиске не имеет смысла, и робот их не индексирует. Однако робот обязательно проиндексирует страницу, на которую установлено перенаправление.

302 Ресурс временно перемещен

Запрошенный ресурс временно находится под другим адресом (получен код 302 Found).

Так как пользователи не смогут увидеть подобные документы, показывать их в поиске не имеет смысла, и робот их не индексирует. Однако робот обязательно проиндексирует страницу, на которую установлено перенаправление.

303 Смотрите другой ресурс

Запрошенный ресурс находится под другим адресом, и его следует запрашивать, используя метод GET (получен код 303 See Other). Если вы хотите, чтобы указанная страница находилась в поиске, она должна отвечать кодом 200.

304 Ресурс не изменялся

Получен код 304 Not Modified. Если страница не изменилась с момента последнего обращения робота, рекомендуется выдавать этот код. Это ускорит индексирование и уменьшит трафик.

305 Следует использовать прокси

Доступ к затребованному ресурсу может осуществляться только через прокси-сервер, указанный в заголовке Location (получен код 305 Use Proxy).

307 Временно перемещен

Затребованный ресурс был временно переведен на другой адрес, который необходимо прописать в Location (получен код 307 Temporary Redirect).

 

Коды 4xx (ошибка клиента)

Код Ошибка Описание
400 Неверный запрос

Запрос не может быть понят сервером из-за некорректного синтаксиса (получен код 400 Bad Request).

401 Неавторизованный запрос

Для доступа к документу необходимо вводить пароль или быть зарегистрированным пользователем (получен код 401 Unauthorized).

402 Необходима оплата за запрос

Внутренняя ошибка или ошибка конфигурации сервера (получен код 402 Payment Required).

403 Доступ к ресурсу запрещен

Доступ к документу запрещен (получен код 403 Forbidden). Если вы хотите, чтобы страница индексировалась, необходимо разрешить доступ к ней.

404 Ресурс не найден

Документ не существует (получен код 404 Not Found). Если вы удалили какой-то раздел сайта, можно с помощью robots.txt запретить роботу обращаться к нему. Если такой страницы на сайте никогда не существовало, игнорируйте эту ошибку, возможно, кто-то поставил некорректную ссылку на ваш сайт.

405 Недопустимый метод

Метод, определенный в строке запроса (Request-Line), не дозволено применять для указанного ресурса, поэтому робот не смог его проиндексировать (получен код 405 Method Not Allowed).

406 Неприемлемый запрос

Нужный документ существует, но не в том формате (язык или кодировка не поддерживаются роботом). Получен код 406 Not Acceptable.

407 Требуется идентификация прокси, файервола

Необходима регистрация на прокси-сервере (получен код 407 Proxy Authentication Required).

408 Время запроса истекло

Сайт не передал полный запрос в течение установленного времени и робот разорвал соединение (получен код 408 Request Timeout).

409 Конфликт

Запрос конфликтует с другим запросом или с конфигурацией сервера (получен код 409 Conflict).

410 Ресурс недоступен

Затребованный ресурс был окончательно удален с сайта (получен код 410 Gone).

411 Необходимо указать длину

Сервер отказывается принимать запрос без определенного заголовка Content-Length (получен код 411 Length Required). Поправьте заголовки на своем сервере — тогда в следующий раз робот сможет проиндексировать страницу.

412 Сбой при обработке предварительного условия

При проверке на сервере одного или более полей заголовка запроса обнаружено несоответствие (сбой или ошибка при обработке предварительного условия). Получен код 412 Precondition Failed.

413 Тело запроса превышает допустимый размер

Сервер отказывается обрабатывать запрос потому, что размер запроса больше того, что может обработать сервер (получен код 413 Request Entity Too Large).

414 Недопустимая длина URI запроса

Сервер отказывается обслуживать запрос, потому что запрашиваемый роботом URI (Request-URI) длиннее, чем сервер может интерпретировать (получен код 414 Request-URI Too Long).

415 Неподдерживаемый MIME тип

Сервер отказывается обрабатывать запрос, потому что тело запроса имеет неподдерживаемый формат (получен код 415 Unsupported Media Type).

416 Диапазон не может быть обработан

Сервер отказывается обрабатывать запрос, потому что значение поля Range в заголовке запроса указывает на недопустимый диапазон байтов (получен код 416 Requested Range Not Satisfiable).

417 Сбой при ожидании

Сервер отказывается обрабатывать запрос, потому что значение поля Expect в заголовке запроса не соответствует ожиданиям (получен код 417 Expectation Failed).

422 Необрабатываемый элемент

Сервер не в состоянии обработать один (или более) элемент запроса (получен код 422 Unprocessable Entity).

423 Заблокировано

Сервер отказывается обработать запрос, так как один из требуемых ресурсов заблокирован (получен код 423 Locked).

424 Неверная зависимость

Сервер отказывается обработать запрос, так как один из зависимых ресурсов заблокирован (получен код 424 Failed Dependency).

426 Требуется обновление

Сервер запросил апгрейд соединения до SSL, но SSL не поддерживается клиентом (получен код 426 Upgrade Required).

 

Коды 5xx (ошибка сервера)

Код Ошибка Описание
500 Внутренняя ошибка сервера

Сервер столкнулся с непредвиденным условием, которое не позволяет ему выполнить запрос (получен код 500 Internal Server Error).

501 Метод не поддерживается

Сервер не поддерживает функциональные возможности, требуемые для выполнения запроса (получен код 501 Not Implemented). Этот ответ соответствует состоянию, когда сервер не распознает метод запроса и не способен обеспечить его для любого ресурса.

502 Ошибка шлюза

Сервер, действуя в качестве шлюза или прокси-сервера, получил недопустимый ответ от следующего сервера в цепочке запросов, к которому обратился при попытке выполнить запрос (получен код 502 Bad Gateway).

503 Служба недоступна

Возникла ошибка из-за временной перегрузки или отключения на техническое обслуживание сервера (получен код 503 Service Unavailable).

504 Время прохождения через межсетевой шлюз истекло

Сервер, при работе в качестве внешнего шлюза или прокси-сервера, своевременно не получил отклик от вышестоящего сервера, к которому он обратился, пытаясь выполнить запрос (получен код 504 Gateway Timeout).

505 Версия НТТР не поддерживается

Сервер не поддерживает или отказывается поддерживать версию HTTP-протокола, которая используется в сообщении запроса робота (получен код 505 HTTP Version Not Supported).

507 Недостаточно места

Сервер не может обработать запрос из-за недостатка места на диске (получен код 507 Insufficient Storage).

510 Отсутствуют расширения

Сервер не может обработать запрос из-за того, что запрашиваемое расширение не поддерживается (получен код 510 Not Extended).

be1.ru

Ответ сервера и его составляющие, которые могут повлиять на SEO

В статье, объясняющей суть передачи данных посредством протокола HTTP (HTTPS), ссылка на которую дана в начале публикации, я писал о том, как в принципе происходит общение между клиентскими приложениями (на примере браузера) и вебсервером, которое основывается на схеме «запрос клиента — ответ сервера».

Напомню вкратце, как это осуществляется. Браузер, после того, как пользователь вводит в адресную строку URL страницы, обращается в ближайший ДНС сервер, где хранятся списки всех доменов (что такое доменное имя?), а также соответствующие им IP-адреса (каждое устройство в интернете имеет свой уникальный айпи, включая серверы, где «живут» сайты).

Получив нужный IP, браузер посылает на соответствующий этому ай-пи сервер запрос GET для получения нужного содержания. Серверное ПО обрабатывает запрос и высылает ответ, включающий содержание вебстраницы в виде HTML-кода, который затем модифицируется веббраузером для отображения контента странички в удобоваримом виде.

Но, как говорится, не браузером единым…Аналогичным образом с сервером может «вести диалог» любая клиентская программа, которая снабжена необходимым для этого функционалом, в том числе роботы поисковых систем. Принципы механизма подобного взаимодействия для различных приложений абсолютно тождественны, разница лишь в деталях.

Один из нюансов состоит в том, что главная задача веб-обозревателя заключена в отображении контента необходимой пользователю странички. Для поисковых ботов же функция вывода содержимого на экран монитора вообще не актуальна. Они используют информацию, всегда содержащуюся в ответе сервера, в своих корыстных целях, а именно, как дополнительный фактор, применяемый при оценке страницы ресурса.

Чтобы практически осуществить проверку ответа сервера на запрос робота поисковой системы Яндекс, можно воспользоваться специальным инструментом, где вводите URL исследуемой страницы, а также выбираете нужного бота из выпадающего списка (кроме основного там присутствуют роботы по зеркалам, по картинкам, по поиску видео и другие):

«>

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

HTTP коды состояния — 200, 301, 302, 403, 404, 500 и другие

Код состояния, приходящий в ответе сервера, определяет статус вебстраницы сайта, в отношении которой клиентское приложение отправляет запрос на сервер. Например, HTTP 200 OK означает, что все все содержимое странички передано и будет доступно для просмотра.

Для успешного продвижения главное, чтобы в каждом конкретном случае код состояния был корректным и соответствовал текущему положению вещей. Скажем, если адрес был изменен на постоянной основе по той или иной причине, то в ответе сервера должно быть указано присутствие 301 редиректа (Moved Permanently) в отношении исследуемой страницы (на скриншоте ниже в качестве значения «Location» указан урл страницы, на который осуществлена переадресация):

«>

Практическим примером может служить постоянное перенаправление при склейке зеркал с WWW и без, образующие дубли страниц с одинаковым содержанием, которые без соответствующих мероприятий по их ликвидации могут привести к краху. Прежде, чем продолжить рассуждения, посмотрим, какие вообще коды существуют, которые подразделяются на пять групп:

1. 1XX — информационные, в которых сервер сообщает о процессе обработки запроса.

«>

2. 2XX — HTTP коды, информирующие об успешно переданных данных. О 200 OK я уже упомянул, остальные являются его производными.

«>

3. 3XX — переадресация различного вида с одного URL на другой. Например, если 301 означает, что адрес страницы изменен навсегда, то код 302 говорит о временном перенаправлении. В отличие от постоянного 302 редирект не является сигналом поисковым системам для передачи веса страницы со старого адреса, поэтому на практике он используется лишь в исключительных ситуациях, когда является наиболее оптимальным решением.

«>

4. 4XX — HTTP коды ошибок в запросе со стороны клиента. Например, всем известный код статуса 404 означает, что документа по такому адресу на хосте нет.

«>

5. 5XX — ошибка на сервере, в результате которой страница не может быть предоставлена.

«>

Более подробный список кодов состояния, предоставляемых в HTTP ответе сервера, вы можете получить, если посетите соответствующую страницу Википедии.

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

Бывали случаи, например, когда сервер отвечает HTTP кодом 404 вместо ожидаемого 200, поскольку в реальности вебстраницы доступны и прекрасно открываются. Если такая ситуация, не дай бог, сложится при ответе сервера на запрос того же робота Яндекса, то вполне вероятно, произойдет выпадение этих страниц из индекса, что будет очень обидно.

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

Ежели у вас стандартный виртуальный хостинг, то обращение в техподдержку вашего провайдера зачастую оказывается наилучшим решением. Если же ваш ресурс расположен на выделенном сервере, то проблему, скорее всего, придется решать самому, но главное, что вы не только знаете о ее существовании, но и «откуда у нее ноги растут».

Если взгляните на скриншот выше, где дан ответ сервера, то увидите, что чуть ниже строки с кодом статуса присутствует пояснение, включающее информацию о времени ответа сервера, IP-адресе сайта, кодировке и размере страницы:

«>

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

Какой же должна быть величина времени отклика? Гугл, например, определяет максимальную границу в 200 мс (миллисекунд), но, конечно, чем меньше, тем лучше. Как же увеличить скорость ответа сервера? Для начала попробуйте провести некоторые мероприятия по внутренней оптимизации, вполне возможно, что проблему решит установка плагина кеширования.

Возможно, что предпринятые вами действия помогут мало, так как многое зависит от настроек и мощностей программного обеспечения самого сервера. Тогда есть смысл обратиться к серверному администратору хостинга. Если внятного ответа не получите, а время отклика сервера сильно превышает лимит, означенный выше, стоит задуматься о крайней мере в виде смены провайдера.

HTTP заголовки и их значение

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

В этом свете будем рассматривать примеры ответов на запросы роботов поисковых систем, поскольку они интересуют нас в первую очередь. Для наглядности вначале представляю скриншот с HTTP заголовками, соответствующими урлу страницы со статусом 200 ОК:

«>

Server — название и версия веб-сервера. В данном примере это nginx, который в силу малого использования ресурсов и гибкости конфигурирования решает задачу оптимизации работы основного сервера Apache и используется с ним в связке.

Date — дата и время возврата содержания запрашиваемой страницы.

Content-Lenght — объем передаваемого контента в байтах (определение единицы информации byte читайте в этой статье).

Connection — соединение. Параметр keep-alive означает, что после выдачи документа соединение с сервером не разрывается и можно отправлять дополнительные запросы.

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

Cache-Control — управление кешированием. В нашем образце этот заголовок отражает вид кеша, в котором располагается документ (public) и время, в течении которого он должен находиться в кеше (max-age). Значение public указывает, что эта операция применяется к файлам, хранящимся в общедоступном кэше. Параметр max-age выдает время в секундах.

X-Hyper-Cache — специальный заголовок, который многие пользователи WordPress, наверное, сразу идентифицировали. Несомненно, он касается работы плагина кэширования Hyper Cache, который я считаю, пожалуй, лучшим в своем классе. Значение «hit — gzip» показывает, что к кешированной странице применено сжатие методом gzip.

Content-Encoding — способ кодирования (в общем смысле) передаваемого в ответе содержания страницы. В нашем примере было применено сжатие gzip. Это сигнал клиентской программе (User Agent) распаковать содержимое для его корректного восприятия.

А теперь я отмечу заголовки ответа, на содержание которых вебмастерам следует обратить особое внимание, поскольку оно может оказать серьезное влияние на продвижение. Причем, если вы используете в качестве управления контентом сайта какой-либо движок, с помощью которого HTML-странички генерируются «на лету», то с большой долей вероятности при наличии проблемы у одной вебстраницы пострадают и остальные.

Content-Type — тип контента, который в этом примере представляет из себя HTML-код в кодировке UTF-8. Некорректное указание кодировки может привести к сложностям в восприятии текста пользователями и ботами ПС, а это чревато непопаданием страницы в индекс.

Ведь ежели у вас неправильно выставлена кодировка, то вместо адекватного русского текста те же юзеры увидят на страничке непонятные «кракозябры», что не поднимет престижа вашему вебсайту.

Last-Modified — дата последней модификации веб-страницы. Если клиент (в нашем случае робот Яндекса) получил от сервера этот заголовок с датой обновления контента, то при следующем обращении к URL этой же страницы он отправит серверу в составе запроса If-Modified-Since.

Вебсервер выделит промежуток от времени последних изменений до времени, указанного в заголовке If-Modified-Since. Ежели за этот период страница никоим образом не была изменена, то сервер отправит ответ с HTTP кодом 304 Not Modified, причем в этом случае содержание страницы отправлено не будет. Если же редактирование имело место, то робот получит код 200 ОК вместе с измененным контентом.

Этот механизм, если он настроен верно, позволяет выдавать постоянно свежую информацию. Ведь тут важна актуальность данных, что и обеспечивается правильной реализацией проверки времени последнего обновления. Ведь при неправильной настройке (если дата, указанная в Last-Modified не меняется) робот может получить просто код 304 Not Modified (вместо 200 OK с новой версией документа), хотя контент был несколько раз отредактирован.

Как же можно проверить корректность работы Last-Modified для сервера, на котором расположен ваш сайт? Попробуем разобраться на конкретном примере.

На том же сервисе Яндекса, ссылку на который я уже предложил выше, есть специальная опция, которая позволяет добавить запрос If-Modified-Since и указать нужные вам дату и время (в формате GMT, то есть по Гринвичу, относительно часового пояса Москвы это -3 часа) вплоть до минут, которое определит временной интервал проверки на обновление:

«>

Взгляните на 10 скриншот вверх отсюда, где дан результат проверки в отношении урла одной из страниц моего блога (где отмечены все разделы ответа сервера). Там в части заголовков дано определенное значение Last-Modified, то есть дата последнего обновления. Теперь я включаю показатель If-Modified-Since в запрос и проверяю ответ сервера:

«>

Как видите, получен код 304 Not Modified без содержания вебстраницы, что совершенно верно для данной ситуации, поскольку контент действительно не был обновлен за данный период. Далее для тестирования я добавил небольшой фрагмент текста в этой статье.

Затем я вновь послал запрос от робота Яндекса на сервер, который при правильно работающем механизме кэширования (после обновлении страницы в кеше присутствует последняя версия) должен возвратить ответ 200 ОК с новым содержанием, что и произошло:

«>

Для полного успокоения можно еще просмотреть содержимое заголовка Content-Lenght, которое показывает, что объем контента незначительно, но увеличился (18443 против 18437 до редактирования). Это соответствует действительности, поскольку я именно добавил толику текста. Точно так же вы можете проверить правильность настройки заголовков для своего сервера.

Location — еще один заголовок, который я хотел бы отметить для полноты информации по этой теме. Он появляется в ответе сервера в том случае, ежели робот посылает запрос в отношении вебстраницы, с которой было совершено постоянное перенаправление (HTTP код 301):

«>

Новый адрес, на который был проставлен редирект, и будет присутствовать в заголовке Location. Содержимое страницы в ответе отсутствует, что вполне логично, а вот в пояснении, которое следует за кодом ответа 301 Moved Permanently, указан размер страницы, на урл которой осуществляется переадресация.

Проверка ответа сервера в онлайн сервисах

Далее для полноты картины нелишним будет отметить online сервисы, которые позволяют проверить HTTP ответ сервера. На просторах интернета мне приглянулся вот этот (Checkmy.ru), который обладает достойным функционалом. Проверим теперь на нем отклик сервера, но уже на запрос робота Google для разнообразия:

«>

После активации процесса чуть ниже вы получите ответ со всеми раскладами:

«>

Сервис Checkmy предлагает пользователям не только выбор приложения (User Agent), с которого будет отправлен запрос, но и использования заголовков If-Modified-Since и Accept-Encoding, о которых велась речь выше.

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

На сайте есть еще такая фишка как закладка для браузера, которая обеспечит скоростную проверку любой веб-страницы, на которую вы перейдете. Для этого достаточно прокрутить страницу вниз до нужного места, нажав на ссылку «Быстрый доступ» из верхнего меню. Затем, захватив левой кнопкой мышки кнопку «Checkmy», переместить ее на панель закладок браузера:

«>

В заключение отмечу еще сервис, с помощью инструмента которого удачно осуществите массовую проверку отклика сервера сразу для 200 URL, причем есть возможность загрузки архива ZIP с урлами. А на десерт видеролик о том, что такое код 404 Soft и чем он опасен для вебмастеров:

goldbusinessnet.com


You May Also Like

About the Author: admind

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.