Коды состояния HTTP. Список кодов состояния HTTP


-сервера (apache или nginx) на запрос клиента состоит из двух частей: заголовки и непосредственно тело сообщения.
Для диагностики проблем с сайтами бывает полезно взглянуть именно на заголовки, так как они несут часть служебной информации о том, как отработал сервер, отдавая страницу клиенту. HTTP/1.1 200 OK Server: nginx Date: Sat, 15 May 2010 06:04:26 GMT Content-Type: text/html; charset=UTF-8 Connection: close Cache-Control: no-cache,no-store,max-age=0,must-revalidate Content-Length: 6426 Expires: Sat May 15 06:04:26 2010 GMT Last-Modified: Sat May 15 06:04:26 2010 GMT Set-Cookie: S=; path=/; expires=Wed, 17-May-2000 06:04:26 GMT Set-Cookie: S=; domain=.ya.ru; path=/; expires=Wed, 17-May-2000 06:04:26 GMT X-XRDS-Location: http://openid.yandex.ru/server_xrds/




Яндекс



Заголовки отделяются от тела сообщения пустой строкой.
HTTP -сервер в первой строке заголовка указывает код состояния запроса.
По коду состояния можно судить о результате работы сервера при обработке запроса клиента.

Классы кодов ответа:

1xx Informational (Информационный)

В этот класс выделены коды, информирующие о процессе передачи.

2xx Success (Успешно)

Сообщения данного класса информируют о случаях успешного принятия и обработки запроса клиента. В зависимости от статуса сервер может также передать заголовки и тело сообщения.

3xx Redirection (Перенаправление)

Коды класса 3xx сообщают клиенту что для успешного выполнения операции необходимо сделать другой запрос (как правило по другой ссылке). Из данного класса пять кодов 301, 302, 303, 305 и 307 относятся непосредственно к перенаправлениям. Адрес, по которому клиенту следует произвести запрос, сервер указывает в заголовке Location.

Узнать код ответа сервера на определенный запрос можно с помощью утилиты curl , вызвав её с ключом -I.
Команду curl можно использовать из командной строки *nix-подобной операционной системы, например, зайдя на сервер по .
Запросим с помощью неё yandex.ru:

curl -I http://yandex.ru

и получим следующий ответ:

HTTP/1.1 301 Moved Permanently Date: Sat, 15 May 2010 05:39:40 GMT Server: Apache/2.2.9 (Unix) mod_perl/2.0.4 Perl/v5.8.8 Location: http://www.yandex.ru/ Vary: Accept-Encoding Connection: close Content-Type: text/html; charset=iso-8859-1

Сервер яндекса на запрос yandex.ru ответил кодом «301 Moved Permanently», что, как сказано выше, означает необходимость выполнить запрос по предложенному сервером адресу(этот адрес указан в заголовке «Location», и в данном случае это www.yandex.ru).
Сервер сообщает нам, что обращаться нужно не к yandex.ru, а к www.yandex.ru.

Запросим www.yandex.ru:

curl -I http://www.yandex.ru

получим ответ:

HTTP/1.1 200 OK Server: nginx Date: Sat, 15 May 2010 06:01:26 GMT Content-Type: text/html; charset=UTF-8 Connection: close Cache-Control: no-cache,no-store,max-age=0,must-revalidate Content-Length: 73507 Expires: Sat May 15 06:01:27 2010 GMT Last-Modified: Sat May 15 06:01:27 2010 GMT Set-Cookie: S=; path=/; expires=Wed, 17-May-2000 06:01:26 GMT Set-Cookie: S=; domain=.yandex.ru; path=/; expires=Wed, 17-May-2000 06:01:26 GMT Set-Cookie: yandexuid=3572906971273903287; domain=.yandex.ru; path=/; expires=Tue, 12-May-2020 06:01:26 GMT X-XRDS-Location: http://openid.yandex.ru/server_xrds/

Код ответа «200 OK». Сервер исправно выполнил запрос и вернул пользователю результат.

4xx Client Error (Ошибка клиента)

Класс кодов 4xx предназначен для указания ошибок со стороны клиента.

400 Bad Request (Плохой запрос)

Запрос не принят сервером из-за наличия синтаксической ошибки. Клиенту следует повторно обратиться к ресурсу с изменённым запросом.

401 Unauthorized (Не авторизован)

Запрос требует авторизации пользователя. Сервер должен запросить имя и пароль у пользователя. Если были указаны неверные данные, то сервер снова вернёт этот же статус. Например, наша система мониторинга требует предоставления логина и пароля для входа в систему.
При запросе страницы мониторинга сервер отдаёт следующие заголовки:

curl -I http://monitoring.z8.ru

сервер ответит, что не выдаст результат, пока не будут предоставлены логин/пароль:

HTTP/1.1 401 Authorization Required Server: nginx/0.5.7 Date: Sat, 15 May 2010 06:16:23 GMT Content-Type: text/html; charset=iso-8859-1 Transfer-Encoding: chunked Connection: keep-alive WWW-Authenticate: Basic realm="Nagios Access"

403 Forbidden (Запрещено)

