Полное руководство по кодам статуса HTTP. Список кодов состояния HTTP

Полное руководство по кодам статуса HTTP. Список кодов состояния HTTP

17.05.2019

Код состояния HTTP зашифрован в 3-х цифрах. Первая цифра указывает на класс состояния (группа кодов). Вторая и третья цифра – порядковый номер кода ответа.

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

Коды сгруппированы в 5 классов: информационные (1xx), успешные (2xx), перенаправления (3xx), ошибки клиента (4xx) и ошибки сервера (5xx).

Краткая характеристика классов:

  • 1xx (информационные): в этот класс выделены коды, информирующие о процессе передачи
  • 2xx (успешные): сообщения данного класса информируют о случаях успешного принятия и обработки запроса клиента
  • 3xx (перенаправления): коды этого класса сообщают клиенту, что для успешного выполнения операции необходимо сделать другой запрос (как правило, по другому URI)
  • 4xx (ошибки клиента): коды данного класса предназначены для указания ошибок со стороны клиента
  • 5xx (ошибки сервера): коды ответов этого класса выделены под случаи неудачного выполнения операции по вине сервера

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

Группа Код ответа Название кода Описание ответа сервера
Информационные 100 Continue (Продолжай) Сервер удовлетворен начальными сведениями о запросе, клиент может продолжать пересылать заголовки. Появился в версии HTTP/1.1.
101 Switching Protocol (Переключение протоколов) Сервер предлагает перейти на более подходящий для указанного ресурса протокол; список предлагаемых протоколов сервер обязательно указывает в поле заголовка Upgrade . Если клиента это заинтересует, то он посылает новый запрос с указанием другого протокола.
102 Processing (Идет обработка) Запрос принят сервером, но на его обработку понадобится длительное время. Этот ответ используется для того, чтобы клиент не разорвал соединение из-за превышения времени ожидания. Клиент при получении такого ответа должен сбросить таймер и дожидаться следующей команды в обычном режиме. Появился в WebDAV.
Успешные 200 ОК Успешно обработанный запрос. «Успешность» зависит от метода HTTP, который был запрошен:
  • GET: «ПОЛУЧИТЬ». Запрошенный ресурс был найден и передан в теле ответа.
  • HEAD: «ЗАГОЛОВОК». Заголовок передан в ответе.
  • POST: «ПОСЫЛКА». Ресурс, описывающий результат действия сервера на запрос, передан в теле ответа.
  • TRACE: «ОТСЛЕЖИВАТЬ». Тело ответа содержит тело запроса полученного сервером.
201 Created (Создано) Запрос успешно выполнен и в результате был создан новый ресурс. Этот код обычно присылается в ответ на запрос PUT «ПОМЕСТИТЬ».
202 Accepted (Принято) Запрос принят, но еще не обработан. Клиенту не обязательно дожидаться окончательной передачи сообщения, так как может быть начат очень долгий процесс.
203 Non-Authoritative Information (Информация не авторитетна) Этот код ответа означает, что информация, которая была возвращена, была предоставлена не сервером, а каким-либо другим источником. Аналогично ответу 200, но в этом случае передаваемая информация была взята не из первичного источника и поэтому может быть неактуальной.
204 No Content (Нет содержимого) Сервер успешно обработал запрос, но в ответе были переданы только заголовки без тела сообщения. Клиент не должен обновлять содержимое документа, но может применить к нему полученные метаданные. Клиент может использовать их для обновления кэшированных заголовков для предыдущих ресурсов.
205 Reset Content (Сбросить содержимое) Этим кодом сервер обязывает клиента сбросить введенные пользователем данные. Тела сообщения сервер при этом не передает и документ обновлять не обязательно.
206 Partial Content (Частичное содержимое) Сервер удачно выполнил частичный GET-запрос, возвратив только часть контента. В заголовке Content-Range сервер указывает байтовые диапазоны содержимого. Особое внимание при работе с подобными ответами следует уделить кэшированию.
Перенаправления
300 Multiple Choice (Множественный выбор) Этот код ответа присылается, когда запрос имеет более чем один из возможных ответов (по типу MIME, по языку или по другим характеристикам). Сервер передает с сообщением список альтернатив, давая возможность сделать выбор клиенту автоматически или пользователю.
301 Moved Permanently (Перемещен на постоянной основе) Этот код ответа означает, что URI запрашиваемого ресурса был изменен. Новый URI указывается в поле Location заголовка.
302 Found (Найдено); Moved Temporarily (Перемещен временно) Этот код ответа означает, что запрошенный ресурс временно доступен по другому URI, указанному в поле Location заголовка.
303 See Other (Смотреть другое) Сервер отправил этот ответ, чтобы направить клиента для получения запрашиваемого ресурса по другому URI с использованием метода GET . Другой URI указывается в поле Location заголовка.
304 Not Modified (Не изменялось) Этот ответ используется для кэширования. Он сообщает клиенту, что ответ не был изменен. Таким образом, клиент может продолжать использовать ту же кэшированную версию ответа. При этом сообщение сервера не должно содержать тела.
305 Use Proxy (Используй прокси) Запрос к запрашиваемому ресурсу должен осуществляться через прокси-сервер, URI которого указан в поле Location заголовка. Этот код ответа не поддерживается в основном из соображений безопасности.
306 неиспользуемый Этот код ответа больше не используется, в настоящее время зарезервирован.
307 Temporary Redirect (Временная переадресация) Запрашиваемый ресурс на короткое время доступен по другому URI, указанному в поле Location заголовка. Имеет ту же семантику, что и 302 Found код ответа HTTP, за исключением того, что клиент не должен
308 Permanent Redirect (Постоянная переадресация) Это означает, что ресурс теперь постоянно находится по другому URI, указанному в поле Location заголовка. Имеет ту же семантику, что и код ответа HTTP 301 Moved Permanently , за исключением того, что клиент не должен изменять используемый HTTP-метод: если использовался POST в первом запросе, он должен использовать POST и во втором запросе.
Ошибки клиента
400 Bad Request (Плохой запрос) Этот ответ означает, что сервер не смог понять клиентский запрос из-за синтаксической ошибки.
401 Unauthorized (Не авторизован) Для получения запрошенного ответа требуется аутентификация. Это похоже на 403 ответ, но в этом случае возможна аутентификация. В заголовке ответ должен содержать поле WWW-Authenticate с перечнем условий аутентификации.
402 Payment Required (Требуется оплата) Этот код ответа зарезервирован для будущего использования. Первоначальная цель создания этого кода заключалась в использовании его для цифровых платежных систем, однако в настоящее время он не используется.
403 Forbidden (Запрещено) Сервер понял запрос, но он отказывается его выполнять из-за ограничений в доступе для клиента к указанному ресурсу. Клиент не имеет прав доступа к контенту, поэтому сервер отказывается дать правильный ответ. Наиболее вероятными причинами ограничения может служить попытка доступа к системным ресурсам веб-сервера (например, файлам.htaccess или.htpasswd) или к файлам, доступ к которым был закрыт с помощью конфигурационных файлов.
404 Not Found (Не найдено) Сервер не может найти запрашиваемый ресурс. Основная причина - ошибка в написании адреса Web-страницы. Этот код ответа, вероятно, является самым известным из-за его распространенности в Интернете.
405 Method Not Allowed (Метод не поддерживается) Метод запроса известен серверу, но был отключен и не может быть использован. В ответе сервер должен указать доступные методы в заголовке Allow , разделив их запятой. Два обязательных метода: GET и HEAD никогда не должны быть отключены и не должны возвращать этот код ошибки.
406 Not Acceptable (Недопустимо) Запрошенный URI не может удовлетворить переданным в заголовке характеристикам. Если метод был не HEAD , то сервер должен вернуть список допустимых характеристик для данного ресурса.
407 Proxy Authentication Required (Требуется аутентификация прокси) Этот ответ похож на 401 , но здесь проверка подлинности (аутентификация) производится для прокси-сервера.
408 Request Timeout (Истекло время ожидания) Время ожидания сервером передачи от клиента истекло. Это означает, что сервер хотел бы отключить это неиспользуемое соединение. Обратите внимание, что некоторые серверы просто закрывают соединение без отправки этого сообщения.
409 Conflict (Конфликт) Этот ответ будет отправлен, когда запрос будет конфликтовать с текущим состоянием сервера. Такое возможно, например, когда два клиента пытаются изменить ресурс с помощью метода PUT .
410 Gone (Удален) Этот ответ будет отправлен, когда запрашиваемый контент по указанному URL был удален с сервера. Серверу в этом случае неизвестно и местоположение альтернативного документа (например, копии).
411 Length Required (Требуется длина) Сервер отклонил запрос, потому что поле заголовка Content-Length не определено, а сервер требует его. Такой ответ естественен для запросов типа POST и PUT . Например, если по указанному URI производится загрузка файлов, а на сервере стоит ограничение на их объем.
412 Precondition Failed (Условие ложно) Клиент указал условные поля в заголовках запроса (например, If-Match и др.), которые сервер не выполняет.
413 Payload Too Large. Ранее — Request Entity Too Large (Запрошен слишком большой объект) Объект запроса больше ограничений, которые определены на сервере. Сервер может закрыть соединение, чтобы прекратить дальнейшую передачу запроса или вернуть поле заголовка Retry-After с указанием времени, по истечении которого можно повторить аналогичный запрос.
414 URI Too Long. Ранее — Request-URI Too Long (Запрошен слишком большой URI) Запрошенный клиентом URI слишком длинный для обработки сервером. Такую ошибку можно спровоцировать, например, когда клиент пытается передать длинные параметры через метод GET , а не POST .
415 Unsupported Media Type (Неподдерживаемый тип данных) Формат запрашиваемых типов данных не поддерживается сервером, поэтому сервер отклоняет запрос. По каким-то причинам сервер отказывается работать с указанным типом данных при данном методе.
416 Range Not Satisfiable. Ранее — Requested Range Not Satisfiable (Диапазон недостижим) Диапазон, указанный полем заголовка Range в запросе, не может быть выполнен; возможно, что диапазон находится вне размера данных целевого URI и отсутствует поле If-Range .
417 Expectation Failed (Ошибка ожидания) Этот код ответа означает, что ожидание, указанное полем заголовка Expect запроса, не может быть выполнено сервером.
421 Misdirected Request (Неверно адресованный запрос) Запрос был перенаправлен на сервер, не способный дать ответ.
451 Unavailable For Legal Reasons (Недоступно по юридическим причинам) Доступ к ресурсу закрыт по юридическим причинам (например, по требованию органов государственной власти или по требованию правообладателя в случае нарушения авторских прав). Введено в черновике IETF за авторством Google, при этом код ошибки является отсылкой к роману Рэя Брэдбери «451 градус по Фаренгейту». Был добавлен в стандарт 21 декабря 2015 года.
Ошибки сервера
500 Internal Server Error (Внутренняя ошибка сервера) Сервер столкнулся с ситуацией, когда он не знает, как ему поступить. Любая внутренняя ошибка сервера, которая не входит в рамки остальных ошибок класса.
501 Not Implemented (Не реализовано) Метод запроса не поддерживается сервером и не может быть обработан. Типичный ответ для случаев, когда сервер не понимает указанный в запросе метод. Единственными методами, которые требуются сервером для поддержки (и, следовательно, не должны возвращать этот код), являются GET и HEAD .
502 Bad Gateway (Плохой шлюз) Этот ответ об ошибке означает, что сервер, работая в качестве шлюза для получения ответа, необходимого для обработки запроса, получил неверный ответ. Сервер, выступая в роли шлюза или прокси-сервера, получил недействительное ответное сообщение от вышестоящего сервера.
503 Service Unavailable (Сервис недоступен) Сервер не готов обрабатывать запрос. Сервер временно не имеет возможности обрабатывать запросы по техническим причинам (обслуживание, перегрузка и прочее). Обратите внимание, что вместе с этим ответом следует отправить удобную для пользователя страницу, объясняющую проблему. Эти ответы должны использоваться для временных условий, и HTTP-заголовок Retry-After должен, по возможности, содержать расчетное время до восстановления обслуживания. Веб-мастер также должен следить за заголовками, связанными с кэшированием, которые отправляются вместе с этим ответом, так как эти временные ответы обычно не кэшируются.
504 Gateway Timeout (Шлюз не отвечает) Этот ответ об ошибке предоставляется, когда сервер действует как шлюз и не может получить ответ вовремя. Сервер в роли шлюза или прокси-сервера не дождался ответа от вышестоящего сервера для завершения текущего запроса.
505 HTTP Version Not Supported (Версия HTTP не поддерживается) Версия протокола HTTP, используемая в запросе, не поддерживается сервером (либо сервер отказывается поддерживать указанную версию).
509 Bandwidth Limit Exceeded (Исчерпана пропускная ширина канала) Этот код используется при превышении веб-площадкой отведенного ей ограничения на потребление трафика. В данном случае владельцу площадки следует обратиться к своему хостинг-провайдеру. В настоящий момент данный код не описан ни в одном RFC и используется только модулем «bw/limited», входящим в панель управления хостингом cPanel, где и был введен.

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

