HTTP протокол — что это такое. Коды состояния HTTP и что они значат для SEO (перевод)

Код состояния 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, где и был введен.

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

HTTP коды 1хх – информационные коды. HTTP коды 2хх – успешные коды. HTTP код 3хх – коды перенаправления. HTTP код 4хх – коды ошибок клиента. HTTP код 5хх – коды ошибок сервера.

Если вы хотите узнать , обратитесь к .Код состояния – это элемент ответа , который представляет собой три цифры, первая цифра показывает к какому классу состояния относится тот или иной . В HTTP насчитывают всего пять классов кодов состояний : 1хх, 2хх, 3хх, 4хх, 5хх. HTTP коды состояний расширяемы, любой разработчик сервера может добавлять свои коды. Каждый код состояния очень тесно связан с : если метод – это элемент , то код состояния это сервера, который означает то, как сервер понял запрос.

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

Номер HTTP код состояния и его описание
1 HTTP коды состояний 1xx: Такой код состояния сервер высылает в том случае, когда запрос получен, но еще не обработан.
2 HTTP коды состояний 2 xx :
Сервер отправит вам такой код в том случае, когда он успешно принял и обработал клиента.
3 HTTP коды состояний 3 xx :
Если вы получили от сервера код состояния, начинающийся на тройку, то это означает, что нужны дополнительные действия, чтобы завершить процесс обработки HTTP запроса.
4 HTTP коды состояний 4 xx :

REST API использует строку состояния в HTTP ответе, чтобы информировать Клиентов о результате запроса.

HTTP определяет 40 стандартных кодов состояния, которые делятся на пять категорий. Ниже выделены только те коды состояния, которые используются в REST API.

Коды состояний в REST

200 (OK)

Запрос выполнен успешно. Информация, возвращаемая с ответом зависит от метода, используемого в запросе, например при:

  • GET Получен объект, соответствующий запрошенному ресурсу.
  • HEAD Получены поля заголовков, соответствующие запрошенному ресурсу, тело ответа пустое.
  • POST Запрошенное действие выполнено.

201 (Created - Создано)

REST API отвечает кодом состояния 201 при каждом создании ресурса в коллекции. Также могут быть случаи, когда новый ресурс создается в результате какого-либо действия контроллера, и в этом случае 201 также будет подходящем ответом.

Сервер должен создать ресурс перед тем как вернуть 201 статус. Если это невозможно сделать сразу, тогда сервер должен ответить кодом 202 (Accepted).

202 (Accepted - Принято)

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

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

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

204 (No Content - Нет контента)

Код состояния 204 обычно отправляется в ответ на запрос PUT, POST или DELETE, когда REST API отказывается отправлять обратно любое сообщение о состоянии проделанной работы.

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

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

301 (Moved Permanently - Перемещено навсегда)

Код перенаправления. Указывает, что модель ресурсов REST API была сильно изменена и теперь имеет новый URL. Rest API должен указать новый URI в заголовке ответа Location , и все будущие запросы должны быть направлены на указанный URI.

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

302 (Found - Найдено)

Является распространенным способом выполнить перенаправление на другой URL. HTTP-ответ с этим кодом должен дополнительно предоставит URL-адрес куда перенаправлять в поле заголовка Location. Агенту пользователя (например, браузеру) предлагается в ответе с этим кодом сделать второй запрос на новый URL.

Многие браузеры реализовали этот код таким образом, что нарушили стандарт. Они начали изменять Тип исходного запроса, например с POST на GET. Коды состояния 303 и 307 были добавлены для серверов, которые хотят однозначно определить, какая реакция ожидается от клиента.

Ответ 303 указывает, что ресурс контроллера завершил свою работу, но вместо отправки нежелательного тела ответа он отправляет клиенту URI ресурса. Это может быть URI временного сообщения о состоянии ресурса или URI для уже существующего постоянного ресурса.

Код состояния 303 позволяет REST API указать ссылку на ресурс, не заставляя клиента загружать ответ. Вместо этого клиент может отправить GET запрос на URL указанный в заголовке Location .

Ответ 303 не должен кэшироваться, но ответ на второй (перенаправленный) запрос может быть кэшируемым.

304 (Not Modified - Не изменен)

Этот код состояния похож на 204 (Нет контента), так как тело ответа должно быть пустым. Ключевое различие состоит в том, что 204 используется, когда нет ничего для отправки в теле, тогда как 304 используется, когда ресурс не был изменен с версии, указанной заголовками запроса If-Modified-Since или If-None-Match .

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

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

307 (Temporary Redirect - Временный редирект)

Ответ 307 указывает, что rest API не будет обрабатывать запрос клиента. Вместо этого клиент должен повторно отправить запрос на URL, указанный в заголовке Location . Однако в будущих запросах клиент по-прежнему должен использоваться исходный URL.

Rest API может использовать этот код состояния для назначения временного URL запрашиваемому ресурсу.

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

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

Это общий статус ошибки на стороне Клиента. Используется, когда никакой другой код ошибки 4xx не уместен. Ошибки могут быть как неправильный синтаксис запроса, неверные параметры запроса, запросы вводящие в заблуждение или маршрутизатор и т.д.

Клиент не должен повторять точно такой же запрос.

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

401 сообщение об ошибке указывает, что клиент пытается работать с закрытым ресурсом без предоставления данных авторизации. Возможно, он предоставил неправильные учетные данные или вообще ничего. Ответ должен включать поле заголовка WWW-Authenticate , содержащего описание проблемы.

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

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

Ошибка 403 указывает, что rest API отказывается выполнять запрос клиента, т.е. Клиент не имеет необходимых разрешений для доступа. Ответ 403 не является случаем, когда нужна авторизация (для ошибки авторизации используется код 401).

Попытка аутентификация не поможет, и повторные запросы не имеют смысла.

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

Указывает, что rest API не может сопоставить URL клиента с ресурсом, но этот URL может быть доступен в будущем. Последующие запросы клиента допустимы.

404 не указывает, является ли состояние временным или постоянным. Для указания постоянного состояния используется код 410 (Gone - Пропал) . 410 использоваться, если сервер знает, что старый ресурс постоянно недоступен и более не имеет адреса.

405 (Method Not Allowed - Метод не разрешен)

API выдает ошибку 405, когда клиент пытался использовать HTTP метод, который недопустим для ресурса. Например, указан метод PUT, но такого метода у ресурса нет.

Ответ 405 должен включать Заголовок Allow , в котором перечислены поддерживаемые HTTP методы, например, Allow: GET, POST .

406 (Not Acceptable - Неприемлемый)

API не может генерировать предпочитаемые клиентом типы данных, которые указаны в заголовке запроса Accept . Например, запрос клиента на данные в формате application/xml получит ответ 406, если API умеет отдавать данные только в формате application/json .

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

412 (Precondition Failed - Предусловие провалено)

Когда клиент указывает rest API выполнять запрос только при выполнении определенных условий, а API не может выполнить запрос при таких условиях, то возвращается ответ 412.

415 (Unsupported Media Type - Неподдерживаемый медиа тип)

Сообщение об ошибке 415 указывает, что API не может обработать предоставленный клиентом Тип медиа, как указано в заголовке запроса Content-Type .

Например, запрос клиента содержит данные в формате application/xml , а API готов обработать только application/json . В этом случае клиент получит ответ 415.

Например, клиент загружает изображение как image/svg+xml , но сервер требует, чтобы изображения использовали другой формат.

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

500 - это общий ответ при ошибке в коде rest API. Большинство веб-платформ автоматически отвечают этим кодом состояния, когда при выполнении кода обработчика запроса возникла ошибка.

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

Ответ API 500 - это общий ответ об ошибки на сервере, когда не подходит никакой другой код ошибки.

501 (Not Implemented - Не реализован)

Сервер не распознает метод запроса и не имеет возможности исполнить просьбу клиента. Обычно это подразумевает будущую доступность (например, новая функция API веб-сервиса).

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

Некоторые типичные коды статуса HTTP:

  • 200 – сервер успешно обработал страницу;
  • 404 – запрашиваемая страница не существует;
  • 503 – информация временно недоступно

Коды http – 1xx (временный)

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

Коды http – 2xx (Успешно)

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

Код Описание

200 (Успешно)

Сервер успешно обработал запрос. Как правило, это означает, что сервер предоставил необходимую страницу. Если это состояние относится к файлу robots.txt, это означает, что робот нашел его успешно.

201 (Создан)

Запрос прошел удачно и сервер создал новый ресурс.

202 (Принято)

Сервер принял запрос, но еще его не обработал.

203 (Ненадежная информация)

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

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

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

205 (Восстанавливать значение)

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

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

Сервер успешно обработал частичный GET запрос.

Коды http – 3xx (Перенаправлено)

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

Код Описание

300 (Много вариантов)

Сервер может выполнять многие действия в ответ на эти запросы. Сервер может выбрать действие, в зависимости от запроса (user agent) или заданный список позволяет ему выбрать действия.

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

302 (Временно перемещено)

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

303 (Проверить другое место)

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

304 (Не изменен)

Запрашиваемая страница не была изменена с момента последнего запроса. Отправив этот ответ, сервер не возвращает тело страницы.

Необходимо настроить сервер на возвращение этого ответа (HTTP If-Modified-Since), если страница не изменилась с того времени, когда её последний раз запрашивал тот же агент. Это снижает нагрузку на пропускную способность и сервер.

305 (Использовать прокси-сервер)

Запрашивающий может получить доступ к странице, только через прокси-сервер. Вернув этот ответ, сервер также указывает прокси-сервер, который следует использовать.

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

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

Коды http – 4xx (Ошибка запроса)

Следующие коды состояния указывают на вероятную ошибку в запросе, которая не позволяет серверу обработать этот запрос.

Код Описание

400 (Неверный запрос)

Сервер не распознает синтаксис запроса.

Запрос требует идентификации пользователя. Сервер может возвращать этот ответ, если доступ к странице требует авторизации пользователя.

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

Сервер отклоняет запрос. Если поисковый робот получает этот код состояния HTTP при попытке индексации правильных страниц сайта (см. Ошибки индексирования на вкладке Сканирование в Инструментах Google для веб-мастеров), вероятно, сервер или хост блокирует доступ роботу googlebot возможность.

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

Если на сайте нет файла robots.txt и это состояние отображается на странице запрещенных URL в Инструментах Google для веб-мастеров, то это правильный статус. Однако, если на сайте есть файл robots.txt и, несмотря на это, отображается этот статус, файл robots.txt может иметь неверное имя или находиться в неправильном месте. (Файл должен находиться в корневом каталоге домена и носить имя robots.txt).

Метод, указанный в запросе, не допускается.

406 (Не допускается)

Запрошенную страницу невозможно вернуть с требуемой характеристикой содержания.

407 (Требуется аутентификация на прокси-сервере)

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

408 (Тайм-аут запроса)

Тайм-аут ожидания ответа от сервера.

409 (Конфликт)

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

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

411 (Обязательно указать длину)

Сервер не принимает запросы без правильного значения поля Content-Length (Содержание-Длина) в заголовке.

412 (Не соблюдены условия)

Сервер не соответствует одному из условий, размещенных в запросе.

413 (Слишком большой запрос)

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

Запрашиваемый URI (как правило, URL-адрес) слишком большой и сервер не может его обработать.

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

Запрос имеет не поддерживаемый формат.

416 (Не найден нужный диапазон)

Сервер возвращает этот код состояния, когда запрос касается диапазона, отсутствующего на сайте.

417 (Отказ ожидания)

Сервер не может выполнить требования, содержащиеся в поле Expect (Ждите), заголовка запроса.

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

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

Код Описание

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

Сервер столкнулся с ошибкой и не может обработать запрос.

501 (Функция не реализована)

Сервер не имеет функции, обеспечивающей исполнение запроса.

502 (Недопустимый шлюз)

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

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

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

504 (Тайм-аут шлюза)

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

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



Понравилась статья? Поделиться с друзьями: