Коды ответов сервера
Содержание:
Как проверить код ответа сервера
Посмотреть код ответа на странице можно бесплатно за пару кликов. В браузере информация находится на панели разработчика: в Google Chrome для вызовите панель горячей клавишей F12, откройте вкладку Network и обновите страницу.
Результаты просмотра кода в браузере
Для просмотра кода есть браузерные расширения:
HTTP Headers для Google Chrome, HTTP Header для Opera.
Инструмент в Яндекс.Вебмастере покажет код статуса HTTP.
Результаты проверки инструментом
Инструмент
проверки заголовков сервера от PR-CY определит HTTP статусы сайта и доменного имени.
Результаты проверки инструментом
10.2 2xx — Успешные коды.
Этот класс кодов состояния указывает, что запрос клиента был
успешно получен, понят, и принят.
10.2.1 200 OK.
Запрос был удачно выполнен. Информация, возвращаемая с ответом
зависит от метода, используемого в запросе. Например:
- GET
-
в ответе представлен объект, соответствующий запрошенному
ресурсу; - HEAD
-
в ответе представлены поля заголовка объекта
(entity-header), соответствующие запрошенному ресурсу. Тело
сообщения (message-body) отсутствует; - POST
-
в ответе представлено описание объекта или содержится
результат действия; - TRACE
-
в ответе представлен объект, содержащий сообщение запроса,
полученого конечным сервером.
10.2.2 201 Создан, Created.
Запрос был выполнен и в результате был создан новый ресурс. Новый
созданный ресурс может быть вызван по URI (одному или нескольким),
возвращенным в объекте ответа; наиболее специфический URL для
ресурса отдается в поле заголовка Location. Первоначальный сервер
ДОЛЖЕН создать ресурс перед возвратом кода состояния 201. Если
действие не может быть выполнено немедленно, сервер должен
возвратить ответ с кодом состояния 202 (Принято, Accepted) вместо
201.
10.2.3 202 Принято, Accepted.
Запрос был принят для обработки, но обработка не была завершена.
В конечном счете запрос МОЖЕТ быть, а МОЖЕТ и не быть выполнен,
поскольку он МОЖЕТ быть отвергнут при фактической обработке.
Не имеется никакой возможности вторичной посылки кода состояния от
асинхронной операции типа этой.
Ответ с кодом состояния 202 преднамеренно уклончив. Цель его
состоит в том, чтобы позволить серверу принять запрос для
некоторого другого процесса (возможно пакетно-ориентированного
процесса, который выполняется только один раз в день) и не
требовать при этом, чтобы соединение агента пользователя с
сервером сохранялось до завершения процесса. Объекту,
возвращенному с этим ответом СЛЕДУЕТ содержать индикатор текущего
состояния запроса и либо ссылку на монитор состояния, либо
некоторую оценку времени, когда пользователь может ожидать
завершения выполнения запроса.
10.2.4 203 Не авторская информация, Non-Authoritative Information.
Возвращенная в заголовке объекта (entity-header) метаинформация —
это не оригинал, доступный на первоначальном сервере, а документ,
собранный из локальных копий или копий третьей стороны.
Представленный документ МОЖЕТ быть как подмножеством оригинальной
версии, так и содержать сведения, которые в ней не были
представлены. Например, включение локальной аннотирующей
информацию о ресурсе МОЖЕТ расширить метаинформацию, известную
первоначальному серверу. Использование этого кода состояния в
ответе не является необходимым, но может применяться тогда, когда
код состояния ответа отличен от 200 (OK).
10.2.5 204 Нет содержимого, No Content.
Сервер выполнил запрос, но нет никакой новой информации, которую
можно послать обратно. Если клиент — агент пользователя, ему НЕ
СЛЕДУЕТ изменять вид документа, который послужил причиной запроса.
Этот ответ предназначен прежде всего для того, чтобы позволить
вводить данные для действий, не изменяя вид активного документа
агента пользователя. Ответ МОЖЕТ включать новую метаинформацию в
форме заголовков объекта (entity-headers), которые СЛЕДУЕТ
добавить к документу, показываемому в настоящее время агентом
пользователя.
Ответ с кодом состояния 204 НЕ ДОЛЖЕН содержать тела сообщения, и,
таким образом, всегда завершается первой пустой строкой после
полей заголовка.
10.2.6 205 Сбросить содержимое, Reset Content.
Сервер выполнил запрос, и агенту пользователя СЛЕДУЕТ отменить
просмотр документа, который инициировал запрос. Этот ответ
предназначен прежде всего для того, чтобы позволить ввод данных,
осуществляемый пользователем, с последующей очисткой формы, в
которой сделан ввод, так, чтобы пользователь мог легко
инициировать следующее действие ввода. Ответ НЕ ДОЛЖЕН содержать
объект.
10.2.7 206 Частичное содержимое, Partial Content.
Сервер выполнил частичный GET запрос ресурса. Запрос должен
содержать поле заголовка Range (), указывающее
желаемый диапазон. Ответ ДОЛЖЕН содержать либо поле заголовка
Content-Range (), указывающее диапазон, включенный в
ответ, либо тип содержимого (Content-Type) должен быть равным
«multipart/byteranges», а поля Content-Range должны содержаться в
каждой части. Если «multipart/byteranges» не используется, поле
заголовка Content-Length в ответе ДОЛЖНО соответствовать
фактическому числу октетов (OCTETs), переданных в теле сообщения
(message-body).
Кэш, который не поддерживает заголовки Range и Content-Range НЕ
ДОЛЖЕН кэшировать ответы с кодом состояния 206.
Что такое http и онлайн сервисы для просмотра ответа сервера
Итак, при запросе браузером пользователя какой-либо страницы вашего сайта вместе с Html кодом этой вебстраницы, обозревателю будет передан и так называемый Http заголовок с ответом хоста, в котором помимо прочей информации будет указан код. Он представляет из себя трехзначное число (наиболее часто встречаются варианты 200, 301, 302, 404), которое обозначает ситуацию, сложившуюся на хосте при обработке запроса браузера.
Что такое HTTP? Это протокол, по которому осуществляется обмен данными между вебсервером, на котором расположен интересующий вас сайт, и вашим браузером. Расшифровывается аббревиатура как Hypertext Transfer Protocol. Браузер пользователя обращается к серверу с запросом какого-либо документа и получает соответствующий ответ.
Если ответ на http запрос приходит положительный (200 OK), то браузер начинает загрузку нужного ему файла. Если отрицательный, то информирует об этом пользователя. Имеется еще и шифрованный протокол SHTTP, но сути дела это не меняет.
К примеру, введя туда заведомо несуществующий адрес страницы своего ресурса (для этого после доменного имени можно написать любую ахинею, например, https://ktonanovenkogo.ru/трали-вали), будет получен примерно такой Http заголовок:
HTTP/1.1 404 Not Found Server: nginx/0.6.32 Date: Wed, 09 Mar 2011 14:52:43 GMT Content-Type: text/html; charset=utf-8 Transfer-Encoding: chunked Connection: keep-alive X-Powered-By: PHP/5.2.17 X-Pingback: https://ktonanovenkogo.ru/xmlrpc.php Expires: Wed, 11 Jan 1984 05:00:00 GMT Cache-Control: no-cache, must-revalidate, max-age=0 Pragma: no-cache Last-Modified: Wed, 09 Mar 2011 14:52:43 GMT Vary: Accept-Encoding
И это хорошо, ибо поисковые системы правильно обработают данный ответ сервера и не будут добавлять в индекс вашу несуществующую вебстраницу (404 страница для Joomla, 404 Not Found для Вордпресса).
Причем стоит учитывать, что несуществующие документы могут появиться как по вашей вине, так и из-за ошибки какого-либо доброжелателя, разместившего где-нибудь обратную ссылку на ваш сайт с ошибкой. Посмотреть те несуществующие документы (фактически битые ссылки), которые имеются на вашем ресурсе, вы можете в Яндекс Вебмастере или панели Google, как это было описано в статье .
Гораздо хуже будет, если несуществующий документ не будет выдавать в ответ 404, ибо в этом случае на вашем сайте по разным адресам (URL) несуществующих страниц (а их может быть сколь угодно много) будет выдаваться одна и так же вебстраница ошибки 404. На лицо будет откровенное , которое может повлечь за собой санкции со стороны поисковиков. А оно вам надо — на ровном месте наступать на грабли.
В принципе, еще хуже ситуация может сложиться, если вместо того, чтобы создать отдельную вебстраницу 404 для своего ресурса, вы настроили переброс посетителей на главную, в случае отсутствия запрашиваемого документа на сервере. Поисковые системы, не получив кода 404, вынуждены будут проиндексировать все эти не найденные страницы, а фактически содержимое главной.
Получится совсем неприятная картина — главная будет доступна сразу по неограниченному множеству адресов, ибо при запросе или переходе по битой ссылке будет открываться все время она. Выпадение из индекса главной из-за дублирования контента может нанести очень существенный урон всему продвижению сайта, ибо она, как правило, имеет наибольший статический вес и именно на нее будет приходиться львиная доля всех обратных внешних ссылок.
Обязательно проверьте коды ответа хотя бы у некоторых вебстраниц вашего ресурса, и особенно проверьте правильность цифр, выдаваемых в ответ на запрос несуществующего документа (введите что-то типа http://vash-domen.ru/jhguytrhkfkfijd). Для этой цели можно воспользоваться приведенным выше онлайн сервисом или же рядом других, способных показать все это:
5xx Ошибка сервера
Коды 5xx выделены для случаев неудачной работы на стороне сервера.
Эти ответы сервера часто отображаются, когда запросы пользователя не могут быть обработаны сервером по той или иной причине. Сервер должен иметь специальное сообщение для браузера, которое должно отображаться пользователю – оно уведомляет, что сервер (по какому-либо поводу) не в состоянии произвести обработку запроса.
500 Internal Server Error (Внутренняя ошибка сервера)
Этот статус сообщает о внутренней ошибке сервера, которая не совпадает с другими ошибками того же класса.
Этот код используется, если ресурс или ссылка создается на сервере (например, календарь в системе резервирования), который технически не существует как ссылка или доступный ресурс, но пользователь видите их как ссылки.
501 Not Implemented (Не поддерживается)
Сервер либо не понимает метод запроса, либо не поддерживает инструкции, нужные, чтобы обработать обращение.
Вы можете столкнуться с указанным кодом 501, когда сервер не имеет поддержки стандартных протоколов запросов, среди которых GET, OPTIONS, HEAD, POST и т. д.
502 Bad Gateway (Плохой шлюз)
Пользователь увидит 502 код, если сервер, работает в качестве шлюза или прокси-сервера, и он получил недопустимый ответ от сервера верхнего уровня.
Когда используется подобный код? Обычно, когда сервер высшего уровня и прокси / шлюз не согласованы с протоколами, которые представленными в обращении. Как результат появляется ошибка обмена данных.
503 Server Unavailable (Сервер недоступен)
Код 503 означает, что возникли технические причины, из-за которых сервер на определенное время не способен обработать набор данных.
Его допустимо использовать в случаях, когда на сайт есть повышенный спрос, но у сервера нет возможности обрабатывать все входящие запросы.
504 Gateway Timeout (Тайм-аут шлюза)
Сервер как шлюз или прокси-сервер не дождался ответа от вышестоящего сервера, чтобы завершить текущий запрос.
Когда этот код может применяться? Когда прокси или шлюз используют как канал передачи данных, а два сервера при этом ожидают на ответ.
505 HTTP Version Not Supported (Версия HTTP не поддерживается)
Сервер не поддерживает версию HTTP протокола, обозначенную при обращении к нему.
Где используется такой код? В тех случаях, которые были указаны выше! Если HTTP протокол более старый, чем нужно серверу, и, как следствие, он не поддерживается.
506 Variant Also Negotiates (Вариант также перенаправляется)
Такой ответ сервера последует, если при оформлении ошибочной конфигурации выбранный параметр указывает сам на себя, что приводит к прерыванию процесса связи.
Когда он применяется? Когда сервер настроен неправильно и не может обработать запрос.
507 Insufficient Storage (Недостаточно места)
Ошибка 507 имеет место, когда сервер не может разместить данные, поскольку для текущего запроса недостаточно пространства.
Этот код может быть применен, когда сервер загружен в полном объеме, а пользователь запрашивает ресурс, который уже имеется в наличии. Трудность здесь заключается в том, что на сервере нет места для хранения отправленных в запросе данных, чтобы отправить запрашиваемый ресурс.
509 Bandwidth Limit Exceeded (Превышена пропускная способность)
Этот код ответа используется, когда веб-сайт лимитирует ограничение трафика, предназначенное для него.
Когда используется этот статус? Когда Apache запускает правильное расширение, а ISP имеет пропускную способность, которая может быть скоро превышена. Здесь имеется несколько форм ограничения.
510 Not Extended (Нет расширения)
Код 510 появляется, когда на сервере нет расширения, которое хочет использовать клиент. Когда этот код появляется? Когда сервер требует больше данных в запросе.
511 Network Authentication Required (Требуется аутентификация сети)
Этот статус-код демонстрируется, если клиенту следует сначала авторизоваться в сети, к примеру, необходимо ввести пароль для платного доступа в сеть Интернет.
Когда используется этот код? Когда пользователь сначала должен дать свое согласие на условия использования, прежде чем он получит доступ к Интернету (например, к Wi-Fi точке доступа).
Nataliya Fialkovskaya
SEO specialist
Nataliya is SEO expert at Sitechecker. She is responsible for blog. Can’t live without creating valuable content about SEO and Digital Marketing.
Откуда они? Куда они идут?
Каждый раз, когда вы нажимаете на ссылку или вводите URL и нажимаете «Enter», ваш браузер отправляет запрос на веб-сервер. Веб-сервер получает и обрабатывает запрос, а затем отправляет запрошенные ресурсы вместе с заголовком HTTP.
Коды состояния HTTP доставляются вашему браузеру в заголовке HTTP. Хотя коды состояния возвращаются каждый раз, когда ваш браузер запрашивает веб-страницу или ресурс, большую часть времени вы их не видите. Когда что-то идет не так, вы можете увидеть код состояния HTTP, отображаемый в вашем браузере. Это способ сервера сказать: «Что-то не так. Вот код, который объясняет, что пошло не так ».
Если вы хотите увидеть коды состояния, которые ваш браузер обычно не показывает, есть много разных инструментов, которые облегчают это. Расширения браузера доступны для дружественных к разработчикам браузеров, таких как Chrome и Firefox , и есть много веб-инструментов для извлечения заголовков, таких как Web Sniffer .
Чтобы увидеть код состояния HTTP с помощью одного из этих инструментов, найдите строку в верхней части отчета с надписью «Status: HTTP / 1.1», за которой следует код состояния, возвращаемый сервером.
5xx Ошибка сервера
Коды 5xx выделены под случаи неудачного выполнения операции по вине сервера.
Эти серверные ответы зачастую отображаются, когда пользователь делает запрос, который сервер не в состоянии обработать по той или иной причине. Сервер должен включать сообщение для браузера, которое должно быть показано пользователю – в нем сообщается, что сервер (и по каким причинам) не способен обработать запрос.
500 Internal Server Error
Данная ошибка говорит о любой внутренней ошибке сервера, которая не входит в рамки остальных ошибок класса.
Когда этот код может использоваться? Когда ресурс или ссылка создаются на сервере (вроде календаря в системе бронирования), которые технически не существуют в виде ссылки или доступного ресурса, но показывается пользователю в виде ссылки.
501 Not Implemented
Сервер либо не понимает метод в запросе, либо не поддерживает возможностей, необходимых для обработки запроса
Когда этот код может использоваться? Вы можете столкнуться с этим, когда сервер не поддерживает нормальные протоколы запроса, вроде GET, OPTIONS, HEAD, POST и т.д.
502 Bad Gateway
Ответ 502 отображается, когда сервер, выступая в роли шлюза или прокси-сервера, получил недействительное ответное сообщение от вышестоящего сервера.
Когда этот код может использоваться? Обычно, когда вышестоящий сервер и прокси-сервер/шлюз не согласовывают между собой протоколы, представленные в запросе, и в результате получается ошибка при обмене данных.
503 Server Unavailable
Сервер временно не имеет возможности обрабатывать запросы по техническим причинам. В основном, это состоянии является временным.
Когда этот код может использоваться? Когда сайт пользуется чрезмерным спросом, и сервер не в состоянии обработать все запросы.
504 Gateway Timeout
Сервер в роли шлюза или прокси-сервера не дождался ответа от вышестоящего сервера для завершения текущего запроса.
Когда этот код может использоваться? Когда для передачи данных используется прокси-сервер/шлюз, и два сервера ждут ответов.
505 HTTP Version Not Supported
Сервер не поддерживает указанную в запросе версию протокола HTTP.
Когда этот код может использоваться? В случаях, описанных выше! Когда HTTP-протокол более старый, нежели требуется серверу, и следовательно не поддерживается.
506 Variant Also Negotiates
Такой ответ посылается, когда в результате ошибочной конфигурации выбранный вариант указывает сам на себя, из-за чего процесс связывания прерывается.
Когда этот код может использоваться? Когда сервер настроен некорректно, и не способен обработать запрос.
507 Insufficient Storage
Когда сервер не способен разместить данные, так как не хватает места для выполнения текущего запроса.
Когда этот код может использоваться? Когда сервер уже полностью загружен, и пользователь совершает запрос на ресурс, который сервер уже имеет в запасе. Проблема заключается в том, что на сервере нет места для того, чтобы поместить данные, которые посылаются в запросе, чтобы затем выслать запрашиваемый ресурс.
509 Bandwidth Limit Exceeded
Этот код ответа используется при превышении веб-площадкой отведённого ей ограничения на потребление трафика.
Когда этот код может использоваться? Когда на сервере Apache выполняется корректное расширение, и в ISP установлен уровень пропускного канала, который скоро может быть превышен. Существует несколько опций предела.
510 Not Extended
Когда на сервере отсутствует расширение, которое желает использовать клиент. Когда этот код может использоваться? Когда сервер требует больше информации в совершаемом запросе.
511 Network Authentication Required
Данный код состояния отображается в случае, если клиент должен сначала авторизоваться в сети, например, ввести пароль для платной точки доступа к Интернету.
Когда этот код может использоваться? Когда пользователь предварительно должен дать свое согласие на условия использования, перед тем, как он получит доступ к интернету (например, к Wi-fi точке доступа).
What causes HTTP 302 error?
Here are some of the most common reasons for the 302 redirect error:
- Использование 302 перенаправлений во время перемещения домена;
- Создание перенаправления 302 при перемещении документа;
- Использование перенаправления 302 во время изменения протокола сайта;
- Создание 302 перенаправлений при изменении структуры сайта.
HTML-перенаправление 302 не рекомендуется, когда метод исходного запроса должен применяться к запросу целевого URL-адреса — например, перемещение URL-адреса директивы формы, которая использует метод POST для определенного периода.
Вам не следует использовать код состояния 302, если вы хотите перенести SEO-вес на целевой URL.
3xx: Redirection
Message | Description |
---|---|
300 Multiple Choices | A link list. The user can select a link and go to that location. Maximum five addresses . |
301 Moved Permanently | The requested page has moved to a new url . |
302 Found | The requested page has moved temporarily to a new url . |
303 See Other | The requested page can be found under a different url . |
304 Not Modified | This is the response code to an If-Modified-Since or If-None-Match header, where the URL has not been modified since the specified date. |
305 Use Proxy | The requested URL must be accessed through the proxy mentioned in the Location header. |
306 Unused | This code was used in a previous version. It is no longer used, but the code is reserved. |
307 Temporary Redirect | The requested page has moved temporarily to a new url. |
Migrating from v1.x.x
http-status-codes v2 is mostly backwards compatible with v1. There is a single breaking change and two recommended changes.
The reason phrase for the status code has been changed from to . This is the correct phrase according to RFC7231. If you are migrating from v1, and have code that relies on the result of or , then this could affect you.
The function has been renamed to . The old function is still available, but may be deprecated in a future version. To fix this simply rename instances of to . The function is otherwise the same as it was before.
In http-status-codes v1, Status Codes were exported directly from the top-level module. i.e. . In v2 all Status Codes live under an object called . i.e. . We made this change to cater to TypeScript users who prefer a dedicated value with an enum type. The previous values are still exported, but we won’t continue to update them. Please migrate if you’re using the old-style imports.
3хх Перенаправление
Этот класс кодов состояния указывает на дальнейшие действия, которые должны быть предприняты агентом пользователя для того, чтобы завершить запрос. Действия могут производиться пользователей, либо могут включать в себя различные запросы к серверу.
300 Multiple Choices
В основном, этот код сообщает пользователю о том, что ресурс был перемещен, и сервер отвечает списком доступных альтернативных вариантов, среди которых пользователь может выбрать наиболее подходящий ему ресурс.
Когда этот код может использоваться? Обычно этот код можно увидеть, когда сервер считает, что предоставленный пользователем (другими словами, браузером пользователя) URL имеет недостаточно точный указатель, и предлагает дальнейший выбор. Обычно это происходит тогда, когда пользователь использует URL на директорию не самого последнего уровня, и сервер предлагает ему выбор имеющихся файлов или директорий последующего уровня.
301 Moved Permanently
Когда этот код может использоваться? Когда страница более не существует, либо ссылка, ведущая на сторонний источник, уже не работает. 301 редирект сообщает пользователю о том, что запрашиваемый ресурс был перемещен (обычно это реализуется при помощи файла .htaccess, доступного на серверах Apache).
302 Found
Когда этот код может использоваться? У этого кода есть несколько применений, многие из которых не являются тем, для чего код был изначально предназначен. Изначально он представлял собой основной способ создания временного перенаправления. Тем не менее, сегодня существуют и другие – этичные, и неэтичные – способы его применения.
303 See Other
Этот код указывает пользователю на то, что запрашиваемый ресурс можно найти по URL, который отличается от указанного в запросе. Это не обязательно означает, что что-то было перемещено, это код лишь предоставляет адрес, по которому следует запрашивать подобный ответ.
Когда этот код может использоваться? Этот метод главным образом существует для того, чтобы позволить выводу данных POST-активированного скрипта перенаправить агента пользователя к выбранному ресурсу.
304 Not Modified
Этот код означает, что пользователь запрашивает документ/ресурс только в том случае, если он подвергался изменениям с момента последнего обновления кэша данного документа.
Когда этот код может использоваться? Если в ответе от сервера сообщается о том, что параметры документа If-Modified-Since или If-Match не менялись с момента создания последнего кэша, то нет необходимости в повторной отправке ресурса.
305 Use Proxy
Этот код сообщает пользователю, что доступ к запрашиваемому ресурсу возможен только посредством прокси, указанного в ответе.
Когда этот код может использоваться? Этот код часто отображается в связи с мерами безопасности, и предоставляет доступ к запрашиваемым URL-ресурсам.
306 Switch Proxy
Этот код изначально означал «последующие запросы должны использовать указанный прокси», но в данный момент не используется и зарезервирован.
307 Temporary Redirect
Этот код возвращается, если ресурс на данный момент временно доступен по другому URL, который также предоставляется в ответе. Этот код немного отличается от кода 302 – он представляет собой более определенную версию кода 302.
Когда этот код может использоваться? Он используется практически в тех же случаях, что и 302, но пользователь должен продолжить запросы по исходному URL при следующих запросах, либо до тех пор, пока не будет применен новых код ответа.