Подписаться

Роботы общаются между собой. Не только в Японии или голливудских блокбастерах, а прямо сейчас, пока вы читаете статью. Только язык общения у них специфический, и вам нужно понимать его, если хотите знать, как выстраивать работу над улучшением сайта. Для этого нужно изучить коды состояния . Чтобы вы ориентировались в грамматике, перевели с 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 похожи на короткое сообщение от сервера, которое выводится в верхней части веб-страницы. На самом деле это не часть веб-страницы. Это сообщение, возвращаемое при обращении к серверу, позволяет узнать, как обстояли дела, когда сервером был получен запрос на просмотр страницы.

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

В этой статье представлены наиболее распространенные коды статуса и коды ошибок.

Откуда они берутся?

Каждый раз, когда вы кликаете по ссылке или вводите URL-адрес и нажимаете «Enter », браузер отправляет запрос на сервер. Он получает и обрабатывает запрос, а затем отправляет обратно запрашиваемые ресурсы вместе с HTTP-заголовком .

Коды статуса доставляются в браузер в HTTP-заголовке . Хотя вы их не видите. Но когда что-то пошло не так, пользователю отображается код статуса в браузере. Это способ сервера сказать: «Что-то не так. Вот код, который объясняет, что именно ».

Код статуса HTTP Google 404

