Что означает ошибка http 429 и как ее исправить

Содержание:

Отладка на распространённых платформах

Если вы используете на сервере распространённые пакеты программ, которые выдают ошибку 400 Bad Request, изучите стабильность и функциональность этих платформ. Наиболее распространённые системы управления контентом, такие как WordPress, Joomla! и Drupal, хорошо протестированы в своих базовых версиях. Но как только вы начинаете изменять используемые ими расширения PHP, очень легко спровоцировать непредвиденные проблемы, которые выльются в ошибку 400 Bad Request.

Откатите последние изменения

Если вы обновили систему управления контентом непосредственно перед появлением ошибки 400 Bad Request, рассмотрите возможность отката к предыдущей версии, которая была установлена, как самый быстрый и простой способ убрать ошибку 400 bad request.

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

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

Удалите новые расширения, модули или плагины

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

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

Проверьте непреднамеренные изменения в базе данных

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

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

Я лично сталкивался с такими случаями несколько раз. Поэтому лучшим путём будет открыть базу данных и вручную просмотреть таблицы и записи, которые могли быть изменены расширением.

Примеры кодов статусов и ошибок

Ниже приведены несколько вариантов разделов с кодами статусов и ошибок.

Context.io

Коды ошибок и статусы Conext.io

Clearbit не только документирует стандартные коды состояния, но также описывает уникальные параметры, возвращаемые их API. Большинство разработчиков, вероятно, знакомы с кодами 200, 400 и 500, поэтому эти коды не требуют много пояснений. Но если API имеет уникальные коды, описывать их нужно адекватно и подробно.

Коды ошибок и статусы Twitter

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

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

Mailchimp

Коды ошибок и статусы Mailchimp

Mailchimp предоставляет удобочитаемые и понятные описания сообщений об ошибке. Например, в ошибке вместо того, чтобы просто написать «Запрещено», Mailchimp объясняет причины, по которым можно получить ошибку запрещенного кода. У Mailchimp существует несколько типов ошибок 403. Запрос может быть запрещен из-за отключенной учетной записи пользователя или запроса, направленного не в тот центр обработки данных. В случае ошибки «WrongDataCenter» Mailchimp отмечает, что «она часто связана с неправильно настроенными библиотеками» и ссылается на дополнительную информацию о центрах обработки данных. Такой тип документации кода ошибки очень полезен для пользователей.

Flickr

Коды ошибок и статусы Flikr

В Flickr раздел «Коды ответов» встроен в описание каждой адресной темы API. Описания ошибок выглядят короткими. Хотя встраивание кодов ответов в каждую тему делает коды ошибок более заметными, в некоторых случаях такой подход менее полезен. Поскольку он встроен в каждую тему API, описания кодов ошибок должны быть краткими, иначе их содержимое будет перегружено информацией о запросе конечной точки.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как проверить код ответа сервера

Посмотреть код ответа на странице можно бесплатно за пару кликов. В браузере информация находится на панели разработчика: в Google Chrome для вызовите панель горячей клавишей F12, откройте вкладку Network и обновите страницу.

Результаты просмотра кода в браузере

Для просмотра кода есть браузерные расширения:
HTTP Headers для Google Chrome, HTTP Header для Opera.

Инструмент в Яндекс.Вебмастере покажет код статуса HTTP.

Результаты проверки инструментом

Инструмент
проверки заголовков сервера от PR-CY определит HTTP статусы сайта и доменного имени.

Результаты проверки инструментом

3xx: Redirection — Редирект ( перенаправление )

Коды данной категории, сообщают клиенту, что для завершения запроса, ему необходимо выполнить дополнительный запрос, как правило по другому URI, соответствующий адрес указывается в строке Location, ответа сервера. Программа — клиент может совершать дополнительные запросы без участия пользователя, при условии что дополнительный запрос делается методами GET или HEAD.

Некоторые клиенты некорректно работают с редиректами 301 и 302, применяя в запросе ко второму ресурсу метод GET, несмотря на то, что первый запрос был сделан с использованием другого метода. В протоколе HTTP версии 1.1, вместо ответа статуса 302, были введены дополнительные коды ответов, 303 и 307. Изменять метод, необходимо только в случает ответа сервера со статусом 303, в остальных случаях использовать исходный метод.

300 Multiple Choices — Несколько вариантов выбора.

По запрошенному URI, существует несколько вариантов ресурса, различных по MIME типу. языку или другим признакам. В ответе сервера, передается список альтернатив, выбираемый клиентским приложением автоматически или самим пользователем. Появился в протоколе версии HTTP/1.0.

301 Moved Permanently — Перемещёно окончательно.

Запрошенный ресурс был окончательно перемещен на URI, указанный в строке заголовка Location, ответа сервера. Некоторые клиенты, при обработке данного кода, ведут себя некорректно, см. выше. Появился в протоколе версии HTTP/1.0.

302 Found — Найдено ( Moved Temporarily )

Данный код статуса сообщает клиенту, что ресурс временно доступен по другому URI, указанному в строке заголовка Location, заголовка ответа сервера. Данный код используется например, при согласовании содержимого ( Content Negotiation ), выполняемого сервером. Появился в протоколе версии HTTP/1.0.

303 See Other — Смотреть другое.

Документ из запрошенного URI, нужно запросить по адресу, указанному в строке заголовка Location, заголовка ответа сервера, используя метод GET, невзирая на то, каким методом был сделан первый запрос. Появился в протоколе версии HTTP/1.1.

304 Not Modified — Не изменялось.

Данный код выдается в случае запроса документа, методом GET, с использованием заголовков If-Modified-Since или If-None-Match, и документ не был изменен с указанного момента времени. Появился в протоколе версии HTTP/1.0.

305 Use Proxy — Использовать прокси сервер.

Запрос к ресурсу, должен выполняться через прокси-сервер., адрес которого, указан в строке заголовка Location, заголовка ответа сервера. Появился в протоколе версии HTTP/1.1.

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

Запрошенный ресурс временно доступен по URI, указанному в строке заголовка Location, заголовка ответа сервера. Появился в протоколе версии HTTP/1.1.

2xx: Successful

Message Description
200 OK The request is OK.
201 Created The request is complete, and a new resource is created .
202 Accepted The request is accepted for processing, but the processing is not complete.
203 Non-authoritative Information The information in the entity header is from a local or third-party copy, not from the original server.
204 No Content A status code and a header are given in the response, but there is no entity-body in the reply.
205 Reset Content The browser should clear the form used for this transaction for additional input.
206 Partial Content The server is returning partial data of the size requested. Used in response to a request specifying a Range header. The server must specify the range included in the response with the Content-Range header.

Значения кодов ответов сервера

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

Принадлежность кода к группе определяется по первой цифре:

  • 1— — информационный код, отвечающий за передачу данных.
    Такие коды временны и показывают, что запрос принят и обрабатывается.
  • 2— — код успешной обработки запроса.
    Сервис получил и обработал запрос.
  • 3— — код редиректа.
    Сервер сигнализирует, что для выполнения запроса нужно предпринять дополнительные действия, к примеру, перейти на другой адрес.
  • 4— — клиентская ошибка.
    Ошибка на стороне клиента. Возможно, пользователь что-то сделал неправильно, и поэтому запрос не может быть успешно обработан.
  • 5— — серверная ошибка.
    По какой-то внутренней причине сервер не может выполнить пользовательский запрос.

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

Кратко о том, что такое код ответа сервера

Перейти к этому разделу на Youtube

Код ответа сервера (или код состояния HTTP) — это первые три цифры и фраза на английском языке, которые дают понять пользователю (браузеру), краулеру и поисковому роботу, как сайт отреагировал на запрос к определённой странице или документу. Например, код ответа страницы 200 OK говорит сам за себя: «Всё ОК, ты обратился по нужному адресу».

Все коды ответов разделены на 5 классов, и отличает их первая цифра:

  • 1хх — информационный класс, который необходим клиенту при работе с передачей или обработкой данных. Большинство из них служебные и редко встречаются в повседневной работе.
  • 2хх — HTTP код, который говорит об успешной обработке запроса сервером.
  • 3хх — трёхсотый код свидетельствует о перенаправлении запроса с одного адреса на другой. Кстати, новички в SEO больше всего переживают как раз насчёт того, какой именно редирект поставить. Так что мы ещё вернёмся к этому вопросу.
  • 4хх — статус код, который говорит об ошибке на стороне пользователя. Причина ошибки объясняется фразой после трёх цифр кода.
  • 5хх — тоже код ошибки, но в этом случае она произошла на стороне сервера. Причины варьируются, но, как и с кодами четвёртого класса, причина всегда описана после номера кода: иногда она говорит о высокой нагрузке, иногда о внутренних ошибках на сервере.

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.

От сервера пришёл ответ с кодом ххх — что это значит?

Перейти к этому разделу на Youtube

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

200 ОК

Ответ, который говорит об успешно обработанном запросе: сервер дал ответ → страница найдена → информация передана клиенту.

301 Moved Permanently

Запрашиваемый документ перемещён на другой URL-адрес навсегда.

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

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

302 Found

Уведомляет клиента, что страница найдена и временно расположена по другому адресу. Поисковые системы обычно не удаляют её из индекса. Ранее этот код ответа использовался во время доработок на сайте или случаев, когда товара временно нет в наличии, но страница приносит трафик, поэтому есть смысл перенаправить пользователей на страницу каталога или похожего товара. Но с появлением HTTP 1.1 на замену ему пришли 303 и 307 коды ответа.

303 See Other

Перейти к этому разделу на Youtube

Лучше всего использовать этот код ответа, когда хочешь временно направить пользователя на немного другую страницу, которая сможет ему помочь, но не удовлетворит на 100% его поисковый запрос. Доступен запрос только методом GET, что даёт вам доступ только запрашивать информацию, но не обновлять или добавлять данные ресурса.

304 Not Modified

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

Все мы слышали про краулинговый бюджет. Так вот 304 код ответа является отличным способом помочь ботам поисковых систем не тратить время на страницы, которые не изменились с их последнего визита, а сосредоточиться на сканировании новых. Реализовывается это в связке с HTTP-заголовком If-Modified-Since.

Хочу заметить, что актуальность такого кода ответа для маленьких сайтов маленькая, но если ты будешь работать с большими сайтами, то это очень полезная фича 😉

307 Temporary Redirect

Советую использовать этот код в случае, если нужно временно перенаправить пользователя и одновременно оставить возможность отправлять запрос методом POST, так как это особенность 307 кода, которая позволяет передевать информацию на сервер. Это основное отличие между 303 и 307 редиректами.

Перейдём к кодам, которые отвечают за ошибки на стороне клиента.

401 Unauthorized

Перейти к этому разделу на Youtube

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

403 Forbidden

Доступ запрещён. Сервер получил запрос, но отказывается его выполнить из-за ограничений доступа (например, когда пользователь хочет посмотреть системные файлы или другие документы, к которым у него нет доступа).

410 Gone

Перейти к этому разделу на Youtube

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

429 Too Many Requests

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

Уважай сервер, он почти как Google — у него очень много спрашивают, а он один.

Ну и завершим всё ошибками на стороне сервера, которые чаще всего встречаются.

500 Internal Server Error

Перейти к этому разделу на Youtube

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

503 Service Unavailable

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

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

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

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

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

301 redirect vs 302

Figure: HTTP 302 — Author: Seobility — License: CC BY-SA 4.0

The difference between using a 301 or 302 response is whether or not the page being requested has moved permanently or temporarily. The HTTP 302 response is intended for temporary redirections. If content is moved permanently, a 301 response should be used instead.

When to use 301 redirects

HTTP 301 redirects are intended to be used when a page or resource has been moved permanently. Using a 301 status code enables search engine crawlers and client browser caches to update indexed URLs. Once a 301 redirect has been accessed, the URL of the original request will be replaced with the redirected URL. This enables sites to preserve search result rankings for the same page when it is moved to a different location.

When to use 302 redirects

Since HTTP 302 redirects are intended to be used for temporary redirects, possible applications include promotional sales pages or A/B tests. Another example would be technical errors or site maintenance.

In these cases, a temporary redirect could be put in place to graciously handle access requests while preventing users from accessing the page. Search engines and browser caches will not forget the original URL and will attempt to access it again on subsequent visits.

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.

Информационный ответ 1xx

Информационный ответ означает, что запрос был получен и понят. Он выдается на временной основе, пока продолжается обработка запроса. Он предупреждает клиента, чтобы он дождался окончательного ответа. Сообщение состоит только из строки состояния и необязательных полей заголовка и заканчивается пустой строкой. Поскольку в стандарте HTTP / 1.0 не определены коды состояния 1xx, серверы не должны отправлять ответ 1xx клиенту, совместимому с HTTP / 1.0, за исключением экспериментальных условий.

100 Продолжить
Сервер получил заголовки запроса, и клиент должен перейти к отправке тела запроса (в случае запроса, для которого необходимо отправить тело; например, запрос POST ). Отправка большого тела запроса на сервер после того, как запрос был отклонен из-за несоответствующих заголовков, будет неэффективен. Чтобы сервер проверил заголовки запроса, клиент должен отправить в качестве заголовка в своем первоначальном запросе и получить код состояния в ответ перед отправкой тела. Если клиент получает код ошибки, такой как 403 (Запрещено) или 405 (Метод запрещен), он не должен отправлять тело запроса. В ответе указано, что запрос следует повторить без заголовка, поскольку он указывает на то, что сервер не поддерживает ожидания (например, в случае серверов HTTP / 1.0).
101 протокол переключения
Запрашивающая сторона попросила сервер переключить протоколы, и сервер дал согласие на это.
102 Обработка ( WebDAV ; RFC 2518)
Запрос WebDAV может содержать множество подзапросов, связанных с файловыми операциями, для выполнения которых требуется много времени. Этот код указывает, что сервер получил и обрабатывает запрос, но ответа пока нет. Это предотвращает тайм-аут клиента и предположение, что запрос был потерян.
103 Ранние подсказки (RFC 8297)
Используется для возврата некоторых заголовков ответа перед окончательным HTTP-сообщением.

In summary: HTTP 302 FAQs

What does the HTTP 302 status code mean?

The HTTP 302 status stands for “Found” and means that a resource has been temporarily relocated to another URL.

How do you implement 302 redirects?

You can implement 302 redirects using the .htaccess file, PHP, or your content management system.

What is the difference between 301 and 302 redirects?

301 redirects mean that a file has been moved permanently, while 302 redirects are used for temporary redirects.

Why is the 302 status code important for SEO?

The 302 status code is relevant for SEO because if you change a file’s location without a redirect, your page might show a 404 error. Resources that return that kind of error will be removed from search results.

5, Server Error Responses

And finally, the 500 – 599 HTTP status codes, informs the log of problems with the server. Servers are supposed to coordinate with each other, but these Hypertext Transfer Protocol (HTTP) Response Code mean that there might be a problem in how these servers worked together. 502: Bad Gateway simple means that one server received an invalid response from another server. The gravity of this situation may vary, though. But then again, HTTP response codes in the 500 group may need some attention.

500 Internal Server Error

This HTTP status code is a generic error message that indicates a condition was encountered unexpectedly and no more specific details are available. One of the most common causes for this error is a server misconfiguration.

501 Not Implemented

The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability.

502 Bad Gateway

The server was acting as a gateway or proxy and received an invalid response from the upstream server.

503 Service Unavailable

This error code refers to the server that was acting as a gateway or proxy and has received an invalid response from the upstream server.

504 Gateway Timeout

The server was acting as a gateway or proxy and did not receive a timely response from the upstream server.

505 HTTP Version Not Supported

This status code indicates that the server does not support the HTTP protocol version used in the request.

506 Variant Also Negotiates

This server error means that the negotiation for the server’s request results in circular references.

507 Insufficient Storage (WebDAV)

The server is unable to store the representation needed to complete the request.

508 Loop Detected (WebDAV)

The server terminated an operation because it encountered an infinite loop while processing a request with «Depth: infinity». This status indicates that the entire operation failed.

510 Not Extended

The policy for accessing the resource has not been met in the request. The server should send back all the information necessary for the client to issue an extended request.

511 Network Authentication Required

The client needs to authenticate to gain network access. Intended for use by intercepting proxies used to control access to the network (e.g., «captive portals» used to require agreement to Terms of Service before granting full Internet access via a Wi-Fi hotspot).

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.

5xx ошибки сервера

Сервер не смог выполнить запрос.

Коды состояния ответа, начинающиеся с цифры «5», указывают на случаи, когда сервер знает, что он обнаружил ошибку или иным образом не может выполнить запрос. За исключением ответа на запрос HEAD, сервер должен включать объект, содержащий объяснение ситуации с ошибкой, и указывать, является ли это временным или постоянным состоянием. Аналогичным образом, пользовательские агенты должны отображать пользователю любую включенную сущность. Эти коды ответов применимы к любому методу запроса.

внутренняя ошибка сервера 500
Общее сообщение об ошибке, которое выдается, когда возникла непредвиденная ситуация, и более конкретное сообщение не подходит.
501 Не реализовано
Сервер либо не распознает метод запроса, либо не может выполнить запрос. Обычно это подразумевает доступность в будущем (например, новую функцию API веб-службы).
502 Неверный шлюз
Сервер действовал как шлюз или прокси и получил недопустимый ответ от вышестоящего сервера.
сервис 503 недоступен
Сервер не может обработать запрос (потому что он перегружен или отключен для обслуживания). Как правило, это временное состояние.
Ошибка 504 Время ответа сервера истекло
Сервер действовал как шлюз или прокси и не получил своевременного ответа от вышестоящего сервера.
505 Версия HTTP не поддерживается
Сервер не поддерживает версию протокола HTTP, используемую в запросе.
506 вариант также согласовывается (RFC 2295)
Прозрачное согласование содержимого для запроса приводит к циклической ссылке .
507 Недостаточно места для хранения (WebDAV; RFC 4918)
Сервер не может сохранить представление, необходимое для выполнения запроса.
Обнаружен цикл 508 (WebDAV; RFC 5842)
Сервер обнаружил бесконечный цикл при обработке запроса (отправлено вместо ).
510 не расширенный (RFC 2774)
Для его выполнения сервером требуются дальнейшие расширения запроса.
511 Требуется сетевая аутентификация (RFC 6585)
Клиенту необходимо пройти аутентификацию, чтобы получить доступ к сети. Предназначен для использования путем перехвата прокси-серверов, используемых для управления доступом к сети (например, «перехватывающие порталы », используемые для запроса согласия с Условиями обслуживания перед предоставлением полного доступа в Интернет через точку доступа Wi-Fi ).

Ошибка 401 Unauthorized

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

Например, ошибка 401 Unauthorized может возникнуть, если пользователь пытается получить доступ к ресурсу, который защищен HTTP-авторизацией (как в этом руководстве по Nginx). В подобной ситуации ошибка 401 будет появляться снова и снова до тех пор, пока пользователь не предоставит корректный логин и пароль (который внесен в файл .htpasswd).

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

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

Adblock
detector