Как работать с ошибками бизнес-логики через http

Содержание:

Где перечислять HTTP-ответ и коды ошибок

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

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

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

3xx: Redirection

Message Description
300 Multiple Choices A link list. The user can select a link and go to that location. Maximum five addresses  .
301 Moved Permanently The requested page has moved to a new url .
302 Found The requested page has moved temporarily to a new url .
303 See Other The requested page can be found under a different url .
304 Not Modified This is the response code to an If-Modified-Since or If-None-Match header, where the URL has not been modified since the specified date.
305 Use Proxy The requested URL must be accessed through the proxy mentioned in the Location header.
306 Unused This code was used in a previous version. It is no longer used, but the code is reserved.
307 Temporary Redirect The requested page has moved temporarily to a new url.

5xx: Server Error

Message Description
500 Internal Server Error The request was not completed. The server met an unexpected condition.
501 Not Implemented The request was not completed. The server did not support the functionality required.
502 Bad Gateway The request was not completed. The server received an invalid response from the upstream server.
503 Service Unavailable The request was not completed. The server is temporarily overloading or down.
504 Gateway Timeout The gateway has timed out.
505 HTTP Version Not Supported The server does not support the «http protocol» version.

Previous Page
Print Page

Next Page  

2, Successful Responses

HTTP error codes under this family show success in different forms. HTTP response codes 200 – 299 are bearers of good news: the request has been accepted, a new request has been created, or a certain problem was solved. As HTTP status codes in the earlier group act as signposts, HTTP status codes in the 200 group act as go signals for specific actions to continue, because needed requests have been made possible. 202: Accepted means that the client received the request. The HTTP response code 202 does not necessarily mean that the request is made, but what is important is that it is being handled. Part of these HTTP status codes is 206: Partial Content. This means that the request is met partially, but met, nonetheless.

200 OK

This status code indicates that the request has been successful. The meaning of success in on the specific HTTP method:

  • GET: the resource was fetched and is being transmitted
  • HEAD: The entity-headers are in the message body
  • PUT or POST: The resource describing the result of the action is transmitted in the message body
  • TRACE: the message body contains the request message as received

201 Created

This indicates that the waste has succeeded and that a new resource has been created as a result. This is typically a response that is sent after POST requests, or some PUT requests.

202 Accepted

The request has been accepted for processing, but the processing has not been completed. The request may be eventually acted upon and may be disallowed when processing occurs. This is intended for cases where another process or server handles the requests, or for batch processing.

203 Non-Authoritative Information

This status code really means that the returned metainformation is not entirely the same as the information available from the origin server, but it is collected from a local or third-party copy. This is mostly useful for backups of another resource.

204 No Content

This status code shows where there is no content sent for a specific request, although the headers may be useful. The user agent may update its cached headers for this resource with new ones.

205 Reset Content

This status code tells the user agent to reset the document which sent the request.

206 Partial Content

This response code is used when the Range header is sent from the client to request only part of a resource.

207 Multi-Status (WebDAV)

This status code provides information for multiple independent operations. The message of the is default an XML message and it can provide various response codes, depending on how many sub-requests were made.

208 Already Reported (WebDAV)

Used inside a <dav:propstat> response element to avoid repeatedly enumerating the internal members of multiple bindings to the same collection.

226 IM Used (HTTP Delta encoding)

The server has fulfilled a GET request for the resource, and the response is a representation of the result of one or more instance-manipulations applied to the current instance.

Что такое ошибка HTTP 429?

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

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

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

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

Если, например, с IP-адреса получено более 50 запросов в течение одной минуты, PayPal Sandbox заблокирует этот IP-адрес на следующие пять минут.

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

Если вы видите ошибку HTTP 429 на своем сайте по другим причинам, вам может потребоваться уменьшить количество запросов к серверу или вызовов API, которые вы делаете. Обсуждаемые ниже шаги являются общими исправлениями ошибки 429 Too Many Requests. Если у вас есть сайт WordPress, вам могут потребоваться специальные решения для WordPress.

👨‍💻 Практическое занятие: Коды статусов и ошибок

В своем найденном опен-сорс проекте найдем информацию о кодах статусов и ошибок. Ответим на следующие вопросы:

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

3хх Перенаправление

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

300 Multiple Choices

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

301 Moved Permanently

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

302 Found

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

303 See Other

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

304 Not Modified

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

305 Use Proxy

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

306 Switch Proxy

307 Temporary Redirect

Этот код возвращается, если ресурс на данный момент временно доступен по другому URL, который также предоставляется в ответе. Этот код немного отличается от кода 302 – он представляет собой более определенную версию кода 302.

Диагностика ошибки 400 Bad Request

Ошибка 400 Bad Request означает, что сервер (удалённый компьютер) не может обработать запрос, отправленный клиентом (браузером), вследствие проблемы, которая трактуется сервером как проблема на стороне клиента.

Существует множество сценариев, в которых ошибка 400 Bad Request может появляться в приложении. Ниже представлены некоторые наиболее вероятные случаи:

  • Клиент случайно (или намеренно) отправляет информацию, перехватываемую маршрутизатором ложных запросов. Некоторые веб-приложения ищут особые заголовки HTTP, чтобы обрабатывать запросы и удостовериться в том, что клиент не предпринимает ничего зловредного. Если ожидаемый заголовок HTTP не найден или неверен, то ошибка 400 Bad Request – возможный результат.
  • Клиент может загружать слишком большой файл. Большинство серверов или приложений имеют лимит на размер загружаемого файла, Это предотвращает засорение канала и других ресурсов сервера. Во многих случаях сервер выдаст ошибку 400 Bad Request, когда файл слишком большой и поэтому запрос не может быть выполнен.
  • Клиент запрашивает неверный URL. Если клиент посылает запрос к неверному URL (неверно составленному), это может привести к возникновению ошибки 400 Bad Request.
  • Клиент использует недействительные или устаревшие куки. Это возможно, так как локальные куки в браузере являются идентификатором сессии. Если токен конкретной сессии совпадает с токеном запроса от другого клиента, то сервер/приложение может интерпретировать это как злонамеренный акт и выдать код ошибки 400 Bad Request.

Коды ответов сервера

Номер Поясняющая фраза Перевод
1xx Informational Информационные ответы
100 Continue Продолжить
101 Switching Protocols Переключение протоколов
102 Processing Идёт обработка
103-199 Не назначены
2xx Success Успех
200 OK Хорошо
201 Created Создано
202 Accepted Принято
203 Non-Authoritative Information Информация не авторитетна
204 No Content Нет содержимого
205 Reset Content Сбросить содержимое
206 Partial Content Частичное содержимое
207 Multi-Status Многостатусный
208 Already Reported Уже сообщили
209-225 Не назначены
226 IM Used Использовано IM
227-299 Не назначены
3xx Redirection Перенаправление
300 Multiple Choices Множество выборов
301 Moved Permanently Перемещено навсегда
302 Found Найдено
303 See Other Смотреть другое
304 Not Modified Не изменялось
305 Use Proxy Использовать прокси
306 Не используется
307 Temporary Redirect Временное перенаправление
308 Permanent Redirect Постоянное перенаправление
309-399 Не назначены
4xx Client Error Ошибка клиента
400 Bad Request Плохой, неверный запрос
401 Unauthorized Неавторизован
402 Payment Required Необходима оплата
403 Forbidden Запрещено
404 Not Found Не найдено
405 Method Not Allowed Метод не поддерживается
406 Not Acceptable Неприемлемо
407 Proxy Authentication Required Необходима аутентификация прокси
408 Request Timeout Истекло время ожидания
409 Conflict Конфликт
410 Gone Удален
411 Length Required Необходима длина
412 Precondition Failed Условие ложно
413 Payload Too Large Большая нагрузка
414 URI Too Long URI слишком длинный
415 Unsupported Media Type Неподдерживаемый тип данных
416 Range Not Satisfiable Неприемлемый диапазон
417 Expectation Failed Ожидаемое неприемлемо
418-420 Не назначены
421 Misdirected Request Неверно адресованный запрос
422 Unprocessable Entity Необрабатываемый экземпляр
423 Locked Заблокировано
424 Failed Dependency Невыполненная зависимость
425 Не назначен
426 Upgrade Required Необходимо обновление
427 Не назначен
428 Precondition Required Необходимо предусловие
429 Too Many Requests Слишком много запросов
430 Не назначен
431 Request Header Fields Too Large Поля заголовка запроса слишком большие
432-450 Не назначены
451 Unavailable for Legal Reasons Недоступно по юридическим причинам
432-499 Не назначены
5xx Server Error Ошибка сервера
500 Internal Server Error Внутренняя ошибка сервера
501 Not Implemented Не реализовано
502 Bad Gateway Плохой, ошибочный шлюз
503 Service Unavailable Сервис недоступен
504 Gateway Timeout Шлюз не отвечает
505 HTTP Version Not Supported Версия HTTP не поддерживается
506 Variant Also Negotiates Вариант тоже проводит согласование
507 Insufficient Storage Переполнение хранилища
508 Loop Detected Обнаружена петля
509 Не назначен
510 Not Extended Не расширено
511 Network Authentication Required Требуется сетевая аутентификация
512-599 Не назначены
  • HTTP
  • Hypertext Transfer Protocol (HTTP) Status Code Registry
  • Список кодов состояния HTTP

31.08.2014

Виды ошибок

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

Список ошибок http (хх – любые цифры):

2хх — запрашиваемый запрос выполнен;3хх — запрашиваемый запрос отправлен пользователю, тоже считается положительным кодом;4хх — файл не был отправлен пользователю по причине ошибки. Этот код означает ошибку со стороны клиента;5хх — ошибка сервера.

Ниже мы разберем два последних кода ответа сервера. Это наиболее частые ошибки, а их устранение не требует много времени.

Исправление проблем на стороне клиента

Устранение ошибки 400 Bad Request (попробуйте позже) лучше начать с исправления на стороне клиента. Вот несколько советов, что следует попробовать в браузере или на устройстве, которые выдают ошибку.

Проверьте запрошенный URL

Наиболее частой причиной ошибки 400 Bad Request является банальный ввод некорректного URL. Доменные имена (например, internet-technologies.ru) нечувствительны к регистру, поэтому ссылка, написанная в смешанном регистре, такая как interNET-technologies.RU работает так же, как и нормальная версия в нижнем регистре internet-technologies.ru. Но части URL, которые расположены после доменного имени, чувствительными к регистру. Кроме случаев, когда приложение/сервер специально осуществляет предварительную обработку всех URL и переводит их в нижний регистр перед исполнением запроса.

Важно проверять URL на неподходящие специальные символы, которых в нем не должно быть. Если сервер получает некорректный URL, он выдаст ответ в виде ошибки 400 Bad Request

Очистите соответствующие куки

Одной из потенциальных причин возникновения ошибки 400 Bad Request являются некорректные или дублирующие локальные куки. Файлы куки в HTTP – это небольшие фрагменты данных, хранящиеся на локальном устройстве, которые используются сайтами и веб-приложениями для «запоминания» конкретного браузера или устройства. Большинство современных веб-приложений использует куки для хранения данных, специфичных для браузера или пользователя, идентифицируя клиента и позволяя делать следующие визиты быстрее и проще.

Но куки, хранящие информацию сессии о вашем аккаунте или устройстве, могут конфликтовать с другим токеном сессии от другого пользователя, выдавая кому-то из вас (или вам обоим) ошибку 400 Bad Request.

В большинстве случаев достаточно рассматривать только ваше приложение в отношении файлов куки, которые относятся к сайту или веб-приложению, выдающему ошибку 400 Bad Request.

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

Это можно сделать разными способами в зависимости от браузера, который вы используете:

  • Google Chrome;
  • Internet Explorer;
  • Microsoft Edge;
  • Mozilla Firefox;
  • Safari.

Загрузка файла меньшего размера

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

Выйдите и войдите

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

Также приложение может столкнуться с проблемой, связанной с вашей предыдущей сессией, являющейся лишь строкой, которую сервер посылает клиенту, чтобы идентифицировать клиента при будущих запросах. Как и в случае с другими данными, токен сессии (или строка сессии) хранится локально на вашем устройстве в файлах куки и передаётся клиентом на сервер при каждом запросе. Если сервер решает, что токен сессии некорректен или скомпрометирован, вы можете получить ошибку 400 Bad Request.

В большинстве веб-приложений выход повторный вход приводит к перегенерации локального токена сессии.

Как исправить ошибку HTTP 429

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

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

1 Дождитесь отправки другого запроса.

Самый простой способ исправить ошибку HTTP 429 – дождаться отправки другого запроса. Часто этот код состояния отправляется с заголовком «Retry-after», который указывает период времени ожидания перед отправкой другого запроса. Он может указывать всего несколько секунд или минут.

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

2 Реализуйте экспоненциальный откат.

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

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

3 Установите свой собственный предел дросселирования.

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

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

4 Свяжитесь с вашим хостинг-провайдером.

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

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

What does a 2xx Succesful status code mean?

A 2xx Succesful status code means that the request was successful and the browser has received the expected information. This is generally the one you want to see, as it means that the request was a success and has been received, understood and accepted it. As a website owner you should make sure that all pages and resources (images, videos, etc.) all return a 2xx status code. This means that browsers can reach it successfully and that your website visitors can see and use your website.

What does 200 OK mean?

The 200 OK status code means that the request was successful, but the meaning of success depends on the request method used:

  • GET: The requested resource has been fetched and transmitted to the message body.
  • HEAD: The header fields from the requested resource are sent in without the message body. 
  • POST or PUT: A description of the result of the action is transmitted to the message body.
  • TRACE: The request messages, as received by the server, will be included in the message body

When looking at things SEO-wise the 200 OK response code is the perfect status code for a functioning page, all the linked pages are working as they should. A 200 will mean that search engine crawlers can successfully crawl the page and it will be put into their search index.

What does 201 Created mean?

The 201 Created status code means that the request was successfully fulfilled and resulted in one or possibly multiple new resources being created.

What does 202 Accepted mean?

The 202 Accepted status code means that the request has been accepted for processing, but the processing has not been finished yet. The request may or may not be completed when the processing eventually takes place.

What does 203 Non-Authoritative Information mean?

The 203 Non-Authoritative Information status code means that the request was successful. However, the meta-information that has been received is different from the one on the origin server and has instead been collected from a 3rd party or local copy. When not used for backups or mirrors of another resource a 200 OK response is preferable.

What does 204 No Content mean?

The 204 No Content status code means that while the server has successfully fulfilled the request, there is no available content for this request. But the user agent might want to update its currently cached headers for this resource, for the new one. 

What does 206 Partial Content mean?

The 206 Partial Content response code is a response to a Range header sent from the client when requesting only a part of the resource.

What does 207 Multi-Status mean?

The 207 Multi-Status status code conveys information about multiple resources, in situation when multiple status codes are appropriate.

What does 208 Already Reported mean?

The 208 Already Reported status code is used inside the response element DAV: propstat, in order to avoid enumerating the internal members of multiple bindings to the same collection repeatedly.

Коды состояния и ошибок помогают в устранении неполадок

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

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

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

  • использование неправильных API ключей;
  • использование неверных API ключей;
  • параметры не соответствуют типам данных;
  • API выдает исключение;
  • нет данных для возврата ресурса;
  • превышен предел скорости;
  • параметры находятся за пределами приемлемых максимальной и минимальной границ;
  • обязательный параметр отсутствует в конечной точке.

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

Серверные ошибки

Коды серверных ошибок (5xx)

  • Код ошибки 500 Internal Server Error
    Сервер столкнулся с непредвиденным условием, которое не позволяет ему выполнить запрос.
  • Код ошибки 501 Not Implemented
    Сервер не поддерживает функциональность, необходимую для выполнения запроса.
  • Код ошибки 502 Bad Gateway
    Сервер, действуя в качестве шлюза или прокси-сервера, получил недопустимый ответ от вышестоящего сервера к которому он обратился для выполнения запроса.
  • Код ошибки 503 Service Unavailable
    Сервер в настоящее время не в состоянии обработать запрос из-за временной перегрузки или техобслуживания.
  • Код ошибки 504 Gateway Timeout
    Сервер, действуя в качестве шлюза или прокси-сервера, не получил своевременного ответа от вышестоящего сервера, указанного в URI (например, HTTP, FTP, LDAP) или какого-либо другого вспомогательного сервера (например, DNS), который был необходим для выполнения запроса.
  • Код ошибки 505 HTTP Version Not Supported
    Сервер не поддерживает или отказывается поддерживать версию протокола HTTP, который был использован в сообщении запроса.

DNS ошибки

  • Код ошибки Unknown Host
    DNS-сервер не может понять имя хоста, указанное в запросе.
  • Код ошибки Private Network Address
    Имя хоста ведет к частному сетевому адресу (private network address).

TCP ошибки

Код ошибки TCP Connection Failed
DNS обработаны успешно, но не удалось установить TCP соединение с обработанным адресом. Это может быть связано с отказом в соединении или 30-ти секундной задержкой. Узнать больше про TCP

HTTP ошибки

Код ошибки Redirect Loop Detected
Достигнуто максимально допустимое количество перенаправлений (редиректов). Мы будем следовать не более чем по 5-ти редиректам до разрыва петли. Узнать больше про циклические редиректы

Другие ошибки

Код ошибки Node Unavailable
В данный момент не удалось подключиться к региональному узлу. Эта ошибка не связана с обрабатываемым URL.

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

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

Adblock
detector