Сервер вернул ошибку 403 при попытке просмотра директории доступ к которой был запрещён. Сервер понял запрос, но он отказывается его выполнять из-за ограничений в доступе со стороны клиента к указанному ресурсу. Если для доступа к ресурсу требуется аутентификация средствами HTTP , то сервер вернёт ответ 401. В противном случае ограничения были заданы администратором сервера или разработчиком web-приложения и могут быть любыми в зависимости от возможностей используемого ПО. Наиболее вероятными причинами ограничения могут являться:

  • Попытка доступа к системным ресурсам веб-сервера (например, файлам.htaccess или.htpasswd) или к файлам, доступ к которым был закрыт с помощью настроек доступа к серверу.
  • Для доступа требуется аутентификация не средствами HTTP (например, для доступа к CMS или разделу для зарегистрированных пользователей).
  • Сервер не удовлетворён IP-адресом клиента (например, временная блокировка из-за частых обращений или же на этапе разработки приложения доступ разрешён только некоторым IP).
  • В запрашиваемой директории отсутствует индексный файл.

404 Not Found (Не найдено)

Сервер понял запрос, но не нашёл соответствующего ресурса по указанной ссылке. Запросим несуществующую страницу:

curl -I http://yandex.ru/instr/index.php

И получим ответ 404:

HTTP/1.1 404 Not Found Date: Sat, 15 May 2010 06:56:24 GMT Server: Apache/2.2.9 (Unix) mod_perl/2.0.4 Perl/v5.8.8 Accept-Ranges: bytes Vary: Accept-Encoding Connection: close Content-Type: text/html

405 Method Not Allowed (Метод не применим)

Указанный клиентом метод запроса нельзя применить к текущему ресурсу.

499 Client Closed Request (Nginx)

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

5xx Server Error (Ошибка сервера)

Коды 5xx выделены под случаи неудачного выполнения операции по вине сервера.

500 Internal Server Error (Внутренняя ошибка сервера)

Любая внутренняя ошибка сервера, которая не входит в рамки остальных ошибок класса 5xx. В основном может возникать в случаях:

  • ошибок пользователей в файле.htaccess.
  • ошибок в скриптах пользователя.
  • проблем на сервере

502 Bad Gateway (Плохой шлюз)

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

503 Service Unavailable (Сервис недоступен)

Сервер временно не имеет возможности обрабатывать запросы по техническим причинам. У нас на хостинге эта ошибка говорит о том, что у пользователя превышен лимит на количество обработчиков HTTP -сервера или общего числа процессов на аккаунт.

Привет, читатель блога сайт! Продолжим знакомиться с протоколом HTTP в рубрике Серверы и протоколы и ее разделе HTTP протокол. Эта запись целиком и полностью посвящена ошибка клиента . Мы с тобой рассмотрим коды ошибок клиента HTTP . Вообще, коды ошибок клиента в могут быть расширены любым сервером, мы рассмотрим только коды ошибок клиента, которые указаны в . Сперва, как и обычно при рассмотрение кодов HTTP протокола, мы дадим общее описания кодам ошибок клиента, а затем рассмотрим по отдельности каждый из 18 HTTP кодов ошибок клиента .

Общая информация о HTTP кодах ошибок клиента

Говорят пользователю о том, что ему не удалось получить запрашиваемый ресурс, указанный в URI (запись про ), по вине самого , например, пользователь ошибся при вводе URL в браузере, в этом случае сервер даст ответ с кодом состояния 404. Все коды ошибок HTTP клиента начинаются с четверки. всегда в случае ошибки клиента отправляет вместе с кодом состояния пояснения того, почему произошла ошибка, за исключение тех случаев, когда используется .

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

Код ошибки HTTP клиента Описание кода ошибки HTTP клиента
400 Bad Request Код состояния ошибки HTTP клиента 400: плохой запрос Такой код состояния ошибки клиента вы можете увидеть тогда, когда не понял ваш запрос из-за синтаксической ошибке в .
401 Unauthorized Код состояния ошибки HTTP клиента 401: не авторизован Такой код состояния ошибки клиента вы можете увидеть в том случае, если для доступа к ресурсу требуется по соображениям .
402 Payment Required Код состояния ошибки HTTP клиента 402: требуется оплата Этот код состояния ошибки клиента на данный момент пока не используется, он предназначен для платных сервисов, а не для хостингов и интернет-провайдеров.
403 Forbidden Код состояния ошибки HTTP клиента 403: запрещено Такой код состояния ошибки клиента вы увидите в том случае, когда сервер вас прекрасно понял, но отказывается вам предоставлять доступ к ресурсу из-за того, что у вас недостаточно прав доступа.
404 Not Found Код состояния ошибки HTTP клиента 404: не найдено Самый популярный код состояния ошибки клиента. Вы его можете увидеть в том случае, когда ошиблись, вводя URL в браузере.
405 Method Not Allowed Код состояния ошибки HTTP клиента 405: метод не дозволен Данный код состояния ошибки клиента можно увидеть в том случае, когда вы используете метод запроса, запрещенный в настройках HTTP сервера.
406 Not Acceptable Код состояния ошибки HTTP клиента 406: не приемлем Этот код состояния вы увидите в том случае, когда вашего клиента содержит неправильные параметры для указанного в нем URI.
407 Proxy Authentication Required Код состояния ошибки HTTP клиента 407: требуется установления подлинности через прокси-сервер Если вы видите этот код состояния ошибки клиента, то вам нужно пройти аутентификацию на прокси-сервере.
408 Request Timeout Код состояния ошибки HTTP клиента 408: истекло время ожидания запроса Этот код состояния ошибки HTTP клиента вы увидите тогда, когда сервер устал ждать от вас сообщение.
409 Conflict Код состояния ошибки HTTP клиента 409: конфликт Такой код состояния ошибки клиента будет появляться очень редко, когда будет происходить конфликт действий между двумя пользователями.
410 Gone Код состояния ошибки HTTP клиента 410: удален А этот код состояния ошибки клиента будет показан сервером в том случае, когда ресурс был доступен по указанному URI, но теперь его там нет.
411 Length Required Код состояния ошибки HTTP клиента 411: требуется длина Этот код состояния ошибки клиента появляется в том случае, когда серверу нужно обязательно указывать
412 Precondition Failed Код состояния ошибки HTTP клиента 412: предусловие неверно Сервер вернет с таким кодом состояния в том случае, когда он не смог выполнить ни одно из условий из запроса клиента.
413 Request Entity Too Large Код состояния ошибки HTTP клиента 413: объект запроса слишком велик

А такой код ошибки клиента можно увидеть в том случае, когда тело () запроса слишком большое и сервер его получить не смог.

414 Request-url Too Long Код состояния ошибки HTTP клиента 414: URI запроса слишком длинный Такой код ошибки клиента сервер выдаст в том случае, если URI запроса слишком длинный.
415 Unsupported Media Type Код состояния ошибки HTTP клиента 415: неподдерживаемый медиа тип Сервер может выдать такой код состояния ошибки клиента в том случае, если не захочет работать с указанным типом данных () тем методом, который указан в запросе клиента
416 Requested Range Not Satisfiable Код состояния ошибки HTTP клиента 416: запрашиваемый диапазон не достижим Данный код и ошибки клиента говорит нам о том, что диапазон фрагмента () в поле заголовка Range указан неверно.
417 Expectation Failed Код состояния ошибки HTTP клиента 417: ожидаемое неприемлимо Код состояния ошибки клиента 417 появится в том случае, если сервер не сможет удовлетворить значению, указанному в поле заголовка Expect.

HTTP код ошибки 400, код ошибки 401, код ошибки клиента 402, код ошибки 403, HTTP код ошибки клиента 404, ошибка клиента 405

HTTP код ошибки клиента 400: Bad Request или неверный запрос. Сервер вернет ответ с кодом ошибки 400 в том случае, когда обнаружит, что HTTP запрос клиента содержит синтаксическую ошибку.

HTTP код ошибки клиента 401: Unauthorized или не авторизован. Код ошибки клиента 401 сервер отправляет в том случае, когда для доступа к ресурсу требуется авторизация, при этом ответ HTTP сервера должен (читай про ) включать поле заголовка WWW-Authenticate и перечень условий для аутентификации клиента, после чего клиент может повторить запрос к серверу с полем Authorization, в котором будут указаны все необходимые данные для авторизации.

HTTP код ошибки клиента 402: Payment Required или требуется оплата. Данный код ошибки клиента зарезервирован для будущего использования и предназначен для оповещения клиента о том, что для доступа к ресурсу ему необходимо произвести оплату. Обратите внимание: данный код ошибки клиент не используется ни хостингами, ни интернет-магазина, ни даже интернет-провайдерами.

HTTP код ошибки клиента 403: Forbidden или запрещено. HTTP код ошибки клиента 403 отправляется сервером в том случае, когда он отказывается выполнить ваш запрос, причин на то могут быть разными. При этом сервер не должен сообщать является ли эта мера временной или постоянной. Одной из причин появления HTTP кода 403 может быть то, что у пользователя недостаточно прав доступа к ресурсу.

HTTP код ошибки клиента 404: Not Found или не найдено. HTTP код ошибки клиента 404 – самый популярный код ошибки клиента, код ошибки 404 видел, наверное, каждый. Ведь для того, чтобы увидеть код ошибки 404 достаточно ввести неверный URL.

HTTP код ошибки клиента 405: Method Not Allowed или метод не дозволен. Код ошибки 405 сервер отправляет клиенту в том случае, когда для ресурса, указанного в URI, нельзя применить метод, указанный в запросе клиента. Код ошибки 405 появляется в основном из-за конфигураций безопасности сервера, когда администратор преднамеренно запрещает выполнение тех или иных методов HTTP запросов на сервере. При этом ответ сервера с кодом ошибки 405 должен содержать поле заголовка Allow, в котором будут указаны доступные метода для ресурса.

HTTP код ошибки 406, код ошибки 407, HTTP код ошибки клиента 408, код ответа сервера 409, код ошибки 410, код ошибки клиента 411, HTTP код 412

HTTP код ошибки клиента 406: Not Acceptable или не приемлем. Код ошибки 406 говорит клиенту о том, что введенный URI не приемлем с теми характеристиками, которые были указаны в HTTP заголовке (читай про ). Если метод запроса был отличным от метода HEAD, то серверу нужно включить в тело сообщения список доступных характеристик для данного URI. Формат HTTP объекта определяется медиа типом в поле заголовка Content-Length и в зависимости от клиента и его возможностей подходящий вариант запроса может быть выбран автоматически, этот код применяется при .

HTTP код ошибки клиента 407: Proxy Authentication Required или требуется установление подлинности через прокси-сервер. HTTP код ошибки клиента 407 появится в том случае, когда клиенту для доступа к указанному ресурсу необходимо авторизоваться на прокси-сервере. Когда возникает код ошибки 407 прокси-сервер должен возвратить поле заголовка Proxy-Authenticate содержащее вызов (challenge), применяемый прокси-сервером для запрошенного ресурса. Код ошибки 407 аналогичен по своему действию с кодом 401.

HTTP код ошибки клиента 408: Request Timeout или истекло время ожидания запроса. Код ошибки 408 возникает в том случае, когда клиент не произвел запрос в течение того времени, которое сервер готов ждать, но клиент может повторить запрос.

HTTP код ошибки клиента 409: Conflict или конфликт. Код ошибки клиента 409 возникает в том случае, когда происходит конфликт между несколькими клиентами при доступе к одному ресурсу. Код ошибки 409 показывается клиенту только в том случае, когда тот может устранить конфликт и повторить свой запрос. HTTP ответ сервера должен предоставить максимум информации для пользователя, чтобы он устранил конфликт, и код 409 больше не появлялся. Чаще всего ошибка 409 появляется при использование метода PUT.

HTTP код ошибки клиента 410: Gone или удален. HTTP код ошибки клиента 410 будет отправлен сервером в том случае, когда ресурс удален и сервер не знает, где искать копию ресурса или его новую версию. В том случае, когда у сервера есть информация о том, что ресурс может быть восстановлен, ему не следует показывать ошибку 410, а лучше показать код ошибки 404.

HTTP код ошибки клиента 411: Length Required или требуется длина. Код ошибки 411 будет показан клиенту в том случае, когда серверу для корректной обработки запроса требуется длина содержимого. Клиент может повторить запрос, если добавит допустимое поле заголовка Content-Length, содержащее длину тела сообщения (message-body) в сообщении запроса.

HTTP код ошибки клиента 412: Precondition Failed или предусловие неверно. Код ошибки 412 будет выслан клиенту сервером в том случае, когда сервер не может выполнить условия, указанные в заголовке HTTP запроса.

HTTP код ошибки клиента 413, код ошибки клиента 414, ошибка клиента 415, ошибка 416, HTTP код 417

HTTP код ошибки клиента 413: Request Entity Too Large или объект запроса слишком большой. Код ошибки 413 появляется в том случае, когда объект, передаваемый в запросе клиента слишком большой и сервер его не может обработать. Сервер может закрыть соединение (здесь написано про ), чтобы не дать клиенту возможность продолжить запрос. Если такая ситуация временная, то сервер в своем сообщении вместе кодом ошибки 413 передает поле заголовка Retry-After, в котором указывает время, через которое запрос может быть повторен.

HTTP код ошибки клиента 414: Request-URI Too Long или запроса слишком длинный. Сервер отправляет сообщение с кодом ошибки 414 в том случае, когда URI, указанный в запросе слишком длинный. Ошибка 414 обычно возникает тогда, когда клиент пытается передать кучу параметров методом GET, а следовало бы использовать метод POST.

HTTP код ошибки клиента 415: Unsupported Media Type или неподдерживаемый медиа тип. Код ошибки 415 сервер отправляет в том случае, когда он отказывается обслуживать запрос из-за некорректного типа данных для ресурса, который указан в URI: когда метод выбранный в запросе не соответствует типу данных ресурса.

HTTP код ошибки клиента 416: Requested Range Not Satisfiable или запрашиваемый диапазон не достижим. Сервер отправит сообщение с кодом ошибки 416 в том случае, когда в поле заголовка запроса Range был указан неверный диапазон фрагмента., в котором есть полное описание всех кодов.

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

Мы выпустили новую книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».

Подписаться

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

Коды состояния HTTP, такие как 404, 301 и , едва ли имеют значение для пользователей, но для оптимизаторов они невероятно важны. Мало того, что роботы поисковых систем (как Googlebot) используют их для определения здоровья сайта, коды состояния помогают узнать, что происходит между браузером и сервером. Некоторые из них указывает на ошибку, например, сигнализируют о том, что запрошенное содержимое не может быть найдено, в то время как другие просто выводят запрашиваемый материал. В этой статье мы пристальнее посмотрим на важнейшие коды HTTP заголовков и узнаем, что они означают для SEO.

Что такое коды состояния HTTP и почему вы их видите?

Код состояния HTTP – это сообщение, которое посылается сервером при отправке запроса с браузера, о том, может ли быть выполнен запрос или нет. Согласно официальной спецификации W3C, существуют десятки кодов состояния, со многими из которых вы вряд ли столкнетесь. А если столкнетесь, полный обзор возможных вариантов можно посмотреть на HTTPstatuses.com.

Чтобы понять эти коды, вам стоит знать, как браузер получает веб-страницу.

Добраться до веб-сайта пользователь может двумя способами – набрав URL сайта или введя запрос в строке поиска. После этого браузер посылает запрос на IP-адрес сайта, для получения соответствующей веб-страницы. Сервер отвечает браузеру, отправляя код состояния, встроенный в заголовок HTTP. Когда все нормально, код заголовка HTTP 200 отправляется обратно в браузер, вместе с запрошенным контентом.

Однако с запрашиваемым контентом или сервером что-то может быть не так. Например, не найдена страница (тогда возвращается код ошибки 404) или есть временная техническая проблема с сервером, в результате чего появляется код внутренней ошибки сервера 500. Эти коды статуса HTTP – важные инструменты для оценки состояния здоровья сайта и его сервера. Если сайт регулярно посылает неправильные коды заголовка HTTP в поисковую систему, его содержимое не индексируется, что, в свою очередь, вредит рейтингу.

Различные классы

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

  • 1xx – Информирующие о чем-либо.
  • 2xx – Сообщающие об успешном выполнении.
  • 3xx – Уведомляющие о перенаправлении.
  • 4xx – Сообщающие об ошибке клиента.
  • 5xx – Сообщающие об ошибке сервера.

Наиболее важные коды состояния HTTP для SEO

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

200: OK / Успешно

Вот как должно быть: клиент запрашивает у сервера контент и сервер отвечает сообщением 200. Это означает, что запрос прошел успешно – браузер получает содержимое, которое удовлетворяет потребностям клиента. И сервер, и клиент довольны. Пользователь счастлив. Все сообщения класса 2xx означают успешное выполнение какой-либо операции.

301: Перемещено навсегда

Заголовок HTTP 301 используется, когда запрашиваемый URL перемещен на новое место. Поскольку вы работаете с сайтом, с кодом придется сталкиваться часто – чтобы перенаправить старый URL на новый, вам обязательно нужно делать 301 редирект. Если вы этого не сделаете, пользователи, открывая старый URL, увидят страницу с кодом ошибки (404).

302: Найдено

Код состояния HTTP 302 означает, что целевой контент был найден, но находится в другом месте. Это довольно неоднозначный код состояния – он не говорит, временная это ситуация или нет. Используйте 302 редирект только в том случае, если хотите временно перенаправить URL на другой источник, и вы уверены в том, что будете использовать URL снова. Этим кодом вы сообщаете поисковым системам, что URL-адрес будет использоваться, а значит ссылочный вес не перенесется на новый URL. Поэтому не пользуйтесь 302 редиректом при перемещении домена или серьезных изменениях в структуре сайта.

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

Код состояния 307 заменяет 302 в спецификации HTTP1.1 и может рассматриваться как единственный истинный редирект. Вы можете использовать 307 если вам нужно временно перенаправить URL на новый, оставив оригинальный метод запроса без изменений. 307 выглядит как 302, за исключением того, что он конкретно сообщает о временном характере нового местоположения. Запрос может меняться с течением времени, поэтому клиент должен продолжать использовать оригинальный URL при создании новых запросов.

403: Запрещено

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

404: Не найдено

Код заголовка HTTP 404 – один из наиболее важных. Когда сервер дает ответ в виде ошибки 404, вы получаете информацию о том, что содержимое не было найдено, и, вероятно, удалено. Старайтесь не раздражать посетителей сообщениями с этим кодом, исправляйте ошибки как можно скорее. Используйте редирект для перенаправления посетителей сайта со старого URL на новую статью или страницу, которая имеет связанный контент.

Мониторьте 404 сообщения в интерфейсе ошибок (Crawl errors) Google Search Console и пытайтесь свести их количество к минимуму. Большое количество ошибок этого типа может быть расценено Google как признак плохого обслуживания, а это повлияет на рейтинг сайта.

410: Удален

Результат кода 410 такой же, как 404 – содержимое не было обнаружено. Тем не менее, с 410 вы сообщаете поисковым системам об удалении запрошенного содержимого. Таким образом, этот код намного конкретнее 404. В некотором смысле вы отдаете команду поисковой машине удалить URL из индекса. Перед тем, как окончательно удалить что-то с сайта, подумайте, есть ли где-нибудь эквивалент страницы. Если да, сделайте редирект. Если нет, страницу нужно удалить или улучшить.

451: Информация недоступна по юридическим причинам

Относительно новое дополнение. Код состояния HTTP 451 показывает, что запрошенное содержимое было удалено по юридическим причинам. Если вы получили запрос на удаление, нужно использовать этот код, чтобы сообщить поисковым системам, что случилось со страницей.

500: Внутренняя ошибка сервера

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

503: Сервис недоступен

Сервер отправляет сообщение об , когда не может обработать запрос из-за сбоя или перегрузки. Используйте этот код всякий раз, когда вам требуется временный простой – например, когда вы проводите обслуживание сайта. Таким образом, роботы поисковых систем узнают, что ваш сайт вскоре возобновит работу, и они могут вернуться позже.

Работа с кодами состояния HTTP

Коды HTTP – важная часть деятельности оптимизаторов. Вы будете сталкиваться с ними ежедневно, и поэтому важно понять, что означают различные коды. Например, при удалении страницы с сайта важно знать разницу между 301 и 410 редиректом. Они служат для разных целей, и, следовательно, ведут к разным результатам.

Если вы хотите получить представление о видах кодов состояния, которые генерирует ваш сайт, войдите в Google Search Console. Здесь вы найдете страницу с ошибками сканирования. Они должны быть найдены и устранены, прежде чем ваш сайт будет проиндексирован.

В заключение

Помните об этих кодах, при работе с сайтом вы увидите как часто они появляются. Зная, какие редиректы нужно использовать в той или иной ситуации, вы сможете спасти свой сайт от необязательных потерь позиций в ранжировании. Одного взгляда на ошибки при сканировании в Google Search Console должно быть достаточно, чтобы вы получили достаточно точные данные о происходящем под капотом.

Ирина Винниченко

Контент-маркетолог SEMANTICA

Владелец сайта – современный Микеланджело. У него есть бесформенный материал, цель и, возможно, вкус и навыки, достаточные для воплощения проекта. Но у владельца сайта есть и то, чего не было у скульпторов – Google Search Console, которая позволяет вовремя найти ошибки и устранить их.

Как это сделать? Откройте Google Search Console. Перейдите во вкладку «Crawl» > «Crawl Errors» . Там вы сможете посмотреть, что происходит с сайтом и уладить проблемы.

В первую очередь разберитесь с внешними ссылками, ведущими на страницу. Google, как правило, сортирует ошибки по важности. Ошибки с внешними ссылками относятся к приоритетным. Чтобы посмотреть, откуда идет ссылка, кликнете по URL-адресу 404 страницы. В открывшейся вкладке выберите «Linked From» и посмотрите URL-ссылки на страницу. Убедитесь, что все 404 страницы перенаправлены 301 редиректом на релевантный URL.

Проверять сайт на наличие ошибок нужно часто. Делайте это хотя бы раз в месяц.

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

Она должна содержать:

  • Уведомление о том, что пользователь открыл страницу, которая не существует.
  • Окно поиска.
  • Простую навигацию, с помощью которой пользователь получит доступ к тому, что искал.
  • Ссылку на главную страницу.

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

HTTP (англ. Hypertext Transfer Protocol) - это протокол, по которому происходит обмен данными между браузером и сервером, на котором находится сайт. Браузер посылает запрос к серверу в виде адреса страницы сайта (URL), в ответ сервер возвращает код ответа. И уже в зависимости от этого кода браузер принимает дальнейшие действия.

Всего существует более 50 кодов ответов http. Самыми популярными кодами являются 200, 301, 404.

Как узнать код ответа HTTP

Чтобы точно узнать, что отвечает сервер при обращении к адресу URL сайта, можно воспользоваться сервисом bertal.ru :

Вбив полный адрес страницы сайта можно посмотреть полный http ответ сервера. Удобно, что можно указывать различных поисковых ботов Яндекс, Гугл или же просто выбрать "мой браузер":

Например, в случае редиректа 301 ответ будет таким:

А в случае когда страница не найдена (код 404):

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

  • 1xx - информационные (Informational)
  • 2xx - успешные (Success)
  • 3xx - перенаправление (Redirection)
  • 4xx - ошибка клиента (Client Error)
  • 5xx - ошибка сервера (Server Error)

Рассмотрим более подробно каждый из кодов ответов.

Описание кодов ответов HTTP

  • 100..199 - группа информационных запросов. Для вебмастера эта группа вообще не представляет никакого интереса.
  • 200 (OK) - все успешно обработано, страница загружена.
  • 201 (Created) - создан новый ресурс.
  • 202 (Accepted) - запрос обрабатывается.
  • 203 (Non-Authoritative Information) - информация загружена не с основного источника.
  • 204 (No Content) - сервер не вернул контент. Запрос считается успешно обработанным.
  • 206 (Partial Content) - пользователю был передан не весь контент.
  • 300 (Multiple choices) - многократный выбор и сервер не смог корректно обработать запрос.
  • 301 (Moved Permanently) - автоматическое перенаправление, поскольку адрес страницы перемещен на другой адрес навсегда. Этот ответ используется очень часто, поскольку адреса страниц зачастую меняются. Также этот код ответа используется, если сменися адрес сайта.
  • 302 (Moved Temporarily) - адрес временно перемещен.
  • 303 (See Other) - запрашиваемый адрес нужно смотреть по другому адресу, который можно посмотреть через GET.
  • 304 (Not Modified) - страница не измяналась. Для ускорения индексации поисковыми роботами можно использовать этот ответ.
  • 305 (Use Proxy) - доступ к странице доступен только через Proxy-сервер.
  • 306 (Temporary Redirect) - адрес сменен на короткое время.
  • 400 (Bad Request) - неверный запрос к серверу.
  • 401 (Unauthorized) - требуется авторизация пользователя
  • 403 (Forbidden) - доступ запрещен всем.
  • 404 (Not Found) - документ не найден. Часто встречаемая ошибка. Читайте: как правильно сделать страницу 404 ошибки
  • 405 (Method Not Allowed) - метод не поддерживается
  • 406 (Not Acceptable) - докумнет существует, но не в том формате
  • 407 (Proxy Authentication Required) - доступен только через proxy-сервер
  • 408 (Request Time-out) - соединение разорвано из-за долгого ответа сервера
  • 500 (Internal Server Error) - аварийный отказ сервера. Зачастую это связано с неверными настройками.htaccess
  • 501 (Not Implemented) - сервер не может выполнить действие, которое запросил клиент
  • 502 (Bad Gateway) - сервер получил неверные ответы от другого сервера
  • 503 (Service Unavailable) - какая-то служба на стороне сервера временно не работает
  • 504 (Gateway Time-out) - сервер в роли шлюза или прокси-сервера не дождался ответа
  • 505 (HTTP Version not supported) - версия HTTP, которая запрашивается не поддерживается.

Невозможно без знания ответов сервера.

Пример:

404 Not found

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

На сегодняшний день выделено 5 основных классов кода ответа:

1xx: Informational (рус. Информационный) — запрос правильно воспринят, но его обработка не завершена.

2xx: Success (рус. Успешно) — запрос правильно воспринят и успешно обработан.

3xx: Redirection (рус. Перенаправление) — коды переадресации на другие страницы.

4xx: Client Error (рус. Ошибка клиента) — ошибка со стороны клиента.

5xx: Server Error (рус. Ошибка сервера) — ошибка со стороны сервера.

А теперь давайте по отдельности разберем некоторые коды состояния IANA.

Ответ сервера 1XX

100 Continue Server Code

100 Continue сообщает, что связь с сервером уже установлена, сервер принял корректный запрос и теперь ведется обмен данными между сервером и клиентом. Данный код является временным, т.е. за ним всегда следует другой. Код 100 является внутренним и не относится к ошибочным. Т.е. «дверь открыта, читай что нужно, как закончишь - закрой». Код 100 может и не генерироваться, если пользователь уже получил часть данных от сервера.

101 Switching Protocols

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

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

102 Processing

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

Ответ сервера 200 ОК

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

Ответ сервера 301

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

Ответ сервера 302

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

Ответ сервера 404

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

Фейковые страницы 404

Большинство вебмастеров не обращает на 404-тые страницы никакого внимания, однако, это может серьезно навредить ранжированию сайта. Парадокс, но страница с сообщением 404 File Not Found далеко не всегда отдает код 404. Такие страницы принято называть «Soft 404». Причины возникновения просты - по каким-то причинам страница отдает код, отличный от 404 и 410 - например, 200. Такое вполне возможно, если страница уже создана, но контента на ней пока нет.

Ответ сервера 500

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

500 Internal Server Error

Код 500 отдается в случае любой внутренней ошибки сервера, за исключением остальных ошибок 5хх класса. Такая ошибка может быть отдана в том случае, когда ссылка генерируется на сервере непосредственно в момент запроса. Простейший пример - внутренний поиск по сайту: физически никакого документа по запрашиваемой ссылке нет.

Ответ сервера 502

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

Ответ сервера 550

При возникновении ошибки 550 необходимо проверить насколько корректно прописаны MX-записи, чтобы устранить данные ошибки ответа сервера.

На выходе будет представлена таблица.

Необходимо убедиться, что в ней прописаны необходимые записи для работы вашей почты:

ВАЖНО! Смешивание MX-записей недопустимо, т.е. в таблице на выдаче должны быть только те MX-записи, которые нужны именно для вашей почты . При необходимости нужно скорректировать записи, исправив ошибки и/или удалив лишнее.

Как получить коды ответа сервера (страницы) через Яндекс

Шаг 1. Проверяем код ответа сервера на страницу сайта, которая должна быть в поиске.

Открываем любую страницу Вашего сайта, находящуюся в поисковой выдаче Яндекса, затем из адресной строки копируем ее URL-адрес.

Теперь переходим в сервис Яндекса (http://webmaster.yandex.ru/server-response.xml), с помощью которого можно посмотреть на сайт глазами робота и проверить скорость ответа сервера в Яндекс панели.

Просто вставляем url-адрес интересующей нас страницы в текстовое поле и нажимаем на кнопку «Проверить». В данном случае мы получили код 200 ОК, свидетельствующий о нормальной работе страницы.

Шаг 2. Проверяем ответ сервера на заведомо несуществующую страницу.

В том же сервисе вводим имя_домена/какая-то_крокозябра

В данном случае мы получили ответ 301 Moved Permanently. Это говорит о том, что адрес страницы указан неверно и происходит переадресация на правильный адрес.

Как еще узнать коды ответа сервера (сайта)?

В качестве альтернативы можно пробить код ответа с помощью сервиса http://mainspy.ru . Работает аналогично сервису Яндекса: вставляем интересующий URL и жмем «Проверить». Код ответа в данном случае находится в самой первой строке:

Bertal, в отличие от Mainspy, позволяет взглянуть на страницу не только глазами Яндекс-бота, но и глазами поисковых роботов Bing и Google, а в качестве бонуса - может эмулировать популярные браузеры. Для удобства взглянем на те же страницы глазами GoogleBot. В данном случае код ответа подсвечен зеленым.

Массовая проверка ответов сервера (сайта) онлайн

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

Dimax.biz - http://backlinks-checker.dimax.biz/tools/proverka_otveta_servera.php - это один из лучших чекеров. Единственный минус - в бесплатном режиме можно делать не более 2 запросов по 50 ссылок каждый. Для более «серьезных» объемов придется воспользоваться платным PRO-тарифом. На выходе мы получаем список, отсортированных по коду ответа. В данном случае в сортировке нет необходимости, т.к. в списке всего 2 адреса, и оба отдают код 200.

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

Как проверить скорость (время) ответа сервера сайта?

Сколько таких сервисов уже развелось - не пересчитать. Рассмотрим некоторые из них.

Это англоязычный инструмент, анализирующий скорость по всем параметрам. С его помощью можно узнать скорость в секундах, сколько весит тестируемая страница, а также получить оценку и рекомендации для ее улучшения. Преимущество данного сервиса в том, что анализируется каждый отдельный элемент. Такой анализ позволяет выяснить, что именно затормаживает загрузку отдельно взятой страницы и/или сайта в целом.

Which Loads Faster

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

Google PageSpeed Insights

Google PageSpeed Insights так же является одним из самых мощных инструментов для измерения скорости работы мобильной и десктопной версии. Оценка производится по 100-бальной шкале. 85 баллов и более - это хороший показатель. Плюс бонусом он выдает рекомендации по улучшению.

Долгий ответ сервера

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

Сложная логика предоставления данных

Сервер не успевает своевременно обрабатывать поступающие запросы из-за их большого количества

Сами запросы (либо сложные, либо неоптимизированные, либо и то и другое)

Запросы к большому количеству внешних ресурсов

Большое количество исполняемых файлов

Сам веб-сервер долго обрабатывает запрос.

Самые «больные» места производительности сервера:

Используемый веб-сервер (Apache, IIS).

Ряд веб-серверов даже при выдаче статических файлов могут создавать задержки, т.к. они на архитектурном уровне не предназначены для обработки большого количества запросов и из-за этого может быть сообщения что превышено время ожидания ответа от сервера. Поэтому для нормальной работы веб-сервера имеет смысл использовать nginx (причем в связке с Apache, php-fpm, а также остальными серверами приложений для обработки серверных вычислений).

Использование OpCache.

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

Запросы к базе данных.

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

Сложная логика обработки данных.

Третий шаг - упрощение серверной логики. По сути, это просто устранение ненужных операций и профилирование времени выполнения серверных скриптов.

Обращение к сторонним сервисам.

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

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

Во-первых, потому что скорость загрузки является одним из факторов ранжирования (хоть и не решающим). Google открыто заявляет, что по скорости показа страниц ранжируется менее 1% сайтов. НО…

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

Превышено время ожидания ответа от сервера .

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

Основных же причин сбоя может несколько:

  • Невозможно подключиться к сайту из-за нестабильной работы его серверов;
  • Сбитые настройки браузера либо его захламленность;
  • Проблемы с подключением к интернету со стороны пользователя;

    Ресурс заблокирован.

Что делать для решения?

Если сбой единичен - перезагружаем страницу с помощью комбинации Ctrl+F5. Возможно, потребуется перезагрузить страницу несколько раз. Если не помогло - проверяем подключение к интернету.

Настройки Сети.

1. Некоторые сайты иногда «капризничают». Для динамического IP решение будет простым - перезагрузить роутер через отключение питания.

2. Медленное соединение иногда провоцирует ошибку ERR_CONNECTION_TIMED_OUT. Скорость работы интернета можно проверить через Яндекс-интернетометр . Если скорость слишком низкая - следует обратиться к интернет-провайдеру.

3. Необходимо проверить «Свойства сети» на наличие посторонних DNS-адресов. Если такие адреса имеются - удалить (предварительно на всякий случай переписав их куда-нибудь) и проверить систему на вирусы с помощью установленного на ПК антивирусного ПО - NOD32, Kaspersky, AdwCleaner, MalwareBytes, Dr.Web и т.д. Лучше всего для этих целей использовать Live-загрузчики.

4. Проверить настройки самого роутера. Наиболее часто сбивается параметр MTU. Универсальных рекомендаций по настройке роутера дать невозможно, т.к. это напрямую зависит и от модели роутера, и от интернет-провайдера. Обычно MTU имеет значения 1500, 1460, 1476.

Какое должно быть время ответа сервера?

И сразу же конкретные цифры:

Самая высокая конверсия у страниц, которые полностью загружаются за 1,8 и 2,7 секунды для десктопной и мобильной версий соответственно

Самый низкий показатель отказов у страниц, которые полностью загружаются за 1 и 0.7 секунды для десктопной и мобильной версий соответственно

Данные цифры позаимствованы из исследования Akamai Technologies.

Итак, Вы проверили сайт на скорость загрузки. Но как реагировать на результаты?

    <1 секунды - идеал

    1-2 секунды - почти идеал

    3-5 секунд - сносно, но имеет смысл допилить

    5-10 секунд - плохо, нужно срочно допиливать

    ≥10 секунд - очень плохо, нужно ЭКСТРЕННО допиливать

Однако, нельзя забывать одно ультраважное правило - скорость загрузки должна быть выше, чем у конкурентов. Исследования The New York Times доказали, что разницы в 0,25 секунды может быть достаточно для того, чтоб посетители предпочли более быстрый сайт. И глазом моргнуть не успеете (в самом прямом смысле), как пользователь уйдет от Вас к конкуренту.

Сокращение ответа сервера

Оптимизация графики .

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

Использовать кеш браузера .

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

Включить сжатие .

Актуально, если используется gzip. В итоге объем данных сокращается раза в 4, а то и в 5. Чем меньше объем передаваемых данных - тем меньше времени занимает их передача.

Сократить время ответа сервера .

С помощью сервиса Pingdom можно вычислить, сколько времени требуется серверу для того, чтоб отдать код ответа. Идеальное время - не более 0,2 секунды.

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




Top