Чтобы увидеть коды статуса, которые браузер обычно не отображает, потребуются специальные инструменты. Для популярных браузеров, таких как Chrome и Firefox , доступны соответствующие расширения. Также существует много сервисов для отображения заголовков, например Web Sniffer .

Чтобы увидеть код статуса HTTP с помощью одного из этих инструментов, найдите строку, расположенную в верхней части отчета, в которой указано: “Status: HTTP/1.1 ”. После нее указан код статуса, возвращаемый сервером.

Классы кодов статуса HTTP

Коды статуса HTTP разделены на 5 классов:

  • 100: информационные коды, указывающие, что запрос, инициированный браузером, продолжается.
  • 200: коды успешного запроса. Возвращаются, когда запрос браузера был успешно получен, распознан и обработан сервером.
  • 300: коды перенаправления возвращаются, когда запрошенный ресурс заменен новым.
  • 400: http-ошибки , возникающие на стороне клиента и указывающие на наличие проблемы с запросом.
  • 500: коды ошибок сервера, указывающие, что запрос был принят, но ошибка на сервере не позволила выполнить его.

Список кодов статуса HTTP

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

Код статуса 200

200: «Все в порядке ». Это код, который возвращается, когда веб-страница или ресурс действуют точно так, как ожидается.

Коды статуса 300

301: «Запрошенный ресурс был перемещен навсегда ». Этот код возвращается, когда веб-страница или ресурс заменяется другим ресурсом. Он используется для постоянного редиректа URL-адресов .

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

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

Коды статуса 400

http-ошибка 403: «Доступ к этому ресурсу запрещен ». Возвращается, когда пользователь пытается открыть ресурс, для которого у него нет прав доступа. Например, попытка просмотра неавторизованным пользователем контента, защищенного паролем, может привести к ошибке 403 .

404: «Запрошенный ресурс не найден ». Наиболее распространенное сообщение об ошибке. Означает, что запрошенный ресурс не существует и сервер не знает, существовал ли он когда-либо.

405: «Метод не разрешен ». Генерируется, когда хостинг-сервер (исходный сервер ) поддерживает полученный метод, но целевой ресурс отсутствует.

406: «Неприемлемый ответ ». Запрошенный ресурс способен генерировать только контент, неприемлемый в соответствии с заголовками Accept , отправленными в запросе.

408: «Время ожидания сервером поступления остальной части запроса из браузера истекло ». Генерируется, когда сервер прерывает обработку после истечения времени ожидания полного запроса от браузера. Другими словами, сервер не получил полный запрос, отправленный браузером. Одной из возможных причин может быть перегрузка сети, приводящая к потере пакетов между браузером и сервером.

410: «Запрошенный ресурс отсутствует и не будет возвращен ». Подобен коду 404 «Не найден », за исключением того, что код статуса 410 , указывает, что данный статус ожидается на постоянной основе.

429: это http-ошибка «Слишком много запросов ». Генерируется сервером, когда пользователь отправил слишком много запросов в заданный промежуток времени (ограничение по скорости ). Иногда причиной ошибки могут быть боты, пытающиеся получить доступ к сайту. В этом случае может потребоваться изменение URL-адреса входа в панель администрирования WordPress .

429 слишком много запросов

499: «Клиент закрыл запрос ». Возвращается NGINX , когда клиент закрывает запрос, пока NGINX все еще обрабатывает его.

Коды статуса500

500: «На сервере возникла ошибка, и запрос не мог быть завершен ». Общий http-код , который также называют «внутренняя ошибка сервера ». На сервере что-то пошло не так и запрошенный ресурс не был доставлен. Этот код генерируется сторонними плагинами, при сбоях PHP-кода или подключения к базе данных.


Ошибка при установлении соединения с базой данных

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

502: это http-ошибка «Некорректный шлюз ». Означает, что один сервер получил неверный ответ от другого. Иногда запрос занимает слишком много времени, и поэтому отменяется или удаляется сервером, а соединение с базой данных прерывается.

503: это http-ошибка «В данный момент сервер не может обработать запрос ». Запрос не может быть обработан прямо сейчас. Этот код возвращается перегруженным сервером, который не может обрабатывать новые запросы.

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

Более подробная информация о кодах статуса HTTP

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

  • Полный список кодов статуса HTTP — Википедия;
  • Определения кодов статуса Internet Engineering Task Force (IETF) ;
  • RFC 7231.

Перевод статьи «A Complete Guide and List of HTTP Status Codes» был подготовлен дружной командой проекта

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, которая запрашивается не поддерживается.

-сервера (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 -сервера или общего числа процессов на аккаунт.



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows