Список кодов состояния HTTP — Orkhan Alyshov
Код состояния HTTP (HTTP status code) — часть первой строки ответа сервера при запросах по протоколу HTTP. Он представляет собой целое число из трёх десятичных цифр. Первая цифра указывает на класс состояния. За кодом ответа обычно следует отделённая пробелом поясняющая фраза на английском языке, которая разъясняет человеку причину именно такого ответа.
1xx: Informational (информационные):
- 100 Continue Server Code (продолжить)
100 Continue означает «работу в штатном режиме». Он означает, что пользователем был сделан хороший запрос, и сервер принялся к обработке. Это временный код ответа, имеющий место лишь тогда, когда пользователь ожидает финального ответа от сервера, который происходит только после того, как будет отослан последний пакет данных. - 101 Switching Protocols (переключение протоколов)
Это, наверное, один из самых простых серверных кодов, который означает, что пользователь сделал запрос на переключение типа протокола, используемого на веб-сервере, и сервер дал согласие на это.
2xx: Success (успешно):
- 200 OK (хорошо)
Этот код, вероятно, является самым популярным, но при этом самым незаметным ввиду его характера. Он означает, что обмен между пользователем и сервером завершен, и все прошло так, как должно было.
- 201 Created (создано)
В результате успешного выполнения запроса был создан новый ресурс. Например, запрос пользователя привел к созданию нового ресурса вроде новой страницы. Сервер-источник должен создать ресурс перед тем, как отправлять код 201. Если ресурс не может быть создан в данный момент, то сервер вместо этого должен отобразить код 202 (accepted).
- 202 Accepted (принято)
Запрос был принят на обработку, но она не завершена по каким-либо причинам. Запрос может и не быть выполнен до конца, в зависимости от того, был ли он отклонен в процессе обработки.
- 203 Non-Authoritative Information (информация не авторитетна)
Аналогично ответу 200, но в этом случае передаваемая информация была взята не из первичного источника (резервной копии, другого сервера и т.
- 204 No Content (нет содержимого)
Сервер успешно обработал запрос, но в ответе были переданы только заголовки без тела сообщения. Клиент не должен обновлять содержимое документа, но может применить к нему полученные метаданные.
- 205 Reset Content (сбросить содержимое)
Сервер успешно обработал запрос, но при этом не возвращает какой-либо контент. В отличие от 204, этот ответ требует от запрашиваемого обновить документ.
Сервер возвращает лишь часть контента, соответствующего заголовку, посланному клиентом. Обычно он используется расширенными инструментами кэширования, когда пользователь запрашивает лишь небольшую часть контента на странице, и сервер в своем ответе предоставляет данные лишь для этой области на странице.
3xx: Redirection (перенаправление):
- 300 Multiple Choices (множество выборов)
В основном, этот код сообщает пользователю о том, что ресурс был перемещен, и сервер отвечает списком доступных альтернативных вариантов, среди которых пользователь может выбрать наиболее подходящий ему ресурс.
- 301 Moved Permanently (перемещено навсегда)
Это довольно распространенный пользовательский запрос. Он означает, что запросы для данного ресурса (а также все последующие запросы) должны быть перенаправлены на заданный URL.
- 302 Found (найдено)
Этот код сообщает пользователю, что расположение запрашиваемого ресурса временно изменено, и 302 код состояния должен содержать информацию о новом месторасположении, которое пользователь и должен запросить.
- 303 See Other (смотреть другое)
Этот код указывает пользователю на то, что запрашиваемый ресурс можно найти по URL, который отличается от указанного в запросе. Это не обязательно означает, что что-то было перемещено, это код лишь предоставляет адрес, по которому следует запрашивать подобный ответ.
- 304 Not Modified (не изменялось)
Этот код означает, что пользователь запрашивает документ/ресурс только в том случае, если он подвергался изменениям с момента последнего обновления кэша данного документа.
4xx: Client Error (ошибка клиента):
- 400 Bad Request (плохой, неверный запрос)Запрос не может быть исполнен ввиду синтаксической ошибки.
- 401 Unauthorized (неавторизован)Этот код связан с запросом к ресурсу, который требует авторизации. Ответ 401 указывает на то, что попытка авторизации была отклонена по тем данным, которые предоставил пользователь.
- 403 Forbidden (запрещено)Пользователь пытается осуществить доступ к ресурсу, к которому у него нет доступа, и авторизация не изменит положения.
- 404 Not Found (не найдено)Означает, что запрошенный ресурс не может быть найден, но в будущем – когда он, возможно, там появится, – к нему можно будет осуществить доступ. Также здесь допустимы последующие запросы от клиента. Тем не менее, в большинстве таких случаев применяется код перенаправления из семейства 3хх, и пользователя перенаправляют на альтернативный ресурс или локацию.
- 405 Method Not Allowed (метод не поддерживается)
Метод, при помощи которого совершается запрос к ресурсу, не доступен. Другими словами, ошибка возникает при попытке использовать GET на форме, которая требует ввод данных посредством POST, либо использовании метода PUT на ресурсе, который предназначен только для чтения.
- 408 Request Timeout (истекло время ожидания)
Время ожидания сервером передачи от клиента истекло.
- 409 Conflict (конфликт)
Указывает на то, что запрос не может быть выполнен из-за конфликтного обращения к ресурсу. Вы можете получить такой код при загрузке файла на веб-сервер, где уже имеется более свежая версия этого файла, что приводит к конфликту в системе контроля версий.
- 410 Gone (удалён)
Такой ответ сервер посылает, если ресурс раньше был по указанному URL, но был удалён и теперь недоступен.
- 413 Request Entity Too Large (размер запроса слишком велик)
Код 413 отображается в тех случаях, когда сервер отказывается обработать запрос по причине слишком большого размера тела запроса.
- 414 Request-URI Too Large (запрашиваемый URI слишком длинный)
Этот код отображается, когда сервер не может обработать запрос из-за слишком длинного указанного URL.
- 415 Unsupported Media Type (неподдерживаемый тип данных)
Ответ 415 отправляется для указания о том, что сервер заметил, что часть запроса была сделана в неподдерживаемом формате.
- 429 Too Many Requests (слишком много запросов)
Этот ответ посылается, если клиент попытался отправить слишком много запросов за короткое время.
- 431 Request Header Fields Too Large (поля заголовка запроса слишком большие)
Происходит, когда сервер не собирается обрабатывать запрос, так как какое-то из полей заголовка (или все поля заголовков) слишком большое.
5xx: Server Error (ошибка сервера):
- 500 Internal Server Error (внутренняя ошибка сервера)Данная ошибка говорит о любой внутренней ошибке сервера, которая не входит в рамки остальных ошибок класса.
- 501 Not Implemented (не реализовано)
Сервер либо не понимает метод в запросе, либо не поддерживает возможностей, необходимых для обработки запроса.
- 502 Bad Gateway (плохой, ошибочный шлюз)Ответ 502 отображается, когда сервер, выступая в роли шлюза или прокси-сервера, получил недействительное ответное сообщение от вышестоящего сервера.
- 503 Server Unavailable (сервер недоступен)
Сервер временно не имеет возможности обрабатывать запросы по техническим причинам. В основном, это состоянии является временным. Когда этот код может использоваться? Когда сайт пользуется чрезмерным спросом, и сервер не в состоянии обработать все запросы.
- 504 Gateway Timeout (шлюз не отвечает)Сервер в роли шлюза или прокси-сервера не дождался ответа от вышестоящего сервера для завершения текущего запроса.
- 505 HTTP Version Not Supported (версия HTTP не поддерживается)
Сервер не поддерживает указанную в запросе версию протокола HTTP.
Коды состояний HTTP
511 код ответа означает, что клиенту необходима авторизация для получения доступа к сети.
Ответ должен содержать ссылку на ресурс, на котором пользователь сможет авторизоваться (например с HTML формой)
Упоминание о том, что 511 ответ не должен содержать требования авторизации или соответствующего интерфейса, потому что браузеры должны будут отобразить интерфейс авторизации, который будет ассоциироваться с запрашиваемым URL, что может путать пользователя.
The 511 status SHOULD NOT be generated by origin servers; it is intended for use by intercepting proxies that are interposed as a means of controlling access to the network.
Responses with the 511 status code MUST NOT be stored by a cache.
The 511 status code is designed to mitigate problems caused by «captive portals» to software (especially non-browser agents) that is expecting a response from the server that a request was made to, not the intervening network infrastructure. It is not intended to encouraged deployment of captive portals, only to limit the damage caused by them.
A network operator wishing to require some authentication, acceptance of terms or other user interaction before granting access usually does so by identifing clients who have not done so («unknown clients») using their MAC addresses.
Unknown clients then have all traffic blocked, except for that on TCP port 80, which is sent to a HTTP server (the «login server») dedicated to «logging in» unknown clients, and of course traffic to the login server itself.
In common use, a response carrying the 511 status code will not come from the origin server indicated in the request’s URL. This presents many security issues; e.g., an attacking intermediary may be inserting cookies into the original domain’s name space, may be observing cookies or HTTP authentication credentials sent from the user agent, and so on.
However, these risks are not unique to the 511 status code; in other words, a captive portal that is not using this status code introduces the same issues.
Also, note that captive portals using this status code on an SSL or TLS connection (commonly, port 443) will generate a certificate error on the client.
Wikipedia
Этот ответ посылается не сервером, которому был предназначен запрос, а сервером-посредником — например, сервером провайдера — в случае, если клиент должен сначала авторизоваться в сети, например, ввести пароль для платной точки доступа к Интернету. Предполагается, что в теле ответа будет возвращена Web-форма авторизации или перенаправление на неё. Введено в черновике стандарта RFC 6585
Коды состояния HTTP, ответа веб сервера. Методы HTTP
Код состояния HTTP — это часть строки заголовка, ответа веб сервера на запрос клиента, информирующая о результате запроса и о том, что клиент должен предпринять далее. Думаю не все знают как выглядит заголовок ответа сервера, зато уверен, каждый, пользующийся интернетом, не раз сталкивались, со страницей 404 Not Found или 403 Forbadden. Это и есть, видимый пользователю результат, выдачи сервером, того или иного кода статуса в строке заголовке.
Коды состояния HTTP, разделены на 5 категорий. Клиент может быть не знаком с тем или иным кодом ответа HTTP, однако он должен отреагировать согласно категории кода. Итак протокол HTTP поддерживает следующие коды статуса, разделенные по категориям:
1xx: Information — информационные
- 100 Continue — Продолжать.
- Сервер доволен данными в запросе клиента, можно продолжать передачу заголовков. Появился в протоколе версии HTTP/1.1.
- 101 Switching Protocols — Переключение протоколов.
- Сервер предлагает выбрать другой протокол, более соответствующий данному ресурсу. Протоколы предлагаемый сервером, указываются в строке заголовка Update, если предложенный сервером протокол, устраивает клиента, он высылает новый запрос с указанием нового протокола. Появился в протоколе версии HTTP/1.1.
- 102 Processing — Обрабатывается.
- Используется в протоколе WebDAV, работающем поверх HTTP протокола. Данный код статуса информирует клиента о том, что запрос принят, но на его обработку может понадобится определенное время, что-бы он ( клиент ), не сбрасывал соединение. Клиент в этом случае должен обнулить таймер и ожидать следующей команды.
2xx: Success — Успешное завершение
- 200 OK — Хорошо.
- Запрос к ресурсу выполнен успешно. Данные, запрошенные клиентом, находятся в заголовке и/или в теле ответа. Появился в протоколе версии HTTP/1.0.
- 201 Created — Создано.
- Запрос выполнен успешно, новый ресурс создан. В ответе сервера, в заголовке Location, указывается местоположение созданного ресурса. Кроме того, серверу рекомендуется указывать характеристики созданного ресурса, в заголовке ответа. Появился в протоколе версии HTTP/1.0.
- 202 Accepted — Принято.
- Запрос принят, но еще в обработке. Появился в протоколе версии HTTP/1.0.
- 203 Non-Authoritative Information — Информация из неавторитетного источника.
- Аналогично коду 200, но в данном случае информация может быть неактуальной, так как взята не из первоисточника. Появился в протоколе версии HTTP/1.1.
- 204 No Content — Отсутствует содержимое.
- Сервер успешно обработал запрос, но не вернул содержимого. Появился в протоколе версии HTTP/1.0.
- 205 Reset Content — Сбросить содержимое.
- Сервер успешно обработал запрос, но не вернул содержимого. В отличии от кода 204, данный код, требует от клиента, сбросить представление документа. Появился в протоколе версии HTTP/1.1.
- 206 Partial Content — Часть содержимого.
- Сервер вернул результат запроса клиентом, части содержимого, с помощью заголовка range. Используется для докачки файлов или для многопоточной закачки. Появился в протоколе версии HTTP/1.1.
- 207 Multi-Status — Многостатусный.
- Возвращаемое сервером тело сообщения, представляет из себя XML документ со статусами выполнения нескольких подзапросов. Используется в протоколе WebDAV.
- 226 IM Used — Использовано IM
- Расширение HTTP для поддержки «дельта кодирования» ( delta encoding ). Заголовок A-IM принят, данные возвращаются согласно установленным параметрам.
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.
4xx: Client Error — Ошибка клиента
Коды данной категории служат для указание на ошибку со стороны клиента. При использовании любых методов запроса, кроме HEAD, сервера возвращает пользователю гипертекстовое пояснение по данной ошибке.
- 400 Bad Request — Плохой запрос.
- Из-за синтаксической ошибки, запрос не был понят сервером. Появился в протоколе версии HTTP/1.0.
- 401 Unauthorized — Не авторизован.
- Ресурс требует идентификации пользователя. Клиентское приложение запрашивает у пользователя данные для аутентификации ( имя, пароль ) и передает их на сервер в заголовке WWW-Authenticate. Если данные указаны не правильно, будет снова выдан этот-же код статуса. Появился в протоколе версии HTTP/1.0.
- 402 Payment Required — Необходима оплата.
- Пока не используется. Появился в протоколе версии HTTP/1.1.
- 403 Forbidden — Запрещено.
- Сервер отказал в доступе к запрошенному ресурсу ввиду ограничений. Ограничения могут быть любыми, установленными администратором сервера, или определенным веб приложением. Например, в целях безопасности, закрыт доступ к файлу, .htacces или .htpasswd или к закрытой директории сайта, или в случае, когда аутентификация должна производится через веб приложение ( например сайтовый движок ), ну или блокировка по IP адресу, в случае слишком частых обращений. Появился в протоколе версии HTTP/1.0.
- 404 Not Found — Не найдено.
- Сервер не нашел запрошенный ресурс по указанному адресу. Кроме того данный код ответа можно использовать вместо 403, с целью, скрыть расположение документа, доступ к которому запрещен. Появился в протоколе версии HTTP/1.0.
- 405 Method Not Allowed — Метод не поддерживается.
- Клиент попытался использовать метод, недопустимый для данного ресурса. Сервер передает в заголовке, строку Allow, содержащую список допустимых методов. Появился в протоколе версии HTTP/1.1.
- 406 Not Acceptable — Не приемлемо.
- Запрошенный ресурс, не удовлетворяет, запрошенные характеристики. В случае, если запрос был сделан не методом HEAD, сервер вернет список допустимых характеристик запрошенного ресурса. Появился в протоколе версии HTTP/1.1.
- 407 Proxy Authentication Required — Необходима прокси авторизация.
- Данный код статуса, аналогичен коду 401 за исключением того, что аутентификация производится для прокси-сервера. Появился в протоколе версии HTTP/1.1.
- 408 Request Timeout — Время ожидания истекло.
- Истек таймаут ожидания передачи данных, между сервером и клиентом. Появился в протоколе версии HTTP/1.1.
- 409 Conflict — Конфликт.
- Конфликтная ситуация при обращении к ресурсу. Такое может произойти, например, при попытке одновременного изменения файла, методом PUT, несколькими клиентами. Появился в протоколе версии HTTP/1.1.
- 410 Gone — Удалён.
- Данный ответ выдается в случае, если документ был по указанному URI, но в данный момент удален. Появился в протоколе версии HTTP/1.1.
- 411 Length Required — Необходима длина.
- Этот код статуса говорит о том, что для данного URI, в заголовке запроса, должно быть указано значение в поле Content-Length. Появился в протоколе версии HTTP/1.1.
- 412 Precondition Failed — Условие «ложно.
- Данный код выдается в случае, если ни одно из условных полей заголовка не было удовлетворено. Появился в протоколе версии HTTP/1.1.
- 413 Request Entity Too Large — Запрошены слишком большие данные.
- Данный код выдается, если сервер по каким-либо причинам, не может передать, требуемый объем данных. Если это временная проблема, сервер может указать время, по истечении которого можно будет попробовать повторно запросить ресурс, в строке заголовка, Retry-After. Появился в протоколе версии HTTP/1.1.
- 414 Request-URI Too Long — Запрашиваемый URI слишком длинный.
- Слишком длинная строка запроса. Такая ситуация может произойти, например в случае попытки, передать данные методом GET, вместо использования POST. Появился в протоколе версии HTTP/1.1.
- 415 Unsupported Media Type — Неподдерживаемый тип данных.
- Сервер, по какой-то причине, отказался обрабатывать запрошенные данные, используемым методом. Появился в протоколе версии HTTP/1.1.
- 416 Requested Range Not Satisfiable — Запрашиваемый диапазон не достижим.
- В строке заголовка запроса Range, установлен диапазон, выходящий за рамки запрошенного ресурса и отсутствует строка If-Range. Появился в протоколе версии HTTP/1.1.
- 417 Expectation Failed — Ожидаемое не приемлемо.
- Сервер не может обработать строку заголовка запроса Expect. Появился в протоколе версии HTTP/1.1.
- 422 Unprocessable Entity — Необрабатываемый экземпляр.
- Запрос принят, тип данных может быть обработан, синтаксис XML данных в теле запроса верен, но имеет место логическая ошибка, не позволяющая обработать запрос к ресурсу. Используется в протоколе WebDAV.
- 423 Locked — Заблокировано.
- Запрошенный ресурс заблокирован от данного метода. Используется в протоколе WebDAV.
- 424 Failed Dependency — Невыполненная зависимость.
- Выполнение запроса, может зависеть от результата выполнения, какой-либо другой операции, при невыполнении данного условия, будет выдан этот код статуса. Используется в протоколе WebDAV.
- 425 Unordered Collection — Беспорядочный набор.
- Этот код статуса будет выдан в случае, если клиент отправил запрос обозначив положение в неотсортированной коллекции или используя порядок следования элементов отличный от серверного. Введено в черновике по WebDAV Advanced Collections Protocol.
- 426 Upgrade Required — Требуется обновление.
- Указание сервера, клиенту, обновить протокол. Заголовок ответа, должен содержать правильно составленные поля Upgrade и Connection. Введено в RFC 2817 для возможности перехода к TLS посредством HTTP.
- 449 Retry With — Повторить с…
- Выдается в случае поступления не достаточного количества информации для обработки запроса. В заголовок ответа сервера, помещается строка Ms-Echo-Request. Введено корпорацией Microsoft для WebDAV.
5xx: Server Error — Ошибка на стороне сервера
Коды данной категории, предназначены для ситуаций, когда обработка запроса не возможна по вине сервера. Во всех случаях, кроме использования метода HEAD, сервер должен включать в тело ответа, объяснение для пользователя.
- 500 Internal Server Error — Внутренняя ошибка сервера.
- Любая внутренняя ошибка на стороне сервера не подпадающая под остальные ошибки из категории 5хх. Появился в протоколе версии HTTP/1.0.
- 501 Not Implemented — Не реализовано.
- Сервер не поддерживает, необходимых для обработки запроса, возможностей. ( например не поддерживается необходимый метод обработки ). Появился в протоколе версии HTTP/1.0.
- 502 Bad Gateway — Плохой шлюз.
- Сервер, работающий в качестве прокси или шлюза, получил сообщение о неудачное в промежуточной операции. Появился в протоколе версии HTTP/1.0.
- 503 Service Unavailable — Сервис недоступен.
- Сервер не в состоянии обрабатывать запросы клиентов по техническим причинам. Появился в протоколе версии HTTP/1.0.
- 504 Gateway Timeout — Истек таймаут ожидания ответа шлюза.
- Проксирующий сервер или шлюз, не дождался ответа от вышестоящего сервера для завершения обработки запроса. Появился в протоколе версии HTTP/1.0.
- 505 HTTP Version Not Supported — Версия HTTP протокола не поддерживается.
- Сервер не поддерживает, или не может обработать, указанную в заголовке версию HTTP протокола. Появился в протоколе версии HTTP/1.0.
- 506 Variant Also Negotiates — Вариант тоже согласован.
- Из-за не верной конфигурации, выбранный вариант указывает сам на себя, в следствии чего, связывание прерывается. Добавлено в RFC 2295 для дополнения протокола HTTP технологией Transparent Content Negotiation.
- 507 Insufficient Storage — Переполнение хранилища.
- Недостаточно места для обработки текущего запроса. Возможно временная проблема. Используется в протоколе WebDAV.
- 509 Bandwidth Limit Exceeded — Пропускная возможность канала исчерпана.
- Данный код статуса, используется в случае превышения веб площадкой, отведенного ей лимита, на потребляемый трафик. Данный код не описан ни одним RFC и используется только модулем bw/limited, панели веб-хостинга cPanel.
- 510 Not Extended — Нет расширения.
- У сервера отсутствует расширение, которое пытается использовать клиентом. Сервер может передавать информацию, об имеющихся у него расширениях. Введено в RFC 2774 для дополнения протокола HTTP поддержкой расширений.
Методы обработки запросов HTTP
HTTP метод — это основная операция, которую необходимо выполнить над ресурсом. В названии могут использоваться любые символы, кроме управляющих последовательностей и разделителей, как правило это короткое слово на английском языке. Имена методов HTTP зависимы от регистра.
Любой веб сервер обязан работать, по крайней мере с двумя методами GET и HEAD. Если сервер не смог определить метод, указанный в заголовке запроса клиента, он должен вернуть код статуса 501 (Not Implemented), если-же метод серверу известен, но неприменим к данному ресурсу, будет возвращен код статуса 405 (Method Not Allowed). Как в первом, так и во втором случае, сервер должен включить в свой ответ, заголовок Allow со списком методов, которые он поддерживает.
Метод OPTIONS
Данный метод используется для выяснения поддерживаемых веб-сервером возможностей или параметров соединения с конкретным ресурсом. Сервер включает в ответный запрос заголовок Allow, со списком поддерживаемых методов и возможно информацию о поддерживаемых расширениях. Тело запроса клиента, содержит информацию об интересующих его данных, но на данном этапе формат тела и порядок работы с ним, не определен, пока, сервер должен его игнорировать. С ответным запросом сервера, происходит аналогичная ситуация.
Что-бы выяснить возможности сервера, клиент должен указать в запросе URI, символ — «*«, то есть данный запрос к серверу выглядит как: OPTIONS * HTTP/1.1. Кроме прочего, данный запрос может быть использован для проверки работоспособности сервера и поддержки им протокола HTTP, версии 1. 1. Результаты данного запроса не кэшируются.
Метод GET
Метод GET, применяется для запроса конкретного ресурса. Так-же с помощью GET, может быть инициирован некий процесс, при этом, в тело ответа, включается информация о ходе выполнения инициированного запросом действия.
Параметры для выполнения запроса, передаются в URI запрашиваемого ресурса, после символа «?«. Запрос в таком случае выглядит примерно так: GET /some/resource?param1=val1¶m2=val2 HTTP/1.1.
Как установлено в стандарте HTTP, запросы методом GET, являются идемпотентными, то есть, повторная отправка одного и того-же запроса, методом GET, должна приводить к одному и тому-же результату, в случае, если сам ресурс, в промежутках между запросами, изменен не был, что позволяет кэшировать результаты, выдаваемые на запрос методом GET.
Кроме вышесказанного, существуют еще два вида метода GET, это:
условный GET, содержащий заголовки If-Modified-Since, If-Match, If-Range и им подобные,
Частичный GET, содержащий заголовок Range с указанием байтового диапазона данных, которые сервер должен отдать. Данный вид запроса используется для докачки и организации многопоточных закачек.
Порядок работы с этими подвидами запроса GET, стандартами определен отдельно.
Метод HEAD
Данный метод, аналогичен методу GET, с той лишь разницей, что сервер не отправляет тело ответа. Метод HEAD, как правило используется для получения метаданных ресурса, проверки URL ( есть-ли указанный ресурс на самом деле ) и для выяснения факта изменения ресурса с момента последнего обращения к нему.
Заголовки ответа могут быть закэшированы, при несоответствии метаданных и информации в кэше, копия ресурса помечается как устаревшая.
Метод POST
Метод POST, используется для передачи пользовательских данных на сервер, указанному ресурсу. Примером может послужить HTML форма с указанным атрибутом Method=»POST», для отправки комментария к статье. После заполнения необходимых полей формы, пользователь жмет кнопку «Отправить» и данные, методом POST, передаются серверному сценарию, который в свою очередь выводит их на странице комментариев. Таким-же образом, с помощью метода POST, можно передавать файлы.
В отличии от GET, метод POST, не является идемпотентным, то есть неоднократное повторение запроса POST, может выдавать разные результаты. В нашем случае, будет появляться новая копия комментария при каждом запросе.
Если в результате запроса методом POST, возвращается код 200 (Ok) или 204 (No Content), в тело ответа сервера, добавляется сообщение о результате выполнения запроса. Например, если был создан ресурс, сервер вернет 201 (Created), указав при этом URI созданного ресурса в заголовке Location.
Ответы сервера, на выполнение метода POST, не кэшируются.
Метод PUT
Используется для загрузки данных запроса на указанный URI. В случае отсутствия ресурса по указанному в заголовке URI, сервер создает его и возвращает код статуса 201 (Created), если ресурс присутствовал и был изменен в результате запроса PUT, выдается код статуса 200 (Ok) или 204 (No Content). Если какой-то из переданных серверу заголовков Content-*, не опознан или не может быть использован в данной ситуации, сервер возвращает статус ошибки 501 (Not Implemented).
Главное различие методов PUT и POST в том, что при методе POST, предполагается, что по указанному URI, будет производиться обработка, передаваемых клиентом данных, а при методе PUT, клиент подразумевает, что загружаемые данные уже соответствуют ресурсу, расположенному по данному URI.
Ответы сервера при методе PUT не кэшируются.
Метод PATCH
Работает аналогично методу PUT, но применяется только к определенному фрагменту ресурса.
Метод DELETE
Удаляет ресурс, расположенный по заданному URI.
Метод TRACE
При запросе методом TRACE, клиент может увидеть, какие изменения были сделаны в запросе, промежуточными серверами.
Метод LINK
Связывает указанный ресурс с другим ресурсом.
Метод UNLINK
Снимает привязку одного ресурса к другому.
Ответы сервера — подробная инструкция
Роботы поисковых систем при проверке страницы вначале смотрят на код ответа сервера, а затем уже приступают к проверке содержимого документа. Например, несуществующие страницы всегда должны отдавать 404 код. Почему? Google утверждает, что страницы с кодом ответа, отличным от 404 и 410, будут сканироваться. Так что, если вы не знаете, какие коды отдают страницы вашего сайта и как это проверить, то ставите под угрозу будущее всего проекта.
О том, что означают коды ответов сервера, — в новом выпуске «Азбуки SEO».
Что такое «код ответа сервера»
Это трехзначное число, которое отдает сервер на запрос посетителя и благодаря которому корректируется дальнейшая обработка запрашиваемого документа. За числом всегда идет краткое пояснение кода на английском языке, отделенное пробелом, — первичная инструкция клиенту при посещении страницы или документа сайта.
Код ответа сервера при обращении к странице в первую очередь проверяют и браузеры, и роботы поисковых систем.
Как проверить код ответа сервера
Чтобы увидеть код при работе в Google Chrome, воспользуйтесь вкладкой Network на панели инструментов разработчика (чтобы попасть туда, нажмите F12). После открытия панели обновите страницу.
Также можно использовать расширение HTTP Headers для Chrome. С их помощью можно в один клик получить информацию по отдельным страницам. А для массовой проверки по списку URL можно использовать Netpeak Spider, Netpeak Checker или онлайн-инструмент Urlitor (анализ до 150 URL-адресов).
Что такое «классы состояния»
Это группы кодов, объединенных определенными признаками. На класс состояния указывает первая цифра в коде.
Выделяют пять классов:
- 1xx — информационные коды. Они отвечают за процесс передачи данных. Это временные коды, они информируют о том, что запрос принят и обработка будет продолжаться.
- 2xx — успешная обработка. Запрос был получен и успешно обработан сервером.
- 3xx — перенаправление (редирект). Эти ответы сервера гласят, что нужно предпринять дальнейшие действия для выполнения запроса. Например, сделать запрос по другому адресу.
- 4xx — ошибка пользователя. Это значит, что запрос не может быть выполнен по его вине.
- 5xx — ошибка сервера. Эти коды возникают из-за ошибок на стороне сервера. В данном случае пользователь всё сделал правильно, но сервер не может выполнить запрос. Для кодов этого класса сервер обязательно показывает сообщение, что не может обработать запрос и по какой причине.
{«0»:{«lid»:»1573230077755″,»ls»:»10″,»loff»:»»,»li_type»:»em»,»li_name»:»email»,»li_ph»:»Email»,»li_req»:»y»,»li_nm»:»email»},»1″:{«lid»:»1596820612019″,»ls»:»20″,»loff»:»»,»li_type»:»hd»,»li_name»:»country_code»,»li_nm»:»country_code»}}
Истории бизнеса и полезные фишки
Основные ответы сервера
200 ОК
Самый популярный и важный статус. Означает, что запрос выполнен успешно в соответствии с ожиданиями пользователя — запрошенные данные или страница существуют и доступны для просмотра. Все страницы, которые мы хотим видеть в индексе поисковых систем, должны отдавать код 200 OK.
301 Moved Permanently
Этот ответ гласит, что документ или страница были перемещены на другой адрес навсегда. Если у страницы, которая уже была в выдаче поисковых систем, изменился адрес, для сохранения трафика и ссылочного веса рекомендуется настраивать 301 редирект со старого URL-адреса на новый. В конечном итоге поисковик «склеит» эти адреса.
302 Found
Документ временно перенесен на другой адрес. Этот код — сигнал о том, что удалять эту страницу из индекса не надо. По заявлению Gary Illyes из Google, ссылочный вес при этом передается.
304 Not Modified
Важный код с точки зрения нагрузки на сервер и количества передаваемых данных. Сервер возвращает 304 код, если в HTTP-заголовке дата последнего обновления (Last-Modified) старее, чем в запросе с заголовком If-Modified-Since. То есть, если документ не менялся с указанной даты, сервер возвращает код 304 Not Modified. В таком случае роботам поисковиков нет необходимости загружать документ повторно: он не изменился с момента их последнего визита. Фактически они получают только http-заголовки и двигаются дальше.
403 Forbidden
Отказано в доступе. Этот ответ возвращается, если пользователю запрещен доступ к данному документу. В данном случае речь не идет об HTTP-аутентификации (для таких случаев используются 401 и 407 коды). 403 код выводится, например, при входе с запрещенных IP или попытке просмотра системного файла .htaccess.
404 Not Found
Наверное, каждый пользователь сталкивался с этим ответом. Он означает, что по данному URL ничего не найдено — документ не существует. Этот код нужно отдавать при попытке попасть на несуществующие документы. Если страница по запрашиваемому адресу существовала, но была удалена и вы хотите об этом сообщить, используйте код 410.
Страница с сообщением 404 File Not Found не всегда отдает код 404. Многие вебмастера не уделяют этому внимание, что в результате может негативно сказаться на ранжирования всего сайта. Это так называемые страницы «Soft 404». Они возникают, если несуществующая страница отдает код ответа, отличный от 404 и 410. К «Soft 404» могут быть причислены страницы, которые должны отдавать код 200, но на них нет контента (пустая страница). Решение вопроса — найти такие страницы и обязательно настроить для них 404 код.
В искусстве оформления 404 страниц многие преуспели. Отвлекитесь и зацените:
Смотрите также другие интересные примеры дизайна страниц с 404 ошибкой.
410 Gone
Этот ответ говорит, что документ был окончательно удален и более недоступен. Хотя коды 404 и 410 одинаково указывают на то, что страница недоступна, в их обработке есть отличия. Обращаясь к 404 странице, поисковый робот не будет помечать её как удаленную и спустя время снова к ней обратится для уточнения информации. Чего не скажешь про 410 код. В этом случае робот точно отметит, что эта страница или документ навсегда удалены с сервера. Доверясь вебмастеру, бот не будет проверять эту страницу снова.
В последнее время этот код встречается все чаще. Он означает, что доступ к серверу закрыт из-за его запрета на государственном уровне или по решению суда в случае нарушения авторских прав. Ошибка 451 — уточняющий вариант кода 403.
500 Internal Server Error
Это любая внутренняя ошибка сервера, которая не описана в остальных ошибках этого класса. Происходит, если сервер столкнулся с проблемой, которая не позволяет выполнить запрос. Например, эта ошибка может возникнуть из-за ошибок в настройке файла конфигурации.
Сервер временно не может обрабатывать запросы по техническим причинам. Если на сервер идет слишком много запросов и он не в состоянии с ними справиться, мы увидим именно этот ответ.
504 Gateway Timeout
Шлюз не отвечает. Ответ появляется, если сервер работал в качестве прокси и не дождался ответа от вышестоящего сервера для завершения запроса.
Для предотвращения появления страниц в индексе поисковых систем рекомендуется использовать на странице метатег robots с атрибутом noindex: <meta name=»robots» content=»noindex»>.
Если необходимо удалить документ из результатов поиска, можно настроить 404 или 410 код. При использовании метатега noindex страница будет регулярно повторно сканироваться, а при использовании кода ответа 410 роботы сочтут, что страницы больше нет и её сканировать не нужно.
Выводы
- Существуют пять групп кодов ответа сервера — классы состояния, указывающие на разные этапы процесса передачи данных: от успешной обработки до ошибки сервера.
- Все страницы, которые мы хотим видеть в индексе поисковых систем, должны отдавать код 200 OK.
- Если у страницы, которая уже была в выдаче поисковых систем, изменился адрес, рекомендуется настраивать 301 редирект со старого URL-адреса на новый.
- Если несуществующая страница отдает код ответа, отличный от 404 и 410, возникает ошибка страниц «Soft 404». К ним могут быть причислены страницы, которые должны отдавать код 200, но на них нет контента.
Правильное распределение ответов сервера позволяет поисковым системам экономить ресурсы на работу с сайтом. Поисковые роботы будут получать только необходимую информацию — это очень важно для SEO.
Напоследок вопрос на общую эрудицию: почему для ответа сервера Unavailable For Legal Reasons выбрали число 451?
Список кодов состояния HTTP — List of HTTP status codes
Коды ответа протокола передачи гипертекста
Это список кодов состояния ответа протокола передачи гипертекста (HTTP). Коды состояния выдаются сервером в ответ на запрос клиента к серверу. Он включает коды из запроса комментариев IETF (RFC), другие спецификации и некоторые дополнительные коды, используемые в некоторых распространенных приложениях HTTP. Первая цифра кода состояния указывает один из пяти стандартных классов ответов. Показанные фразы сообщений являются типичными, но может быть предоставлена любая удобочитаемая альтернатива. Если не указано иное, код состояния является частью стандарта HTTP / 1.1 (RFC 7231).
Служба присвоения номеров Интернета (IANA) ведет официальный реестр кодов состояния HTTP.
Все коды состояния ответа HTTP разделены на пять классов или категорий. Первая цифра кода состояния определяет класс ответа, в то время как последние две цифры не имеют никакой роли классификации или категоризации. Стандарт определяет пять классов:
- Информационный ответ 1xx — запрос получен, процесс продолжается
- 2xx успешный — запрос был успешно получен, понят и принят
- Перенаправление 3xx — необходимо предпринять дальнейшие действия для выполнения запроса
- Ошибка клиента 4xx — запрос содержит неверный синтаксис или не может быть выполнен
- Ошибка сервера 5xx — серверу не удалось выполнить явно действительный запрос
Информационный ответ 1xx
Информационный ответ означает, что запрос был получен и понят. Он выдается временно, пока продолжается обработка запроса. Он предупреждает клиента, чтобы он дождался окончательного ответа. Сообщение состоит только из строки состояния и дополнительных полей заголовка и заканчивается пустой строкой. Поскольку в стандарте HTTP / 1.0 не определены коды состояния 1xx, серверы не должны отправлять ответ 1xx клиенту, совместимому с HTTP / 1.0, за исключением экспериментальных условий.
- 100 Продолжить
- Сервер получил заголовки запроса, и клиент должен перейти к отправке тела запроса (в случае запроса, для которого необходимо отправить тело; например, запрос POST ). Отправка большого тела запроса на сервер после того, как запрос был отклонен из-за несоответствующих заголовков, будет неэффективен. Чтобы сервер проверил заголовки запроса, клиент должен отправить
Expect: 100-continue
в качестве заголовка в своем начальном запросе и получить100 Continue
код состояния в ответ перед отправкой тела. Если клиент получает код ошибки, такой как 403 (Запрещено) или 405 (Метод не разрешен), он не должен отправлять тело запроса. Ответ417 Expectation Failed
указывает, что запрос следует повторить безExpect
заголовка, поскольку он указывает, что сервер не поддерживает ожидания (это, например, случай с серверами HTTP / 1.0). - 101 протокол переключения
- Запрашивающая сторона попросила сервер переключить протоколы, и сервер дал согласие на это.
- 102 Обработка ( WebDAV ; RFC 2518 )
- Запрос WebDAV может содержать множество подзапросов, связанных с файловыми операциями, для выполнения которых требуется много времени. Этот код указывает, что сервер получил и обрабатывает запрос, но ответа еще нет. Это предотвращает тайм-аут клиента и предположение, что запрос был потерян.
- 103 Ранние подсказки ( RFC 8297 )
- Используется для возврата некоторых заголовков ответа перед окончательным HTTP-сообщением.
2хх успех
Этот класс кодов состояния указывает, что действие, запрошенное клиентом, было получено, понято и принято.
- 200 ОК
- Стандартный ответ на успешные HTTP-запросы. Фактический ответ будет зависеть от используемого метода запроса. В запросе GET ответ будет содержать объект, соответствующий запрошенному ресурсу. В запросе POST ответ будет содержать сущность, описывающую или содержащую результат действия.
- 201 Создано
- Запрос был выполнен, в результате чего был создан новый ресурс.
- 202 Принято
- Запрос принят в обработку, но обработка не завершена. Запрос может или не может быть в конечном итоге обработан, и может быть отклонен, когда происходит обработка.
- 203 Неавторизованная информация (начиная с HTTP / 1.1)
- Сервер представляет собой преобразующий прокси (например, веб-ускоритель ), который получил 200 OK от своего источника, но возвращает измененную версию ответа источника.
- 204 Нет содержимого
- Сервер успешно обработал запрос и не возвращает никакого контента.
- 205 Сбросить содержимое
- Сервер успешно обработал запрос, просит, чтобы инициатор запроса сбросил представление документа, и не возвращает никакого содержимого.
- 206 Частичное содержимое ( RFC 7233 )
- Сервер доставляет только часть ресурса ( обслуживание байтов ) из-за заголовка диапазона, отправленного клиентом. Заголовок диапазона используется HTTP-клиентами для возобновления прерванных загрузок или разделения загрузки на несколько одновременных потоков.
- 207 Мульти-статус (WebDAV; RFC 4918 )
- Нижеследующее тело сообщения по умолчанию является XML- сообщением и может содержать несколько отдельных кодов ответа, в зависимости от того, сколько подзапросов было сделано.
- 208 уже сообщено (WebDAV; RFC 5842 )
- Члены привязки DAV уже были перечислены в предыдущей части (мультистатусного) ответа и не включаются снова.
- 226 IM используется ( RFC 3229 )
- Сервер выполнил запрос ресурса, и ответ является представлением результата одной или нескольких манипуляций с экземпляром, примененных к текущему экземпляру.
Перенаправление 3xx
Этот класс кода состояния указывает, что клиент должен предпринять дополнительные действия для выполнения запроса. Многие из этих кодов состояния используются при перенаправлении URL-адресов .
Пользовательский агент может выполнить дополнительное действие без взаимодействия с пользователем, только если во втором запросе используется метод GET или HEAD. Пользовательский агент может автоматически перенаправить запрос. Пользовательский агент должен обнаруживать и вмешиваться, чтобы предотвратить циклические перенаправления.
- 300 вариантов выбора
- Указывает несколько вариантов ресурса, из которых клиент может выбрать (через согласование содержимого на основе агента ). Например, этот код можно использовать для представления нескольких параметров формата видео, для перечисления файлов с разными расширениями файлов или для устранения неоднозначности в словах .
- 301 перемещен навсегда
- Этот и все будущие запросы должны быть направлены на указанный URI .
- 302 найдено (ранее «перемещено временно»)
- Сообщает клиенту, что нужно посмотреть (перейти) на другой URL. 302 был заменен 303 и 307. Это пример отраслевой практики, противоречащей стандарту. Спецификация HTTP / 1.0 (RFC 1945) требовала от клиента выполнения временного перенаправления (исходная описывающая фраза была «Перемещено временно»), но популярные браузеры реализовали 302 с функциональностью 303 См. Другое. Следовательно, HTTP / 1.1 добавил коды состояния 303 и 307, чтобы различать два поведения. Однако некоторые веб-приложения и платформы используют код состояния 302, как если бы это был 303.
- 303 См. Другое (начиная с HTTP / 1.1)
- Ответ на запрос можно найти под другим URI с помощью метода GET. При получении в ответ на POST (или PUT / DELETE) клиент должен предполагать, что сервер получил данные, и должен отправить новый запрос GET на данный URI.
- 304 Не изменено ( RFC 7232 )
- Указывает, что ресурс не был изменен с версии, указанной в заголовках запроса If-Modified-Since или If-None-Match. В таком случае нет необходимости повторно передавать ресурс, поскольку у клиента все еще есть ранее загруженная копия.
- 305 Использовать прокси (начиная с HTTP / 1.1)
- Запрошенный ресурс доступен только через прокси, адрес которого указан в ответе. По соображениям безопасности многие клиенты HTTP (например, Mozilla Firefox и Internet Explorer ) не подчиняются этому коду состояния.
- 306 Переключить прокси
- Больше не используется. Первоначально означало «Последующие запросы должны использовать указанный прокси».
- 307 Временное перенаправление (начиная с HTTP / 1.1)
- В этом случае запрос следует повторить с другим URI; однако в будущих запросах должен по-прежнему использоваться исходный URI. В отличие от того, как 302 был исторически реализован, метод запроса не может быть изменен при повторной выдаче исходного запроса. Например, запрос POST следует повторить, используя другой запрос POST.
- 308 постоянное перенаправление ( RFC 7538 )
- Запрос и все будущие запросы следует повторить, используя другой URI. 307 и 308 аналогичны поведению 302 и 301, но не позволяют изменять метод HTTP . Так, например, отправка формы на постоянно перенаправляемый ресурс может продолжаться гладко.
4хх клиентских ошибок
Ошибка 404 в ВикипедииЭтот класс кода состояния предназначен для ситуаций, в которых кажется, что ошибка была вызвана клиентом. За исключением ответа на запрос HEAD, сервер должен включать объект, содержащий объяснение ситуации с ошибкой и того, является ли это временным или постоянным состоянием. Эти коды состояния применимы к любому методу запроса. Пользовательские агенты должны отображать любую включенную сущность для пользователя.
- ошибка 400, неверный запрос
- Сервер не может или не будет обрабатывать запрос из-за очевидной ошибки клиента (например, неверный синтаксис запроса, слишком большой размер, недопустимое формирование сообщения запроса или обманчивая маршрутизация запроса).
- 401 Несанкционированный ( RFC 7235 )
- Аналогично 403 Forbidden , но специально для использования, когда аутентификация требуется, но она не удалась или еще не была предоставлена. Ответ должен включать поле заголовка WWW-Authenticate, содержащее запрос, применимый к запрошенному ресурсу. См. Разделы «Проверка подлинности основного доступа» и « Проверка подлинности с кратким доступом» . 401 семантически означает «неавторизованный», пользователь не имеет действительных учетных данных для аутентификации для целевого ресурса.
- Примечание. Некоторые сайты неправильно выдают HTTP 401, когда IP-адрес запрещен для доступа к веб-сайту (обычно это домен веб-сайта) и этому конкретному адресу отказано в разрешении на доступ к веб-сайту.
- 402 Требуется оплата
- Зарезервировано для использования в будущем. Первоначальное намерение заключалось в том, чтобы этот код можно было использовать как часть какой-либо формы цифровых денег или схемы микроплатежей , как это было предложено, например, GNU Taler , но этого еще не произошло, и этот код широко не используется. Google Developers API использует этот статус, если конкретный разработчик превысил дневной лимит запросов. Sipgate использует этот код, если на счете недостаточно средств для начала звонка. Shopify использует этот код, когда магазин не выплатил комиссию и временно отключен. Stripe использует этот код для неудачных платежей с правильными параметрами, например заблокированных мошеннических платежей.
- 403 Запрещено
- Запрос содержал действительные данные и был понят сервером, но сервер отклоняет действие. Это может быть связано с тем, что у пользователя нет необходимых разрешений для ресурса или ему нужна учетная запись какого-либо типа, или он пытается выполнить запрещенное действие (например, создает дублирующую запись, где разрешен только один). Этот код также обычно используется, если запрос предоставил аутентификацию путем ответа на запрос поля заголовка WWW-Authenticate, но сервер не принял эту аутентификацию. Запрос не должен повторяться.
- 404 Не Найдено
- Запрошенный ресурс не может быть найден, но может быть доступен в будущем. Последующие запросы со стороны клиента допустимы.
- 405 Метод не разрешен
- Метод запроса не поддерживается для запрошенного ресурса; например, запрос GET в форме, которая требует, чтобы данные были представлены через POST , или запрос PUT на ресурсе только для чтения.
- 406 неприемлемо
- Запрошенный ресурс может генерировать только контент, неприемлемый в соответствии с заголовками Accept, отправленными в запросе. См. Согласование содержания .
- 407 Требуется проверка подлинности прокси ( RFC 7235 )
- Клиент должен сначала аутентифицироваться с помощью прокси .
- 408 Тайм-аут запроса
- Время ожидания запроса на сервере истекло. Согласно спецификациям HTTP: «Клиент не отправил запрос в течение времени, в течение которого сервер был подготовлен к ожиданию. Клиент МОЖЕТ повторить запрос без изменений в любое время».
- 409 Конфликт
- Указывает, что запрос не может быть обработан из-за конфликта в текущем состоянии ресурса, такого как конфликт редактирования между несколькими одновременными обновлениями.
- 410 ушел
- Указывает, что запрошенный ресурс больше не доступен и больше не будет доступен. Это следует использовать, когда ресурс был намеренно удален, и ресурс должен быть очищен. После получения кода состояния 410 клиент не должен запрашивать ресурс в будущем. Такие клиенты, как поисковые системы, должны удалить ресурс из своих индексов. В большинстве случаев не требуется, чтобы клиенты и поисковые системы очищали ресурс, и вместо этого можно использовать сообщение «404 Not Found».
- 411 Требуется длина
- В запросе не указана длина его содержимого, необходимая для запрашиваемого ресурса.
- 412 Ошибка предварительного условия ( RFC 7232 )
- Сервер не соответствует одному из предварительных условий, которые запрашивающая сторона поместила в поля заголовка запроса.
- 413 Payload Too Large ( RFC 7231 ).
- Запрос больше, чем сервер хочет или может обработать. Ранее назывался «Слишком большой объект запроса».
- 414 URI слишком длинный ( RFC 7231 )
- Предоставленный URI слишком длинный для обработки сервером. Часто это результат того, что слишком много данных кодируется в виде строки запроса GET-запроса, и в этом случае его следует преобразовать в POST-запрос. Ранее вызывался «Request-URI Too Long».
- 415 Неподдерживаемый тип носителя ( RFC 7231 )
- Объект запроса имеет тип носителя, который сервер или ресурс не поддерживает. Например, клиент загружает изображение как image / svg + xml , но сервер требует, чтобы изображения использовали другой формат.
- 416 Диапазон не соответствует требованиям ( RFC 7233 )
- Клиент запросил часть файла ( обслуживание байтов ), но сервер не может предоставить эту часть. Например, если клиент запросил часть файла, лежащую за концом файла. Ранее назывался «Запрошенный диапазон не удовлетворяется».
- 417 Ожидание не выполнено
- Сервер не может удовлетворить требованиям поля заголовка запроса Expect.
- 418 Я чайник ( RFC 2324 , RFC 7168 )
- Этот код был определен в 1998 году как одна из традиционных шуток IETF первоапрельских шуток в RFC 2324 , Hyper Text Coffee Pot Control Protocol , и не ожидается, что он будет реализован на реальных HTTP-серверах. RFC указывает, что этот код должен возвращаться чайниками, которых просят заварить кофе. Этот HTTP-статус используется в качестве пасхального яйца на некоторых веб-сайтах, например на Google.com « Я — пасхальное яйцо для чайника» .
- 421 неправильно направленный запрос ( RFC 7540 )
- Запрос был направлен на сервер, который не может дать ответ (например, из-за повторного использования соединения).
- 422 Unprocessable Entity (WebDAV; RFC 4918 ).
- Запрос был правильно сформирован, но его не удалось выполнить из-за семантических ошибок.
- 423 заблокировано (WebDAV; RFC 4918 )
- Ресурс, к которому осуществляется доступ, заблокирован.
- 424 Неудачная зависимость (WebDAV; RFC 4918 )
- Запрос не удался, потому что он зависел от другого запроса, и этот запрос не удался (например, PROPPATCH).
- 425 Слишком рано ( RFC 8470 )
- Указывает, что сервер не желает рисковать обработкой запроса, который может быть воспроизведен.
- 426 Требуется обновление
- Клиент должен переключиться на другой протокол, такой как TLS / 1.3 , указанный в поле заголовка Upgrade .
- 428 Требуется предварительное условие ( RFC 6585 )
- Исходный сервер требует, чтобы запрос был условным. Предназначен для предотвращения проблемы «потерянного обновления», когда клиент ПОЛУЧАЕТ состояние ресурса, изменяет его и отправляет обратно на сервер, когда тем временем третья сторона изменила состояние на сервере, что привело к конфликту.
- 429 Слишком много запросов ( RFC 6585 )
- Пользователь отправил слишком много запросов за заданный промежуток времени. Предназначен для использования со схемами ограничения скорости .
- 431 Слишком большие поля заголовка запроса ( RFC 6585 )
- Сервер не желает обрабатывать запрос, потому что либо отдельное поле заголовка, либо все поля заголовка в совокупности слишком велики.
- 451 недоступен по юридическим причинам ( RFC 7725 )
- Оператор сервера получил законное требование запретить доступ к ресурсу или к набору ресурсов, который включает запрошенный ресурс. Код 451 был выбран как ссылка на роман « 451 градус по Фаренгейту» (см. «Благодарности» в RFC).
5xx ошибки сервера
Сервер не смог выполнить запрос.
Коды состояния ответа, начинающиеся с цифры «5», указывают на случаи, когда сервер знает, что он обнаружил ошибку или иным образом неспособен выполнить запрос. За исключением ответа на запрос HEAD, сервер должен включать объект, содержащий объяснение ситуации с ошибкой, и указывать, является ли это временным или постоянным состоянием. Точно так же пользовательские агенты должны отображать пользователю любую включенную сущность. Эти коды ответов применимы к любому методу запроса.
- внутренняя ошибка сервера 500
- Общее сообщение об ошибке, которое выдается, когда возникла непредвиденная ситуация, и более конкретное сообщение не подходит.
- 501 Не реализовано
- Сервер либо не распознает метод запроса, либо не может выполнить запрос. Обычно это подразумевает доступность в будущем (например, новую функцию API веб-службы).
- 502 Неверный шлюз
- Сервер действовал как шлюз или прокси и получил недопустимый ответ от вышестоящего сервера.
- 503 Сервис недоступен
- Сервер не может обработать запрос (потому что он перегружен или отключен для обслуживания). Как правило, это временное состояние.
- Ошибка 504 Время ответа сервера истекло
- Сервер действовал как шлюз или прокси и не получил своевременного ответа от вышестоящего сервера.
- 505 Версия HTTP не поддерживается
- Сервер не поддерживает версию протокола HTTP, используемую в запросе.
- 506 вариант также согласовывается ( RFC 2295 )
- Прозрачное согласование содержимого для запроса приводит к циклической ссылке .
- 507 Недостаточно места для хранения (WebDAV; RFC 4918 )
- Сервер не может сохранить представление, необходимое для выполнения запроса.
- Обнаружен цикл 508 (WebDAV; RFC 5842 )
- Сервер обнаружил бесконечный цикл при обработке запроса (отправлено вместо 208 Already Reported ).
- 510 не расширенный ( RFC 2774 )
- Для его выполнения сервером требуются дальнейшие расширения запроса.
- 511 Требуется сетевая аутентификация ( RFC 6585 )
- Чтобы получить доступ к сети, клиенту необходимо пройти аутентификацию. Предназначен для использования путем перехвата прокси-серверов, используемых для управления доступом к сети (например, «перехватывающие порталы », используемые для запроса согласия с Условиями обслуживания перед предоставлением полного доступа в Интернет через точку доступа Wi-Fi ).
Неофициальные коды
Следующие ниже коды не определены никаким стандартом.
- 103 КПП
- Используется в предложении возобновляемых запросов для возобновления прерванных запросов PUT или POST.
- 218 Это нормально ( веб-сервер Apache )
- Используется как условие универсальной ошибки, позволяющее передавать тела ответов через Apache, когда включен ProxyErrorOverride. Когда ProxyErrorOverride включен в Apache, тела ответов, содержащие код состояния 4xx или 5xx, автоматически отклоняются Apache в пользу общего ответа или настраиваемого ответа, указанного в директиве ErrorDocument.
- 419 Страница истекла ( Laravel Framework )
- Используется Laravel Framework, когда токен CSRF отсутствует или просрочен.
- 420 Ошибка метода ( Spring Framework )
- Устаревший ответ, используемый Spring Framework при сбое метода.
- 420 Повышайте свое спокойствие ( Twitter )
- Возвращается версией 1 Twitter Search and Trends API, когда клиент ограничен по скорости; версии 1. 1 и более поздние используют код ответа 429 Too Many Requests . Фраза «Укрепите свое спокойствие» взята из фильма 1993 года « Человек-подрывник» , и ее связь с этим числом, вероятно, относится к каннабису .
- 430 Поля заголовка запроса слишком велики ( Shopify )
- Используется Shopify вместо кода ответа 429 Too Many Requests , когда слишком много URL-адресов запрашивается в течение определенного периода времени.
- 450 заблокировано родительским контролем Windows (Microsoft)
- Код расширения Microsoft указывает, что родительский контроль Windows включен и блокирует доступ к запрошенной веб-странице.
- 498 Неверный токен (Esri)
- Возвращено ArcGIS for Server . Код 498 указывает на просроченный или недействительный токен по иным причинам.
- Требуется 499 токенов (Esri)
- Возвращено ArcGIS for Server . Код 499 указывает на то, что токен требуется, но не был отправлен.
- 509 Превышен предел пропускной способности ( веб-сервер Apache / cPanel )
- Сервер превысил пропускную способность, указанную администратором сервера; это часто используется провайдерами виртуального хостинга для ограничения полосы пропускания клиентов.
- 526 Неверный сертификат SSL
- Используется Cloudflare и горутером Cloud Foundry для индикации сбоя проверки сертификата SSL / TLS, представленного исходным сервером.
- 529 Сайт перегружен
- Используется Qualys в сервере тестирования API SSLLabs , чтобы сигнализировать о том , что сайт не может обработать запрос.
- 530 Сайт заморожен
- Используется веб-платформой Pantheon для обозначения сайта, который был заблокирован из-за бездействия.
- 598 (Неофициальное соглашение) Ошибка тайм-аута сетевого чтения.
- Используется некоторыми прокси-серверами HTTP для передачи сигнала таймаута сетевого чтения за прокси-сервером клиенту перед прокси.
Информационные службы Интернета
Веб-сервер Microsoft Internet Information Services (IIS) расширяет область ошибок 4xx, чтобы сигнализировать об ошибках в запросе клиента.
- 440 Время ожидания входа в систему
- Срок действия сеанса клиента истек, и ему необходимо снова войти в систему.
- 449 Повторить с
- Сервер не может выполнить запрос, потому что пользователь не предоставил требуемую информацию.
- 451 перенаправление
- Используется в Exchange ActiveSync, когда доступен более эффективный сервер или сервер не может получить доступ к почтовому ящику пользователей. Ожидается, что клиент повторно запустит операцию HTTP AutoDiscover, чтобы найти более подходящий сервер.
IIS иногда использует дополнительные десятичные субкоды для получения более конкретной информации, однако эти субкоды появляются только в полезных данных ответа и в документации, а не вместо фактического кода состояния HTTP.
nginx
Программное обеспечение веб-сервера nginx расширяет область ошибок 4xx, чтобы сигнализировать о проблемах с запросом клиента.
- 444 Нет ответа
- Используется внутри для указания серверу не возвращать информацию клиенту и немедленно закрыть соединение.
- 494 Заголовок запроса слишком большой
- Клиент отправил слишком большой запрос или слишком длинную строку заголовка.
- 495 Ошибка сертификата SSL
- Расширение кода ответа 400 Bad Request , используемого, когда клиент предоставил недействительный сертификат клиента .
- 496 Требуется сертификат SSL
- Расширение кода ответа 400 Bad Request , используемого, когда сертификат клиента требуется, но не предоставляется.
- 497 HTTP-запрос отправлен на HTTPS-порт
- Расширение кода ответа 400 Bad Request , используемого, когда клиент отправил HTTP-запрос на порт, который прослушивает HTTPS-запросы.
- 499 Клиент закрытый запрос
- Используется, когда клиент закрыл запрос до того, как сервер смог отправить ответ.
Cloudflare
Сервис обратного прокси Cloudflare расширяет область ошибок серии 5xx, чтобы сигнализировать о проблемах с исходным сервером.
- Веб-сервер 520 возвратил неизвестную ошибку
- Исходный сервер вернул Cloudflare пустой, неизвестный или необъяснимый ответ.
- 521 Веб-сервер не работает
- Исходный сервер отклонил соединение с Cloudflare.
- 522 Время ожидания подключения истекло
- Cloudflare не удалось согласовать рукопожатие TCP с исходным сервером.
- 523 Источник недоступен
- Cloudflare не смог связаться с исходным сервером; например, если записи DNS для исходного сервера неверны.
- 524 Истекло время ожидания
- Cloudflare удалось установить TCP-соединение с исходным сервером, но не получил своевременного ответа HTTP.
- 525 SSL Handshake Failed
- Cloudflare не удалось согласовать рукопожатие SSL / TLS с исходным сервером.
- 526 Неверный сертификат SSL
- Cloudflare не удалось проверить сертификат SSL на исходном веб-сервере.
- 527 Ошибка рельсотрона
- Ошибка 527 указывает на прерванное соединение между Cloudflare и сервером Railgun исходного сервера.
- 530
- Ошибка 530 возвращается вместе с ошибкой 1xxx.
AWS Elastic Load Balancer
Amazon «s Elastic Load Balancing добавляет несколько пользовательских кодов возврата 4xx
460
Клиент закрыл соединение с балансировщиком нагрузки до истечения периода ожидания простоя. Обычно, когда время ожидания клиента меньше, чем время ожидания Elastic Load Balancer.
463
Балансировщик нагрузки получил заголовок запроса X-Forwarded-For с более чем 30 IP-адресами.
561 Неавторизованный
Ошибка аутентификации, возвращенная сервером, зарегистрированным в балансировщике нагрузки. Вы настроили правило прослушивателя для аутентификации пользователей, но поставщик удостоверений (IdP) вернул код ошибки при аутентификации пользователя.
Смотрите также
Заметки
использованная литература
внешние ссылки
200 | OK | IIS 7.0 и более поздних версий успешно обработали запрос. |
304 | Не изменено | Браузер клиента запрашивает документ, который уже находится в кэше, и документ не был изменен с момента кэшировать документ. Браузер клиента использует кэшную копию документа вместо загрузки документа с сервера. |
400 | Неудачный запрос | Файл стека протокола передачи гипертекста (Http.sys) блокирует обработку запроса в IIS 7.0 и более поздних версий из-за проблемы в запросе. Как правило, этот код состояния HTTP означает, что запрос содержит символы или последовательности, которые не являются допустимым, или что запрос противоречит настройкам безопасности в Http.sys файле. |
401.1 | Сбой при влиять на себя | Попытка доступа к учетной записи неуспешна, вероятно, из-за того, что имя пользователя или пароль не являются допустимым. |
401.2 | Сбой при доступе к данным из-за конфигурации сервера | Этот код состояния HTTP указывает на проблему в параметрах конфигурации проверки подлинности на сервере. |
401.3 | Неавторизованная из-за ACL для ресурса | Этот код состояния HTTP указывает на проблему в разрешениях файловой системы NTFS. Эта проблема может возникнуть, даже если для файла, к который вы пытаетесь получить доступ, имеются правильные разрешения. Например, эта проблема возникает, если учетная запись IUSR не имеет доступа к C:\Winnt\System32\Inetsrv каталогу. |
401.4 | Сбой авторизации с помощью фильтра | Фильтр ISAPI не дает возможность обрабатывать запрос из-за проблемы авторизации. |
401.5 | Сбой авторизации с помощью приложения ISAPI/CGI | Приложение ISAPI или приложение CGI не могут обрабатывать запрос из-за проблемы авторизации. |
403.1 | Запрещен доступ к выполнению | Соответствующий уровень разрешения «Выполнение» не предоставляется. |
403.2 | Доступ на чтение запрещен | Соответствующий уровень разрешения на чтение не предоставляется. Убедитесь, что вы настроили IIS 7.0 и более поздних версий, чтобы предоставить каталогу разрешение на чтение. Кроме того, при использовании документа по умолчанию убедитесь, что документ по умолчанию существует. |
403.3 | Доступ на записи запрещен | Соответствующий уровень разрешения на записи не предоставляется. Убедитесь, что разрешения IIS 7.0 и более поздних версий и разрешения файловой системы NTFS настроены для предоставления каталогу разрешения на записи. |
403.4 | Требуется SSL | Запрос передается через незасвеченный канал, и веб-приложению требуется SSL-подключение. |
403.5 | Требуется SSL 128 | Для сервера настроено 128-битное SSL-подключение. Однако запрос не отправляется с использованием 128-битного шифрования. |
403.6 | IP-адрес отклонен | Сервер настроен на запрет доступа к текущему IP-адресу. |
403.7 | Требуется сертификат клиента | Сервер настроен так, чтобы для проверки подлинности клиента требовался сертификат. Однако в браузере клиента не установлен соответствующий сертификат клиента. Дополнительные сведения см. в http-ошибке 403.7 при запуске веб-приложения, которое находится на сервере с IIS 7.0. |
403.8 | Доступ к сайту отказано | Сервер настроен на запрет запросов на основе DNS-имени клиентского компьютера. |
403.12 | Mapper denied access | Для страницы, к которую требуется получить доступ, требуется сертификат клиента. Однако доступ к файлу отказано в доступе к ИД пользователя, соединому с сертификатом клиента. |
403.13 | Клиентский сертификат отозван | Браузер клиента пытается использовать клиентский сертификат, который был отозван выдавным органом сертификации. |
403.14 | Отказано в перечне каталогов | Сервер не настроен для отображения списка каталогов контента, а документ по умолчанию не за установлен. see HTTP Error 403.14 — Forbidden when you open an IIS Webpage. |
403.16 | Сертификат клиента недостоверный или недопустимый. | Браузер клиента пытается использовать клиентский сертификат, который не является доверенным для сервера, на сервере с IIS 7.0 и более поздних версий или является недостоверным. Дополнительные сведения см. в http-ошибке 403.16при попытке доступа к веб-сайту, который имеется в IIS 7. 0. |
403.17 | Срок действия сертификата клиента истек или еще не действителен. | Браузер клиента пытается использовать сертификат клиента, срок действия которого истек или который еще не действителен. |
403.18 | Не удается выполнить запрашиваемую URL-адрес в текущем пуле приложений. | Настраиваемая страница ошибок настроена, а страница настраиваемой ошибки находится в пуле приложений, который отличается от пула приложений запрашиваемого URL-адреса. |
403.19 | Не удается выполнить приложения CGI для клиентского браузера в этом пуле приложений. | Удостоверение пула приложений не имеет права пользователя на замену маркера на уровне процесса. |
404.0 | Не найдено. | Файл, к который вы пытаетесь получить доступ, был перемещен или не существует. |
404.2 | Ограничение ISAPI или CGI. | На компьютере запрещен доступ к запрашиваемой ресурсу ISAPI или ресурсу CGI. Дополнительные сведения см. в ошибке HTTP 404.2 при посещении веб-страницы, которая находится на компьютере под управлением IIS 7.0. |
404.3 | Ограничение типа MIME. | Текущее сопоставление MIME для запрашиваемого типа расширения не является допустимым или не настроено. |
404.4 | Обработатор не настроен. | Расширение имени файла запрашиваемого URL-адреса не имеет обработка, настроенная для обработки запроса на веб-сервере. |
404.5 | Отклонено конфигурацией фильтрации запросов. | Запрашиваемая последовательность содержит последовательность символов, заблокированную сервером. |
404.6 | Отказано в глаголе. | Запрос сделан с помощью команды HTTP, которая не настроена или не является допустимой. |
404.7 | Расширение файла отклонено. | Запрашиваемая расширение имени файла не разрешена. |
404.8 | Скрытое пространство имен. | Запрашивается URL-адрес, так как каталог скрыт. |
404.9 | Атрибут Files скрыт. | Запрашиваемая папка скрыта. |
404.10 | Слишком длинный заголок запроса. | Запрос отклонен, так как слишком длинные заглавные данные запроса. |
404.11 | Запрос содержит двойную escape-последовательность. | Запрос содержит двойную escape-последовательность. |
404.12 | Запрос содержит высоко битные символы. | Запрос содержит высоко битные символы, и сервер настроен на то, чтобы не разрешались высоко битные символы. |
404.13 | Слишком большая длина содержимого. | Запрос содержит Content-Length заголок. Значение загона превышает допустимый предел Content-Length для сервера. Дополнительные сведения см. в http-ошибке 404.13 CONTENT_LENGTH_TOO_LARGEпри посещении веб-сайта, который находится на сервере с IIS 7.0. |
404. 14 | Слишком длинный URL-адрес запроса. | Запрашиваемая URL-адрес превышает ограничение, допустимые для сервера. |
404.15 | Слишком длинная строка запроса. | Запрос содержит строку запроса, которая превышает допустимый предел для сервера. |
404.17 | Динамическое содержимое, соединяемое с статическим обработом файлов. | Дополнительные сведения см. в сообщении об ошибке при посещении веб-сайта, который находится в IIS 7.0: ошибка HTTP 404.17 — не найдена. |
405.0 | Метод не разрешен. | Запрос сделан с помощью не допустимого метода HTTP. Дополнительные сведения см. в ошибке HTTP 405.0при посещении веб-сайта, который находится на сервере под управлением IIS. |
406.0 | Недопустимый тип MIME. | Запрос сделан с использованием Accept загона, который содержит значение MIME, которое не является допустимым. |
412.0 | Сбой предварительного условия. | Запрос сделан с использованием If-Match загона запроса, который содержит значение, которое не является допустимым. |
500 | Внутренняя ошибка сервера. | Этот код состояния HTTP может возникать по многим причинам на стороне сервера. Дополнительные сведения см. в http-ошибке 500.0 —внутренняя ошибка сервера при открываемой веб-странице IIS 7.0. |
500.11 | Приложение выключается на веб-сервере. | Запрос не обрабатывается, так как пул приложений назначения закрывается. Подождите, пока рабочий процесс завершит работу, а затем еще раз попробуйте запрос. Если эта проблема сохраняется, в веб-приложении могут возникнуть проблемы, которые препятствуют корректной остановке веб-приложения. |
500.12 | Приложение занято перезапуском на веб-сервере. | Запрос не обрабатывается из-за перезапуска пула приложений назначения. Этот код состояния HTTP должен исчезнуть при обновлении страницы. Если этот код состояния HTTP появится снова после обновления страницы, проблема может быть вызвана антивирусной программой, которая сканирует файл Global. asa. Если эта проблема сохраняется, в веб-приложении могут возникнуть проблемы, препятствующие корректной перезагрузке веб-приложения. |
500.13 | Веб-сервер занят. | Запрос не обрабатывается, так как сервер занят, чтобы принимать новые входящие запросы. Как правило, этот код состояния HTTP означает, что число входящих одновременно запрашиваемой информации превышает число, которое может обработать веб-приложение IIS 7.0 и более поздних версий. Эта проблема может возникнуть из-за слишком низкого уровня параметров конфигурации производительности, нехватки оборудования или возникновения узкого места в веб-приложении IIS 7.0 и более поздних версий. Распространенный способ устранения неполадок — создание файла дампа памяти процессов IIS 7.0 и более поздних версий при ошибке, а затем отладка файла дампа памяти. |
500.15 | Прямые запросы global.asax не разрешены. | Прямой запрос файла Global.asa или Global.asax. |
500.19 | Недопустимые данные конфигурации. | Этот код состояния HTTP возникает из-за проблемы в связанном applicationhost.config или связанном Web.config файле. Дополнительные сведения см. в http-ошибке 500.19 при открываемой веб-странице IIS. |
500.100 | Внутренняя ошибка ASP. | Ошибка возникает во время обработки страницы ASP (ASP). Чтобы получить более конкретные сведения об ошибке, отключать сообщения об ошибках HTTP в веб-браузере. Кроме того, в журнале IIS может быть номер ошибки ASP, соответствующий ошибке. |
503.0 | Служба недоступна. | Запрос отправляется в пул приложений, который в настоящее время остановлен или отключен. Чтобы устранить эту проблему, убедитесь, что запущен пул приложений назначения. В журнале событий могут быть сведения о том, почему пул приложений остановлен или отключен. |
503.2 | Превышено ограничение одновременного запроса. | Для свойства устанавливается значение, меньшее, чем текущее число одновременно appConcurrentRequestLimit запрашиваемой информации. IIS 7.0 и более поздних версий не позволяют использовать большее количество одновременно запрашиваемого значения, чем значение appConcurrentRequestLimit свойства. |
Получить код состояния HTTP (HTTP status code)
Код состояния HTTP — это возвращенный веб сервером результат выполнения запроса (всё ок, ошибка, редирект, и т.д.)
Подробнее о кодах состояния (и их допустимых значениях) можно почитать в Википедии
При парсинге, часто требуется получить значение кода состояния, — например, в задачах SEO, когда требуется проверить список URL на наличие недоступных страниц, или редиректов.
Например, получение кода состояния используется для проверки проиндексированных страниц из Яндекс.Вебмастера
Задача осложняется тем, что при загрузке одной страницы, сервер может возвращать НЕСКОЛЬКО разных значений кода состояния, — так, например, сначала может быть код ответа 301 (редирект), а потом 200 (всё ок), так как, по факту, выполняется последовательно 2 или более запросов.
Штатными средствами парсера для просмотра заголовков ответа сервера, мы видим только последний ответ сервера (код состояния 200, 403 или 404) — тот, который следует уже после редиректа.
Когда нам надо получить и первый код состояния (например, редирект 301 или 302), и последний (например, 200 или 404),
то в парсере следует использовать действие, выполняющее запрос с сохранением Cookies (только такие действия отключают автоматический авторедирект, выполняя все редиректы последовательно, чтобы записать Cookies при каждом из редиректов).
Таких действия в парсере всего три:
- Загрузить страницу с приёмом Cookies
- Авторизация на сайте
- Отправить HTTP запрос и получить ответ сервера (если включена опция «Сохранять Cookies»)
После выполнению любого из этих действий, в парсере становятся доступны 3 переменные, содержащие информацию о кодах состояния:
- FirstHttpStatusCode — код состояния исходный (при выполнении первого запроса)
- LastHttpStatusCode — код состояния конечный (при выполнении последнего запроса, если их было несколько)
- LastRedirectURL — URL страницы, на которую привёл последний из редиректов
Посмотрим на примере, когда переход по ссылке вызывает редирект:
Действие | Параметр | Значение |
---|---|---|
Загрузить страницу с приёмом Cookies | URL | |
Создать новый экземпляр WinHttpRequest | нет | |
Кодировка веб-страницы | ||
Задать новое значение | Новое значение | Первый код состояния: %FirstHttpStatusCode%{NL}Последний код состояния: %LastHttpStatusCode%{NL}URL редиректа: %LastRedirectURL% |
Сохранить результат в переменную | ||
Использовать новое значение | да |
Исходное значение | Результат | |
---|---|---|
http://excelvba. ru/EducatedFool | Первый код состояния: 303 Последний код состояния: 200 URL редиректа: http://ExcelVBA.ru/about/author |
Другой пример (где страница по ссылке доступна, никаких редиректов нет):
Действие | Параметр | Значение |
---|---|---|
Загрузить страницу с приёмом Cookies | URL | |
Создать новый экземпляр WinHttpRequest | нет | |
Кодировка веб-страницы | ||
Задать новое значение | Новое значение | Первый код состояния: %FirstHttpStatusCode%{NL}Последний код состояния: %LastHttpStatusCode%{NL}URL редиректа: %LastRedirectURL% |
Сохранить результат в переменную | ||
Использовать новое значение | да |
Исходное значение | Результат | |
---|---|---|
http://excelvba. ru/programmes/Parser | Первый код состояния: 200 Последний код состояния: 200 URL редиректа: |
Если же мы используем для загрузки страницы действие, работающее без сохранения Cookies, — то мы НЕ получим информацию о редиректе:
Действие | Параметр | Значение |
---|---|---|
Загрузить ИСХОДНЫЙ КОД веб-страницы | URL | |
Кодировка веб-страницы | ||
Загружать все страницы результатов | ||
Кеширование | ||
Задать новое значение | Новое значение | Первый код состояния: %FirstHttpStatusCode%{NL}Последний код состояния: %LastHttpStatusCode%{NL}URL редиректа: %LastRedirectURL% |
Сохранить результат в переменную | ||
Использовать новое значение | да |
Исходное значение | Результат | |
---|---|---|
http://excelvba. ru/EducatedFool | Первый код состояния: Последний код состояния: 200 URL редиректа: |
Если же мы используем действие «Загрузить исходный код веб-страницы» с опцией загрузки «direct», то кодом последнего состояния будет текст ok или err, в зависимости от того, загрузилась страница, или нет:
Действие | Параметр | Значение |
---|---|---|
Загрузить ИСХОДНЫЙ КОД веб-страницы | URL | |
Кодировка веб-страницы | direct | |
Загружать все страницы результатов | ||
Кеширование | ||
Задать новое значение | Новое значение | Первый код состояния: %FirstHttpStatusCode%{NL}Последний код состояния: %LastHttpStatusCode%{NL}URL редиректа: %LastRedirectURL% |
Сохранить результат в переменную | ||
Использовать новое значение | да |
Исходное значение | Результат | |
---|---|---|
http://excelvba. ru/ | Первый код состояния: Последний код состояния: ok URL редиректа: |
Действие | Параметр | Значение |
---|---|---|
Загрузить ИСХОДНЫЙ КОД веб-страницы | URL | |
Кодировка веб-страницы | direct | |
Загружать все страницы результатов | ||
Кеширование | ||
Задать новое значение | Новое значение | Первый код состояния: %FirstHttpStatusCode%{NL}Последний код состояния: %LastHttpStatusCode%{NL}URL редиректа: %LastRedirectURL% |
Сохранить результат в переменную | ||
Использовать новое значение | да |
Исходное значение | Результат | |
---|---|---|
http://unavailable. domain/ | Первый код состояния: Последний код состояния: err URL редиректа: |
HTTP / 1.1: определения кода состояния
HTTP / 1.1: определения кода состояния часть протокола передачи гипертекста — HTTP / 1.1RFC 2616 Fielding, et al.
10 Определений кодов состояния
Каждый код состояния описан ниже, включая описание того, методы, которым он может следовать, и любую метаинформацию, требуемую в ответ.
10.1 Информационная 1xx
Этот класс кода состояния указывает на предварительный ответ, состоящий только из строки состояния и дополнительных заголовков, и заканчивается пустой строкой.Для этого нет обязательных заголовков класс кода состояния. Поскольку HTTP / 1.0 не определял статус 1xx коды, серверы НЕ ДОЛЖНЫ отправлять ответ 1xx клиенту HTTP / 1.0 за исключением экспериментальных условий.
Клиент ДОЛЖЕН быть готов принять один или несколько статусных ответов 1xx до регулярного ответа, даже если клиент не ожидает 100 (Продолжить) статусное сообщение. Неожиданные ответы статуса 1xx МОГУТ быть игнорируется пользовательским агентом.
Прокси-серверы ДОЛЖНЫ пересылать ответы 1xx, если только соединение между прокси и его клиент были закрыты, или если сам прокси запросил генерацию ответа 1xx. (Например, если
прокси добавляет поле «Expect: 100-continue» при пересылке запроса, тогда ему не нужно пересылать соответствующие 100 (Продолжить) ответ (ы).)
10.1.1 100 Продолжить
Клиент ДОЛЖЕН продолжить выполнение своего запроса.Этот промежуточный ответ используется для информирования клиента о том, что в начальной части запроса был получен и еще не отклонен сервером. Клиент СЛЕДУЕТ продолжить, отправив оставшуюся часть запроса или, если запрос уже выполнен, игнорируйте этот ответ. Сервер ДОЛЖЕН отправить окончательный ответ после завершения запроса. Увидеть раздел 8.2.3 для подробного обсуждения использования и обработки этого код состояния.
10.
1.2 101 Протоколы коммутацииСервер понимает и готов выполнять требования клиента запрос через поле заголовка сообщения Upgrade (раздел 14.42) для изменение протокола приложения, используемого для этого соединения. В сервер переключит протоколы на те, которые определены в ответе Обновите поле заголовка сразу после пустой строки, завершает ответ 101.
Протокол СЛЕДУЕТ переключать только тогда, когда это выгодно так.Например, переход на более новую версию HTTP выгоден. по сравнению с более старыми версиями и переключение на синхронный режим реального времени протокол может быть выгоден при доставке ресурсов, использующих такие особенности.
10.2 Успешно 2xx
Этот класс кода состояния указывает, что запрос клиента был успешно получен, понят и принят.
10.2.1 200 ОК
Запрос выполнен. Информация, возвращенная с ответом зависит от метода, используемого в запросе, например:
GET сущность, соответствующая запрошенному ресурсу, отправляется в ответ;
HEAD поля заголовка объекта, соответствующие запрошенному ресурс отправляется в ответе без тела сообщения;
POST объект, описывающий или содержащий результат действия;
TRACE сущность, содержащая сообщение запроса, полученное конечный сервер.
10.2.2 201 Создано
Запрос был выполнен и в результате появился новый ресурс. создан. На вновь созданный ресурс можно ссылаться с помощью URI (ов) возвращается в сущности ответа с наиболее конкретным URI для ресурса, заданного полем заголовка Location. Ответ СЛЕДУЕТ включать объект, содержащий список ресурсов характеристики и местоположение (а), из которых пользователь или пользовательский агент может выберите наиболее подходящий.Формат объекта определяется тип мультимедиа, указанный в поле заголовка Content-Type. Происхождение сервер ДОЛЖЕН создать ресурс перед возвратом кода состояния 201. Если действие не может быть выполнено немедленно, серверу СЛЕДУЕТ вместо этого ответьте 202 (принято).
Ответ 201 МОЖЕТ содержать поле заголовка ответа ETag, указывающее текущее значение тега объекта для запрошенного варианта просто создан, см. раздел 14.19.
10.2.3 202 Принято
Запрос принят в обработку, но обработка не завершено. Запрос может быть или не быть в конечном итоге действует, так как это может быть запрещено, когда обработка действительно занимает место. Нет возможности повторно отправить код состояния из асинхронная операция, такая как эта.
Ответ 202 намеренно ни к чему не обязывает. Его цель — разрешить серверу принять запрос на какой-либо другой процесс (возможно, пакетный процесс, который запускается только один раз в день) без требовать, чтобы соединение пользовательского агента с сервером сохранялось пока процесс не завершится.Сущность, возвращенная с этим ответ ДОЛЖЕН включать указание текущего статуса запроса и либо указатель на монитор состояния, либо некоторая оценка того, когда пользователь может ожидать, что запрос будет выполнен.
10.2.4 203 Неавторизованная информация
Возвращенная метаинформация в заголовке объекта не является окончательный набор, доступный с исходного сервера, но собранный с локальной или сторонней копии. Представленный набор МОЖЕТ быть подмножеством или надмножество оригинальной версии.Например, включая местные аннотация информация о ресурсе может привести к надмножеству метаинформации, известной исходному серверу. Использование этого код ответа не требуется и подходит только тогда, когда в противном случае ответ был бы 200 (ОК).
10.2.5 204 Нет содержимого
Сервер выполнил запрос, но ему не нужно возвращать entity-body и может захотеть вернуть обновленную метаинформацию. В ответ МОЖЕТ включать новую или обновленную метаинформацию в виде заголовки объектов, которые, если они присутствуют, ДОЛЖНЫ быть связаны с запрошенный вариант.
Если клиент является пользовательским агентом, ему НЕ СЛЕДУЕТ изменять вид документа. от того, что вызвало отправку запроса. Этот ответ в первую очередь предназначен для ввода данных о действиях без вызывает изменение активного вида документа пользовательского агента, хотя любая новая или обновленная метаинформация ДОЛЖНА быть применена к документу в настоящее время находится в активном представлении пользовательского агента.
Ответ 204 НЕ ДОЛЖЕН включать тело сообщения, и поэтому всегда заканчивается первой пустой строкой после полей заголовка.
10.2.6 205 Сбросить содержимое
Сервер выполнил запрос, и пользовательский агент ДОЛЖЕН выполнить сброс вид документа, вызвавший отправку запроса. Этот ответ в первую очередь предназначен для ввода данных о действиях, выполняемых через пользовательский ввод, за которым следует очистка формы, в которой вводится задано, чтобы пользователь мог легко инициировать другое действие ввода. В ответ НЕ ДОЛЖЕН включать сущность.
10.2.7 206 Частичное содержимое
Сервер выполнил частичный запрос GET для ресурса. Запрос ДОЛЖЕН содержать поле заголовка диапазона (раздел 14.35). указывая желаемый диапазон, и МОЖЕТ включать If-Range поле заголовка (раздел 14.27), чтобы сделать запрос условным.
Ответ ДОЛЖЕН включать следующие поля заголовка:
- Либо поле заголовка Content-Range (раздел 14. 16), указывающее диапазон, включенный в этот ответ, или multipart / byteranges Content-Type, включая поля Content-Range для каждой части.Если Поле заголовка Content-Length присутствует в ответе, его значение ДОЛЖНО соответствовать фактическому количеству OCTET, переданных в тело сообщения.
- Дата
- ETag и / или Content-Location, если заголовок был бы отправлен в ответе 200 на тот же запрос
- Истекает, Cache-Control и / или Vary, если значение поля может отличается от ответа, отправленного в любом предыдущем ответе на тот же вариант
Если ответ 206 является результатом запроса If-Range, который использовал сильный валидатор кеша (см. раздел 13.3.3), ответ НЕ ДОЛЖЕН включить другие заголовки сущностей. Если ответ является результатом Запрос If-Range, который использовал слабый валидатор, ответ НЕ ДОЛЖЕН включить другие заголовки сущностей; это предотвращает несоответствие между кэшированные тела сущностей и обновленные заголовки. В противном случае ответ ДОЛЖЕН включать все заголовки объектов, которые были бы возвращены с ответом 200 (OK) на тот же запрос.
Кэш НЕ ДОЛЖЕН объединять ответ 206 с другими ранее кэшированными содержимое, если заголовки ETag или Last-Modified не совпадают в точности, см. 13.5.4.
Кеш, который не поддерживает заголовки Range и Content-Range. НЕ ДОЛЖНЫ кэшировать 206 (частичных) ответов.
10.3 Перенаправление 3xx
Этот класс кода состояния указывает, что необходимо предпринять дальнейшие действия. берется пользовательским агентом для выполнения запроса. Действие требуется МОЖЕТ выполняться пользовательским агентом без взаимодействия с пользователем тогда и только тогда, когда метод, используемый во втором запросе, ПОЛУЧИТЬ или ГОЛОВУ.Клиент ДОЛЖЕН обнаруживать бесконечные циклы перенаправления, поскольку такие петли генерируют сетевой трафик для каждого перенаправления.
Примечание: предыдущие версии этой спецификации рекомендовали максимум пять перенаправлений. Разработчики контента должны знать что могут быть клиенты, которые реализуют такой фиксированный ограничение.
10.3.1 300 Множественный выбор
Запрошенный ресурс соответствует любому из набора представительства, каждое со своим конкретным местоположением, и агент- информация о переговорах (раздел 12) предоставляется для того, чтобы пользователь (или пользовательский агент) может выбрать предпочтительное представление и перенаправить свой запрос в это место.
Если это не запрос HEAD, ответ ДОЛЖЕН включать объект содержащий список характеристик ресурса и местоположения (а) из который пользователь или пользовательский агент может выбрать наиболее подходящий. В формат объекта определяется типом носителя, указанным в Content- Введите поле заголовка. В зависимости от формата и возможностей
агент пользователя, выбор наиболее подходящего варианта МОЖЕТ быть выполняется автоматически.Однако эта спецификация не определяет любой стандарт для такого автоматического выбора.
Если у сервера есть предпочтительный выбор представления, он ДОЛЖЕН включить конкретный URI для этого представления в Location поле; пользовательские агенты МОГУТ использовать значение поля Location для автоматического перенаправление. Этот ответ кэшируется, если не указано иное.
10.3.2 301 Постоянно перемещен
Запрошенному ресурсу был назначен новый постоянный URI и любой будущие ссылки на этот ресурс ДОЛЖНЫ использовать один из возвращенных URI.Клиенты с возможностью редактирования ссылок должны автоматически повторно связать ссылки на Request-URI с одним или несколькими новыми ссылки, возвращаемые сервером, где это возможно. Этот ответ кэшируемые, если не указано иное.
Новый постоянный URI ДОЛЖЕН быть указан в поле Location в ответ. Если метод запроса не был HEAD, сущность ответ ДОЛЖЕН содержать короткую гипертекстовую заметку с гиперссылкой на новый URI.
Если код состояния 301 получен в ответ на запрос другой чем GET или HEAD, пользовательский агент НЕ ДОЛЖЕН автоматически перенаправлять запрос, если он не может быть подтвержден пользователем, поскольку это может изменить условия, при которых был оформлен запрос.
Примечание: при автоматическом перенаправлении запроса POST после получение кода состояния 301, некоторые существующие пользовательские агенты HTTP / 1.0 ошибочно изменит его на запрос GET.
10.3.3 302 Найдено
Запрошенный ресурс временно находится под другим URI. Поскольку перенаправление может быть изменено при случае, клиенту СЛЕДУЕТ продолжать использовать Request-URI для будущих запросов. Этот ответ кэшируется, только если указано в заголовке Cache-Control или Expires поле.
Временный URI ДОЛЖЕН быть задан полем Location в ответ. Если метод запроса не был HEAD, сущность ответ ДОЛЖЕН содержать короткую гипертекстовую заметку с гиперссылкой на новый URI.
Если код состояния 302 получен в ответ на запрос другой чем GET или HEAD, пользовательский агент НЕ ДОЛЖЕН автоматически перенаправлять запрос, если он не может быть подтвержден пользователем, поскольку это может изменить условия, при которых был оформлен запрос.
Примечание: RFC 1945 и RFC 2068 указывают, что клиент не разрешен для изменения метода перенаправленного запроса. Однако большинство существующие реализации пользовательского агента обрабатывают 302, как если бы это был 303 ответ, выполняющий GET для значения поля Location независимо от исходного метода запроса.Коды состояния 303 и 307 имеют добавлено для серверов, которые хотят однозначно указать, какие ожидается реакция клиента.
10.3.4 303 См. Другие
Ответ на запрос можно найти под другим URI и ДОЛЖЕН быть получен с использованием метода GET для этого ресурса. Этот способ существует прежде всего для того, чтобы разрешить вывод сценария, активированного POST, на перенаправить пользовательский агент на выбранный ресурс.Новый URI не является замените ссылку на первоначально запрошенный ресурс. 303 ответ НЕ ДОЛЖЕН быть кэширован, но ответ на второй (перенаправленный) запрос может быть кэшируемым.
Другой URI СЛЕДУЕТ указывать в поле Location в ответ. Если метод запроса не был HEAD, сущность ответ ДОЛЖЕН содержать короткую гипертекстовую заметку с гиперссылкой на новый URI.
Примечание: многие версии до HTTP / 1.1 пользовательские агенты не понимают 303 статус. Когда возможность взаимодействия с такими клиентами вызывает беспокойство, Вместо этого можно использовать код состояния 302, поскольку большинство пользовательских агентов реагируют на ответ 302, как описано здесь для 303.
10.3.5 304 Без изменений
Если клиент выполнил условный запрос GET и доступ разрешено, но документ не был изменен, сервер ДОЛЖЕН ответьте этим кодом состояния. Ответ 304 НЕ ДОЛЖЕН содержать message-body, и поэтому всегда заканчивается первой пустой строкой после полей заголовка.
Ответ ДОЛЖЕН включать следующие поля заголовка:
- Дата, если ее пропуск не требуется согласно разделу 14. 18.1
Если исходный сервер без часов подчиняется этим правилам, и прокси и клиенты добавляют свою дату к любому ответу, полученному без нее (как уже указано в [RFC 2068], раздел 14.19), кеши будут работать правильно.
- ETag и / или Content-Location, если заголовок был бы отправлен в ответе 200 на тот же запрос
- Истекает, Cache-Control и / или Vary, если значение поля может отличается от ответа, отправленного в любом предыдущем ответе на тот же вариант
Если условный GET использует сильный валидатор кеша (см. Раздел 13.3.3), ответ НЕ ДОЛЖЕН включать другие заголовки объектов. В противном случае (т. Е. Условный GET использовал слабый валидатор) ответ НЕ ДОЛЖЕН включать другие заголовки объектов; это предотвращает несоответствия между кэшированными телами сущностей и обновленными заголовками.
Если ответ 304 указывает на то, что объект в настоящий момент не кэширован, то кеш ДОЛЖЕН игнорировать ответ и повторять запрос без условный.
Если кэш использует полученный ответ 304 для обновления записи кэша, кеш ДОЛЖЕН обновить запись, чтобы отразить любые новые значения полей, указанные в ответ.
10.3.6 305 Использовать прокси
Доступ к запрошенному ресурсу ДОЛЖЕН быть доступен через прокси, предоставленный поле Местоположение. В поле Location указывается URI прокси. Ожидается, что получатель повторит этот единственный запрос через прокси. 305 ответов ДОЛЖНЫ генерироваться только исходными серверами.
Примечание. В RFC 2068 не было ясно, что 305 предназначен для перенаправления единый запрос, который должен генерироваться только исходными серверами.Не соблюдение этих ограничений имеет серьезные последствия для безопасности.
10.3.7 306 (Не используется)
Код состояния 306 использовался в предыдущей версии спецификация, больше не используется, а код зарезервирован.
10.3.8 307 Временное перенаправление
Запрошенный ресурс временно находится под другим URI. Поскольку перенаправление МОЖЕТ время от времени изменяться, клиенту СЛЕДУЕТ продолжать использовать Request-URI для будущих запросов.Этот ответ кэшируется, только если указано в заголовке Cache-Control или Expires поле.
Временный URI ДОЛЖЕН быть задан полем Location в ответ. Если метод запроса не был HEAD, сущность ответ ДОЛЖЕН содержать короткую гипертекстовую заметку с гиперссылкой на новый URI, поскольку многие пользовательские агенты до HTTP / 1.1 не понять статус 307. Поэтому примечание ДОЛЖНО содержать информация, необходимая пользователю для повторения исходного запроса на новый URI.
Если код состояния 307 получен в ответ на запрос другой чем GET или HEAD, пользовательский агент НЕ ДОЛЖЕН автоматически перенаправлять запрос, если он не может быть подтвержден пользователем, поскольку это может изменить условия, при которых был оформлен запрос.
10.4 Ошибка клиента 4xx
Код состояния класса 4xx предназначен для случаев, когда клиент, похоже, ошибся. За исключением ответа на запрос HEAD, сервер ДОЛЖЕН включать объект, содержащий объяснение ошибочная ситуация, временная или постоянная состояние.Эти коды состояния применимы к любому методу запроса. Пользовательские агенты ДОЛЖНЫ отображать пользователю любую включенную сущность.
Если клиент отправляет данные, реализация сервера с использованием TCP СЛЕДУЕТ быть осторожным, чтобы убедиться, что клиент подтверждает получение пакет (ы), содержащий ответ, до того, как сервер закроет входное соединение. Если клиент продолжает отправлять данные на сервер после закрытия стек TCP сервера отправит пакет сброса в клиент, который может стереть неподтвержденные входные буферы клиента прежде, чем они могут быть прочитаны и интерпретированы приложением HTTP.
10.4.1 400 неверный запрос
Запрос не может быть понят сервером из-за неправильного формата синтаксис. Клиенту НЕ СЛЕДУЕТ повторять запрос без модификации.
10.
4.2 401 НеавторизованныйЗапрос требует аутентификации пользователя. Ответ ДОЛЖЕН содержать Поле заголовка WWW-Authenticate (раздел 14.47), содержащее запрос применимо к запрошенному ресурсу. Клиент МОЖЕТ повторить запрос с подходящим полем заголовка авторизации (раздел 14.8). Если запрос уже включает учетные данные для авторизации, затем 401 ответ указывает на то, что в авторизации было отказано для тех учетные данные. Если ответ 401 содержит тот же вызов, что и предыдущий ответ, и пользовательский агент уже попытался аутентификации хотя бы один раз, тогда пользователю СЛЕДУЕТ предоставить объект, который был указан в ответе, поскольку этот объект может включить соответствующую диагностическую информацию. Аутентификация доступа HTTP объясняется в разделе «HTTP-аутентификация: базовый и дайджест-доступ» Аутентификация »[43].
10.4.3 402 Требуется оплата
Этот код зарезервирован для использования в будущем.
10.4.4 403 Запрещено
Сервер понял запрос, но отказывается его выполнить. Авторизация не поможет, и запрос НЕ ДОЛЖЕН повторяться. Если метод запроса не был HEAD и сервер хочет сделать публично, почему запрос не был выполнен, ДОЛЖЕН описать причина отказа в субъекте.Если сервер не желает сделать эту информацию доступной для клиента, код состояния 404 Вместо этого можно использовать (Not Found).
10.4.5 404 Не найдено
Сервер не нашел ничего, соответствующего Request-URI. Нет указывается, является ли состояние временным или постоянный. Код состояния 410 (Gone) ДОЛЖЕН использоваться, если сервер через некоторый внутренне настраиваемый механизм знает, что старый ресурс постоянно недоступен и не имеет адреса пересылки.Этот код состояния обычно используется, когда сервер не желает точно раскрыть, почему запрос был отклонен, или когда никто ответ применим.
10.4.6 405 Метод запрещен
Метод, указанный в строке запроса, не разрешен для ресурс, идентифицированный Request-URI. Ответ ДОЛЖЕН содержать Разрешить заголовок, содержащий список допустимых методов для запрошенного ресурс.
10.4.7 406 Неприемлемо
Ресурс, указанный в запросе, может только генерировать объекты ответа, у которых характеристики содержимого неприемлемы в соответствии с заголовками accept, отправленными в запросе.
Если это не запрос HEAD, ответ ДОЛЖЕН включать объект содержащий список доступных характеристик объекта и местоположения (а) из которых пользователь или пользовательский агент могут выбрать наиболее подходящее.Формат объекта определяется заданным типом носителя. в поле заголовка Content-Type. В зависимости от формата и формата возможности пользовательского агента, выбор наиболее подходящего выбор МОЖЕТ быть выполнен автоматически. Однако эта спецификация не определяет никаких стандартов для такого автоматического выбора.
Примечание. Серверы HTTP / 1.1 могут возвращать ответы, неприемлемо в соответствии с заголовками accept, отправленными в запрос. В некоторых случаях это может быть даже предпочтительнее отправки 406 ответ. Пользовательским агентам рекомендуется проверять заголовки входящий ответ, чтобы определить, приемлемо ли это.
Если ответ может быть неприемлемым, пользовательскому агенту СЛЕДУЕТ временно прекратить получение дополнительных данных и запросить у пользователя решение о дальнейших действиях.
10.4.8 407 Требуется проверка подлинности прокси
Этот код похож на 401 (Неавторизованный), но указывает, что клиент должен сначала аутентифицироваться с помощью прокси.Прокси-сервер ДОЛЖЕН вернуть поле заголовка Proxy-Authenticate (раздел 14.33), содержащее проблема, применимая к прокси для запрошенного ресурса. В клиент МОЖЕТ повторить запрос с подходящей прокси-авторизацией поле заголовка (раздел 14.34). Объясняется аутентификация доступа HTTP в «HTTP-аутентификации: базовая и дайджест-аутентификация доступа» [43].
10.
4.9 408 Тайм-аут запросаКлиент не отправил запрос в течение времени, которое сервер был готов ждать.Клиент МОЖЕТ повторить запрос без модификации в любое время.
10.4.10 409 Конфликт
Запрос не может быть выполнен из-за конфликта с текущим состояние ресурса. Этот код разрешен только в ситуациях, когда ожидается, что пользователь сможет разрешить конфликт и повторно отправьте запрос. Тело ответа ДОЛЖНО включать достаточно
информация, позволяющая пользователю распознать источник конфликта.В идеале объект ответа должен включать достаточно информации для пользователь или пользовательский агент, чтобы исправить проблему; однако это может быть не так можно и не обязательно.
Конфликты чаще всего возникают в ответ на запрос PUT. Для Например, если использовалось управление версиями, а объект PUT включены изменения в ресурс, которые противоречат изменениям, внесенным более ранний (сторонний) запрос, сервер может использовать ответ 409 чтобы указать, что он не может выполнить запрос. В этом случае объект ответа, вероятно, будет содержать список различий между двумя версиями в формате, определяемом ответом Тип содержимого.
10.4.11 410 Исчез
Запрошенный ресурс больше недоступен на сервере и нет адрес пересылки известен. Ожидается, что это состояние будет считается постоянным. Клиенты с возможностью редактирования ссылок ДОЛЖНЫ удалить ссылки на Request-URI после утверждения пользователем.Если сервер не знает или не имеет возможности определить, действительно ли состояние является постоянным, ДОЛЖЕН быть код состояния 404 (Не найдено) вместо этого. Этот ответ кэшируется, если не указано иное.
Ответ 410 в первую очередь предназначен для решения задач веб- обслуживание путем уведомления получателя о том, что ресурс намеренно недоступен, и что владельцы серверов хотят, чтобы удаленные ссылки на этот ресурс должны быть удалены.Такое событие характерно для ограниченные по времени рекламные услуги и ресурсы, принадлежащие лица, больше не работающие на сайте сервера. Это не так необходимо отметить все постоянно недоступные ресурсы как «пропавшие» или сохранить метку в течение любого периода времени — это оставлено на усмотрение усмотрение владельца сервера.
10.4.12 411 Требуемая длина
Сервер отказывается принять запрос без определенного Content- Длина.Клиент МОЖЕТ повторить запрос, если он добавляет действительный Поле заголовка Content-Length, содержащее длину тела сообщения в сообщении запроса.
10.4.13 412 Ошибка предварительного условия
Предварительное условие, указанное в одном или нескольких полях заголовка запроса оценивается как ложь при тестировании на сервере. Этот ответ код позволяет клиенту ставить предварительные условия на текущий ресурс метаинформации (данные поля заголовка) и, таким образом, предотвратить запрошенную метод от применения к ресурсу, отличному от предполагаемого.
10.4.14 413 Слишком большой объект запроса
Сервер отказывается обрабатывать запрос, потому что запрос объект больше, чем сервер хочет или может обработать. В сервер МОЖЕТ закрыть соединение, чтобы клиент не продолжил запрос.
Если условие является временным, серверу СЛЕДУЕТ включать команду Retry- Поле заголовка после, чтобы указать, что это временно и после чего время клиент МОЖЕТ повторить попытку.
10.4.15 414 Слишком длинный URI запроса
Сервер отказывается обслуживать запрос, потому что Request-URI длиннее, чем сервер готов интерпретировать. Этот редкий состояние может возникнуть только тогда, когда клиент неправильно преобразовал запрос POST в запрос GET с длинным запросом информации, когда клиент спустился в «черную дыру» URI перенаправление (например, префикс перенаправленного URI, указывающий на суффикс сам), или когда сервер подвергается атаке со стороны клиента, пытающегося использовать дыры в безопасности, имеющиеся на некоторых серверах, с помощью фиксированной длины буферы для чтения или управления Request-URI.
10.4.16 415 Неподдерживаемый тип носителя
Сервер отказывается обслуживать запрос, потому что объект формат запроса не поддерживается запрошенным ресурсом для запрошенного метода.
10.4.17 416 Запрошенный диапазон Не выполняется
Сервер ДОЛЖЕН возвращать ответ с этим кодом состояния, если запрос включал поле заголовка запроса Range (раздел 14.35), и ни один из значения спецификатора диапазона в этом поле перекрывают текущий экстент выбранного ресурса, и запрос не включал If-Range поле заголовка запроса.(Для байтовых диапазонов это означает, что первый byte-pos всех значений byte-range-spec были больше, чем текущая длина выбранного ресурса.)
Когда этот код состояния возвращается для запроса диапазона байтов, ответ ДОЛЖЕН включать поле заголовка объекта Content-Range указание текущей длины выбранного ресурса (см. раздел 14.16). Этот ответ НЕ ДОЛЖЕН использовать содержимое multipart / byteranges — тип.
10.4.18 417 Неудачное ожидание
Ожидание, указанное в поле заголовка запроса Expect (см. 14.20) не может быть встречен этим сервером, или, если сервер является прокси, у сервера есть недвусмысленные доказательства того, что запрос не может быть выполнен сервером следующего перехода.
10.5 Ошибка сервера 5xx
Коды статуса ответа, начинающиеся с цифры «5», указывают на случаи в сервер знает, что допустил ошибку или не может выполнение запроса.За исключением ответа на запрос HEAD, сервер ДОЛЖЕН включать объект, содержащий объяснение ошибочная ситуация, временная или постоянная состояние. Пользовательские агенты ДОЛЖНЫ отображать любую включенную сущность в пользователь. Эти коды ответов применимы к любому методу запроса.
10.5.1 500 Внутренняя ошибка сервера
Сервер обнаружил непредвиденное состояние, которое предотвратило его от выполнения запроса.
10.5.2 501 Не реализовано
Сервер не поддерживает функции, необходимые для выполнения запрос. Это подходящий ответ, когда сервер не распознает метод запроса и не может поддерживать его для любой ресурс.
10.5.3 502 Плохой шлюз
Сервер, выступая в качестве шлюза или прокси, получил недействительный ответ от вышестоящего сервера, к которому он обращался при попытке выполнить просьбу.
10.5.4 503 Служба недоступна
В настоящее время сервер не может обработать запрос из-за временная перегрузка или обслуживание сервера. Значение в том, что это временное состояние, которое исчезнет после некоторая задержка. Если известно, продолжительность задержки МОЖЕТ быть указана в Заголовок Retry-After. Если Retry-After не указан, клиент ДОЛЖЕН обрабатывать ответ так же, как и для ответа 500.
Примечание. Наличие кода состояния 503 не означает, что сервер должен использовать его при перегрузке.Некоторые серверы могут пожелать просто отказаться от подключения.
10.5.5 504 Тайм-аут шлюза
Сервер, выступая в качестве шлюза или прокси, не получил своевременный ответ от вышестоящего сервера, указанного в URI (например, HTTP, FTP, LDAP) или какой-либо другой вспомогательный сервер (например, DNS), который ему нужен для доступа при попытке выполнить запрос.
Примечание: Примечание для разработчиков: некоторые развернутые прокси известны возвращает 400 или 500, когда время поиска DNS истекло.
10.5.6 505 Версия HTTP не поддерживается
Сервер не поддерживает или отказывается поддерживать протокол HTTP. версия, которая использовалась в сообщении запроса. Сервер указывая, что он не может или не хочет выполнить запрос используя ту же основную версию, что и клиент, как описано в разделе 3.1, кроме этого сообщения об ошибке. Ответ ДОЛЖЕН содержать сущность, описывающая, почему эта версия не поддерживается и какие еще протоколы поддерживаются этим сервером.
Полное руководство и список кодов ошибок (2021)
Коды состоянияHTTP похожи на короткие заметки с сервера, которые прикрепляются к веб-странице. На самом деле они не являются частью содержания сайта. Вместо этого они представляют собой сообщения от сервера, сообщающие вам, как все прошло, когда он получил запрос на просмотр определенной страницы.
Сообщения такого типа возвращаются каждый раз, когда ваш браузер взаимодействует с сервером, даже если вы их не видите. Если вы владелец или разработчик веб-сайта, важно понимать коды статуса HT TP .Когда они появляются, коды состояния HTTP являются бесценным инструментом для диагностики и исправления ошибок конфигурации веб-сайта.
В этой статье представлены несколько кодов состояния сервера и ошибок, а также объясняется, что они говорят о том, что происходит на сервере за кулисами.
Давайте нырнем!
Что такое коды состояния HTTP?
Каждый раз, когда вы нажимаете ссылку или вводите URL-адрес и нажимаете Введите , ваш браузер отправляет запрос на веб-сервер сайта, к которому вы пытаетесь получить доступ.Сервер получает и обрабатывает запрос, а затем отправляет обратно соответствующие ресурсы вместе с HTTP-заголовком.
Коды состоянияHTTP доставляются вашему браузеру в заголовке HTTP. Хотя коды состояния возвращаются каждый раз, когда ваш браузер запрашивает веб-страницу или ресурс, в большинстве случаев вы их не видите.
Обычно ошибка отображается в браузере только тогда, когда что-то идет не так. Это способ сказать серверу: «Что-то не так. Вот код, объясняющий, что пошло не так.”
Google 404 Код статуса HTTP
Если вы хотите увидеть коды состояния, которые ваш браузер обычно не отображает, существует множество различных инструментов, которые упрощают эту задачу. Расширения браузера доступны для удобных для разработчиков платформ, таких как Chrome и Firefox, и существует множество веб-инструментов для извлечения заголовков, таких как Web Sniffer.
Чтобы увидеть коды состояния HTTP с помощью одного из этих инструментов, найдите строку в верхней части отчета с надписью «Состояние: HTTP / 1.1». За этим последует код состояния, возвращенный сервером.
Общие сведения о классах кода состояния HTTP
Коды состоянияHTTP делятся на 5 «классов». Это группы ответов, которые имеют похожие или связанные значения. Знание того, что они собой представляют, может помочь вам быстро определить общее содержание кода статуса , прежде чем вы начнете искать его конкретное значение.
Пять классов включают:
- 100s: Информационные коды, указывающие, что запрос, инициированный браузером, продолжается.
- 200s: Коды успеха возвращены, когда запрос браузера был получен, понят и обработан сервером.
- 300 с: Коды перенаправления возвращаются, когда новый ресурс заменен запрошенным.
- 400s: Коды ошибок клиента, указывающие на проблему с запросом.
- 500s: Коды ошибок сервера, указывающие, что запрос был принят, но ошибка на сервере помешала выполнению запроса.
Внутри каждого из этих классов существует множество кодов сервера, которые могут быть возвращены сервером. Каждый отдельный код имеет определенное и уникальное значение, которое мы рассмотрим в более подробном списке ниже.
Почему коды статуса и ошибки HTTP имеют значение для поисковой оптимизации (SEO)
Боты поисковых систем видят коды статуса HTTP во время сканирования вашего сайта. В некоторых случаях эти сообщения могут повлиять на то, будут ли и как ваши страницы проиндексированы, а также на то, как поисковые системы воспринимают состояние вашего сайта.
Вообще говоря, 100- и 200-уровневые коды состояния HTTP не сильно повлияют на ваше SEO. Они сигнализируют о том, что на вашем сайте все работает должным образом, и позволяют ботам поисковых систем продолжать свой путь. Однако они также не повысят ваш рейтинг.
По большей части для SEO важны коды более высокого уровня. Ответы на уровне 400 и 500 могут помешать ботам сканировать и индексировать ваши страницы. Слишком большое количество этих ошибок также может означать, что ваш сайт невысокого качества, что может снизить ваш рейтинг.
300-уровневые коды имеют более сложные отношения с SEO. Главное, что вам нужно знать, чтобы понять их влияние, — это разница между постоянной и временной переадресацией, о которой мы расскажем более подробно в соответствующем разделе ниже.
Вкратце, однако, постоянные перенаправления долей ссылок из обратных ссылок, а временные — нет. Другими словами, когда вы используете временную переадресацию для перемещенных страниц, вы теряете преимущество SEO, связанное с построением ссылок.
Подпишитесь на информационный бюллетень
Мы увеличили наш трафик на 1187% с помощью WordPress.
Мы покажем вам, как это сделать.
Присоединяйтесь к более чем 20 000 других людей, которые получают нашу еженедельную рассылку с инсайдерскими советами по WordPress!
Проверка кодов состояния HTTP в консоли поиска Google
Один из способов отслеживать, как Google воспринимает коды состояния HTTP на вашем сайте, — использовать Google Search Console. Вы можете просмотреть 300-, 400- и 500-уровневые коды состояния в отчете Coverage :
Отчет об охвате Google Search Console
В этой области панели инструментов отображаются четыре типа контента на вашем сайте:
- Страницы, возвращающие ошибки.
- Допустимые страницы с предупреждениями.
- Действительные ресурсы.
- Контент исключен из индекса.
Вы можете найти страницы с кодами состояния HTTP 300, 400 и 500 в разделах Excluded , Error или Valid with warnings разделов, в зависимости от типа кода. Например, 301 редирект может быть указан в исключено как страница с перенаправлением :
Страница с переадресацией в отчете об охвате в Google Search Console.
Коды состояния с 400 и 500 уровнями, скорее всего, появятся под ошибкой .
Еще один способ просмотреть коды состояния HTTP — использовать инструмент URL Inspection . Если Google не может проиндексировать конкретную страницу из-за ошибки, вы увидите это здесь:
Ошибка 404 в инструменте проверки URL в Google Search Console.
Дополнительные советы по использованию Google Search Console см. В нашем подробном руководстве по платформе.
Полное руководство и список кодов состояния HTTP
Хотя существует более 40 различных кодов состояния серверов, вы, вероятно, будете встречать менее десятка на регулярной основе.Ниже мы рассмотрели наиболее распространенные, а также несколько малоизвестных кодов, с которыми вы все еще можете столкнуться.
100 кодов состояния
100-уровневый код состояния говорит вам, что запрос, который вы отправили на сервер, по какой-то причине все еще обрабатывается. Это не обязательно проблема, это просто дополнительная информация, чтобы вы знали, что происходит.
- 100: «Продолжить». Это означает, что рассматриваемый сервер получил заголовки запроса вашего браузера и теперь готов к отправке тела запроса.Это делает процесс запроса более эффективным, поскольку он не позволяет браузеру отправлять запрос тела, даже если заголовки были отклонены.
- 101: «Протоколы переключения». Ваш браузер попросил сервер изменить протоколы, и сервер выполнил.
- 103: «Ранние намеки». Это возвращает некоторые заголовки ответа до того, как остальная часть ответа сервера будет готова.
200 Коды состояния
Это лучший вид кода состояния HTTP для получения.Ответ на 200 уровней означает, что все работает именно так, как должно.
- 200: «Все в порядке». Это код, который доставляется, когда веб-страница или ресурс действуют именно так, как от них ожидают.
- 201: «Создано». Сервер выполнил запрос браузера и в результате создал новый ресурс.
- 202: «Принято». Сервер принял запрос вашего браузера, но все еще обрабатывает его. Запрос в конечном итоге может привести или не привести к завершенному ответу.
- 203: «Неавторизованная информация». Этот код состояния может появиться, когда прокси-сервер используется. Это означает, что прокси-сервер получил код состояния 200 «Все в порядке» от исходного сервера, но изменил ответ, прежде чем передать его в ваш браузер.
- 204: «Без содержания». Этот код означает, что сервер успешно обработал запрос, но не собирается возвращать какое-либо содержимое.
- 205: «Сбросить содержимое.Как и код 204, это означает, что сервер обработал запрос, но не собирается возвращать какой-либо контент. Однако для этого также необходимо, чтобы ваш браузер сбрасывал представление документа.
- 206: «Частичное содержимое». Вы можете увидеть этот код состояния, если ваш HTTP-клиент (также известный как ваш браузер) использует «заголовки диапазона». Это позволяет вашему браузеру возобновлять приостановленные загрузки, а также разделять загрузку на несколько потоков. Код 206 отправляется, когда заголовок диапазона заставляет сервер отправлять только часть запрошенного ресурса.
300 кодов состояния
Перенаправление — это процесс, используемый для сообщения о том, что ресурс был перемещен в новое место. Есть несколько кодов статуса HTTP, которые сопровождают перенаправления, чтобы предоставить посетителям информацию о том, где найти контент, который они ищут.
- 300: «Множественный выбор». Иногда может быть несколько возможных ресурсов, которыми сервер может ответить для выполнения запроса вашего браузера. Код состояния 300 означает, что теперь вашему браузеру необходимо выбрать между ними.Это может произойти, если доступно несколько расширений типов файлов или если сервер испытывает неоднозначность смысла слов.
- 301: «Запрошенный ресурс был перемещен навсегда». Этот код доставляется, когда веб-страница или ресурс постоянно заменяются другим ресурсом. Он используется для постоянного перенаправления URL.
- 302: «Запрошенный ресурс перемещен, но найден». Этот код используется, чтобы указать, что запрошенный ресурс был найден, но не в том месте, где он ожидался.Он используется для временного перенаправления URL.
- 303: «См. Другое». Для понимания кода состояния 303 необходимо знать разницу между четырьмя основными методами HTTP-запроса. По сути, код 303 сообщает вашему браузеру, что он нашел ресурс, запрошенный вашим браузером с помощью POST, PUT или DELETE. Однако, чтобы получить его с помощью GET, вам необходимо сделать соответствующий запрос на другой URL-адрес, чем тот, который вы использовали ранее.
- 304: «Запрошенный ресурс не изменялся с момента последнего обращения к нему.Этот код сообщает браузеру, что ресурсы, хранящиеся в кеше браузера, не изменились. Он используется для ускорения доставки веб-страниц за счет повторного использования ранее загруженных ресурсов.
- 307: «Временное перенаправление». Этот код состояния заменил 302 «Найдено» как соответствующее действие, когда ресурс был временно перемещен на другой URL-адрес. В отличие от кода состояния 302, он не позволяет изменять метод HTTP.
- 308: «Постоянное перенаправление». Код состояния 308 является преемником кода 301 «Перемещен навсегда».Он не позволяет изменять метод HTTP и указывает, что запрошенный ресурс теперь постоянно находится по новому URL-адресу.
400 кодов состояния
На уровне 400 коды состояния HTTP начинают вызывать проблемы. Это коды ошибок, указывающие на неисправность вашего браузера и / или запроса.
- 400: «Неверный запрос». Сервер не может вернуть ответ из-за ошибки на стороне клиента. См. Наше руководство по устранению этой ошибки.
- 401: «Неавторизовано» или «Требуется авторизация.”Это возвращается сервером, когда у целевого ресурса отсутствуют действительные учетные данные для аутентификации. Вы можете увидеть это, если настроили базовую HTTP-аутентификацию с помощью htpasswd.
Ошибка авторизации Nginx 401 в Chrome
- 402: «Требуется оплата». Первоначально этот код создавался для использования в составе системы электронных денег. Однако этот план так и не был реализован. Вместо этого он используется различными платформами, чтобы указать, что запрос не может быть выполнен, обычно из-за отсутствия необходимых средств.Общие примеры включают:
- 403: «Доступ к этому ресурсу запрещен». Этот код возвращается, когда пользователь пытается получить доступ к тому, что у него нет разрешения на просмотр. Например, попытка получить доступ к защищенному паролем содержимому без входа в систему может привести к ошибке 403.
- 404: «Запрошенный ресурс не найден». Это наиболее частое сообщение об ошибке из всех. Этот код означает, что запрошенный ресурс не существует, и сервер не знает, существовал ли он когда-либо.
- 405: «Метод запрещен». Он создается, когда хост-сервер (исходный сервер) поддерживает полученный метод, а целевой ресурс — нет.
- 406: «Неприемлемый ответ». Запрошенный ресурс может генерировать только контент, который неприемлем в соответствии с заголовками принятия, отправленными в запросе.
- 407: «Требуется проверка подлинности прокси». Прокси-сервер используется и требует, чтобы ваш браузер прошел аутентификацию, прежде чем продолжить.
- 408: «Истекло время ожидания сервера для оставшейся части запроса от браузера». Этот код генерируется, когда сервер теряет время ожидания полного запроса от браузера. Другими словами, сервер не получил полного запроса, отправленного браузером. Одной из возможных причин может быть сетевая перегрузка, приводящая к потере пакетов данных между браузером и сервером.
- 409: «Конфликт». Код состояния 409 означает, что сервер не может обработать запрос вашего браузера из-за конфликта с соответствующим ресурсом.Иногда это происходит из-за нескольких одновременных правок.
- 410: «Запрошенный ресурс исчез и больше не будет возвращаться». Это похоже на код 404 «Не найдено», за исключением того, что 410 указывает, что состояние является ожидаемым и постоянным.
- 411: «Требуемая длина». Это означает, что запрашиваемый ресурс требует, чтобы клиент указал определенную длину, а это не так.
- 412: «Ошибка предварительного условия». Ваш браузер включил определенные условия в заголовки запросов, и сервер не соответствует этим требованиям.
- 413: «Слишком большая полезная нагрузка» или «Слишком большой объект запроса». Ваш запрос больше, чем сервер может или может обработать.
- 414: «URI слишком длинный». Обычно это результат запроса GET, который был закодирован как строка запроса, которая слишком велика для обработки сервером.
- 415: «Неподдерживаемый тип носителя». Запрос включает тип мультимедиа, который сервер или ресурс не поддерживает.
- 416: «Недопустимый диапазон.«Ваш запрос относится к части ресурса, которую сервер не может вернуть.
- 417: «Ожидание не выполнено». Сервер не может удовлетворить требования, указанные в поле заголовка expect запроса.
- 418: «Я чайник». Этот код возвращают чайники, которые получают запросы на заваривание кофе. Это еще и первоапрельская шутка 1998 года.
418 «Я чайник», код статуса
- 422: «Необработанная сущность.«Клиентский запрос содержит семантические ошибки, и сервер не может их обработать.
- 425: «Слишком рано». Этот код отправляется, когда сервер не желает обрабатывать запрос, потому что он может быть воспроизведен.
- 426: «Требуется обновление». Из-за содержимого поля заголовка запроса обновления клиент должен переключиться на другой протокол.
- 428: «Требуется предварительное условие». Сервер требует, чтобы перед обработкой запроса были указаны условия.
- 429: «Слишком много запросов». Это генерируется сервером, когда пользователь отправил слишком много запросов за заданный промежуток времени (ограничение скорости). Иногда это может происходить из-за того, что боты или скрипты пытаются получить доступ к вашему сайту. В этом случае вы можете попробовать изменить URL-адрес входа в WordPress. Вы также можете ознакомиться с нашим руководством по исправлению ошибки 429 «Слишком много запросов».
429 слишком много запросов
- 431: «Поля заголовка запроса слишком велики.»Сервер не может обработать запрос, поскольку поля заголовка слишком велики. Это может указывать на проблему с одним полем заголовка или всеми ими вместе.
- 451: «Недоступно по юридическим причинам». Оператор сервера получил требование запретить доступ к запрошенному вами ресурсу (или к набору ресурсов, включая тот, который вы запросили). Интересный факт: этот код — отсылка к роману Рэя Брэдбери: « по Фаренгейту 451 ».
- 499: «Клиент закрыл запрос.Это возвращается NGINX, когда клиент закрывает запрос, пока Nginx все еще обрабатывает его.
500 кодов состояния
Коды состояния с 500 уровнями также считаются ошибками. Однако они означают, что проблема на стороне сервера. Это может затруднить их решение.
- 500: «На сервере произошла ошибка, и запрос не может быть выполнен». Это общий код, который просто означает «внутреннюю ошибку сервера». Что-то пошло не так на сервере, и запрошенный ресурс не был доставлен.Этот код обычно создается сторонними плагинами, неисправным PHP или даже нарушением соединения с базой данных. Ознакомьтесь с нашими руководствами о том, как исправить ошибку при установлении соединения с базой данных и о других способах устранения внутренней ошибки сервера 500.
Ошибка при установлении соединения с базой данных
- 501: «Не реализовано». Эта ошибка указывает на то, что сервер не поддерживает функции, необходимые для выполнения запроса. Это почти всегда проблема самого веб-сервера и обычно должна решаться хостом. Ознакомьтесь с нашими рекомендациями по устранению ошибки 501, которая не реализована.
- 502: «Плохой шлюз». Этот код ошибки обычно означает, что один сервер получил недопустимый ответ от другого, например, когда используется прокси-сервер. В других случаях запрос или запрос будет занимать слишком много времени, поэтому он отменяется или уничтожается сервером, и соединение с базой данных разрывается. Для получения дополнительных сведений см. Наше подробное руководство о том, как исправить ошибку 502 Bad Gateway.
- 503: «Сервер сейчас недоступен для обработки этого запроса.”Запрос не может быть выполнен на данный момент. Этот код может быть возвращен перегруженным сервером, который не может обрабатывать дополнительные запросы. У нас есть полное руководство по исправлению ошибки 503 Service Unavailable.
- 504: «Сервер, действующий как шлюз, истекло время ожидания ответа от другого сервера». Этот код возвращается, когда в обработке запроса задействованы два сервера, и время ожидания первого сервера истекает, пока второй сервер не ответит. Вы можете узнать больше о том, как исправить ошибку 504, в нашем специальном руководстве.
- 505: «Версия HTTP не поддерживается». Сервер не поддерживает версию HTTP, которую клиент использовал для запроса.
- 511: «Требуется сетевая аутентификация». Этот код состояния отправляется, когда сеть, которую вы пытаетесь использовать, требует некоторой формы аутентификации перед отправкой вашего запроса на сервер. Например, вам может потребоваться принять Условия использования общедоступной точки доступа Wi-Fi.
- 521: «Веб-сервер не работает». Ошибка 521 — это сообщение об ошибке, относящееся к Cloudflare.Это означает, что ваш веб-браузер смог успешно подключиться к Cloudflare, но Cloudflare не смог подключиться к исходному веб-серверу.
- 525 : «Подтверждение связи SSL не удалось». Ошибка 525 означает, что установление связи SSL между доменом, использующим Cloudflare, и исходным веб-сервером не удалось. Если у вас возникли проблемы, вы можете попытаться легко исправить ошибку 525 пятью способами.
Где узнать больше о кодах состояния HTTP
Помимо кодов состояния HTTP, которые мы рассмотрели в этом списке, есть еще несколько неясных, о которых вы, возможно, захотите узнать.Есть несколько ресурсов, к которым вы можете обратиться, чтобы узнать об этих более редких кодах, в том числе:
Знание этих кодов состояния может помочь вам решить некоторые уникальные проблемы при поддержке вашего собственного веб-сайта или даже когда вы столкнетесь с ними на других сайтах.
Сначала они могут показаться устрашающими, но коды состояния HTTP важны для понимания того, что происходит на вашем сайте. Вот подробный список тех, с которыми вам стоит познакомиться! 📟🌐Нажмите, чтобы написать твитСводка
На первый взгляд коды состояния HTTP могут показаться запутанными или устрашающими, но на самом деле они очень информативны.Изучив некоторые из распространенных, вы сможете быстрее устранять проблемы на своем сайте.
В этом посте мы определили более 40 кодов статуса HTTP, с которыми вы можете столкнуться. От более мягких кодов 100 и 200 уровней до более сложных ошибок 400 и 500 уровней, понимание этих сообщений имеет решающее значение для поддержания вашего веб-сайта и обеспечения его доступности для пользователей.
Если вам понравилась эта статья, то вам понравится хостинговая платформа Kinsta WordPress. Ускорьте свой сайт и получите круглосуточную поддержку от нашей опытной команды WordPress.Наша инфраструктура на базе Google Cloud ориентирована на автоматическое масштабирование, производительность и безопасность. Позвольте нам показать вам разницу в Kinsta! Ознакомьтесь с нашими тарифами
кодов ответа HTTP | Сеть разработчиков OCLC
Код | Пояснение |
---|---|
200 ОК | Запрос был успешным. |
201 Создано | Ресурс был создан успешно. |
204 Нет содержимого | Нет ошибки.Используется, когда серверу не нужно возвращать какую-либо информацию в объекте ответа. Метаданные о запросе могут быть возвращены в заголовках ответов. |
304 Без изменений | Ресурс не изменился с момента последнего чтения клиентом. Это может быть вызвано заголовком If-Modified-Since или Etag . Предполагая, что каждая запись имеет обновленную дату, If-Modified-Since , вероятно, имеет больше смысла. |
400 Неверный запрос | Возвращено при следующих условиях:
|
401 Неавторизованный | Требуется авторизация. |
403 Запрещено | Неподдерживаемый стандартный параметр, либо ошибка аутентификации или авторизации. |
404 Не найдено | Ресурс не найден. |
405 Метод запрещен | Метод, указанный в запросе, не разрешен для ресурса. |
409 Конфликт | Запрос не может быть выполнен из-за конфликта с текущим состоянием ресурса. Например, клиент пытается обновить старую версию ресурса. |
410 Исчезло | Запрошенный ресурс больше не доступен на сервере, и адрес пересылки неизвестен.Ожидается, что это состояние будет считаться постоянным. |
412 Ошибка предварительного условия | Предварительное условие, указанное в заголовке запроса, оценивается как ложное. Например, запрос PUT с заголовком If-Unmodified-Since может вернуть 412, если ресурс был обновлен после значения заголовка If-Modified-Since . |
415 Неподдерживаемый тип носителя | Сервер отказывается обслуживать запрос, поскольку объект запроса имеет формат, не поддерживаемый запрошенным ресурсом для запрошенного метода. |
500 Внутренняя ошибка сервера | Код состояния по умолчанию, используемый для всех нераспознанных ошибок сервера. |
503 Служба недоступна | Сервер в настоящее время не может обработать запрос из-за временной перегрузки или обслуживания сервера. |
будут включать описательное сообщение в объект ответа HTTP при возврате кода состояния HTTP 4xx и 5xx.
Коды состояния HTTP [SEO 2021]
Что такое коды состояния HTTP?
Код состояния HTTP — это ответ сервера на запрос браузера. Когда вы посещаете веб-сайт, ваш браузер отправляет запрос на сервер сайта, а затем сервер отвечает на запрос браузера трехзначным кодом: кодом состояния HTTP.
Эти коды состояния представляют собой Интернет-эквивалент диалога между вашим браузером и сервером. Они сообщают, все ли между ними в порядке, на ощупь или что-то не так.Понимание кодов состояния и способов их использования поможет вам быстро диагностировать ошибки сайта, чтобы минимизировать время простоя на вашем сайте. Вы даже можете использовать некоторые из этих кодов состояния, чтобы помочь поисковым системам и людям получить доступ к вашему сайту; переадресация 301, например, сообщит ботам и людям, что страница навсегда переместилась в другое место.
Первая цифра каждого трехзначного кода состояния начинается с одной из пяти цифр от 1 до 5; вы можете увидеть, что это выражается как 1xx или 5xx, чтобы указать коды состояния в этом диапазоне.Каждый из этих диапазонов включает отдельный класс ответа сервера.
Классы общих кодов состояния HTTP:
1xxs — Информационные ответы: Сервер обдумывает запрос.
2xxs — Успех! Запрос был успешно выполнен, и сервер дал браузеру ожидаемый ответ.
3xxs — Перенаправление: Вы были перенаправлены в другое место. Запрос получен, но есть какое-то перенаправление.
4xxs — Ошибки клиента: Страница не найдена. Сайт или страница недоступны. (Запрос был сделан, но страница недействительна — это ошибка на стороне веб-сайта беседы и часто появляется, когда страница не существует на сайте.)
5xxs — Ошибки сервера: Отказ. Клиент сделал правильный запрос, но серверу не удалось его выполнить.
Наиболее важные коды статуса для оптимизаторов поисковой системы
Каждому профессиональному оптимизатору поисковых систем и владельцу веб-сайтов важно понимать, какие коды статуса оказывают наибольшее влияние на поисковую оптимизацию.
Представьте, что вы работаете над сайтом, на котором отображается много ошибок 5xx; вы должны знать, что это проблема сервера. Ошибки 4xx влияют на восприятие посетителями, поэтому вы можете сразу подумать о любых изменениях, которые вы внесли в свои URL, или о том, удалили ли вы какие-либо страницы. Как только вы поймете причину проблемы, вы можете посмотреть на реализацию настраиваемой страницы 404 или изучить возможность использования всемогущего перенаправления 301 для отправки посетителей в нужное место.
Стоит выучить и сохранить в памяти самые важные коды состояния, которые должен знать каждый оптимизатор поисковых систем:
Код состояния HTTP 200 — OK
Это ваш идеальный код состояния для вашей нормальной, повседневной, правильно функционирующей страницы.Посетители, боты и ссылочный капитал проходят через связанные страницы как во сне. Вам не нужно ничего делать, и вы можете спокойно проводить свой день, зная, что все так, как должно быть.
Код состояния HTTP 301 — постоянное перенаправление
Перенаправление 301 следует использовать каждый раз, когда один URL-адрес необходимо перенаправить на другой навсегда . Редирект 301 означает, что посетители и боты, попавшие на эту страницу, будут перенаправлены на новый URL. Кроме того, ссылочный вес — мощность, передаваемая всеми этими с трудом заработанными ссылками на ваш контент — также передается новому URL-адресу через 301 редирект.Несмотря на заявления Google о том, что все перенаправления 3xx обрабатываются одинаково, тесты показали, что это не совсем так. Редирект 301 остается предпочтительным методом выбора для постоянных перенаправлений страниц.
Код состояния HTTP 302 — временное перенаправление
Перенаправление 302 похоже на перенаправление 301 в том, что посетители и боты переходят на новую страницу, но ссылочный вес не может передаваться. Мы не рекомендуем использовать 302 редирект для постоянных изменений. Использование 302 заставит сканеры поисковых систем рассматривать перенаправление как временное, что означает, что оно не может передавать значение ссылки, которое делает волшебный 301.
Код состояния HTTP 404 — не найден
Это означает, что файл или страница, запрашиваемые браузером, не были найдены сервером. Ошибки 404 не указывают на то, что страница или ресурс отсутствуют навсегда или временно. Вы можете увидеть, как это выглядит на вашем сайте, введя несуществующий URL. Это как удариться о кирпичную стену. Как и вы, ваши посетители попадут на страницу с ошибкой 404 и либо попробуют еще раз (если вам повезет), либо уйдут на другой сайт, на котором есть информация, которую они ищут.
На каждом сайте будут страницы, которые возвращают 404 кода статуса. Эти страницы не всегда нужно перенаправлять; есть другие варианты. Распространенное заблуждение состоит в том, что оптимальной практикой поисковой оптимизации является простое перенаправление 301 страниц, возвращающих код статуса 404, на домашнюю страницу данного домена. На самом деле это плохая идея для большинства случаев, потому что это может сбить с толку пользователей, которые могут не осознавать, что веб-страница, к которой они пытались получить доступ, не существует.
Если страницы, возвращающие коды 404, являются авторитетными страницами с большим объемом трафика или имеют очевидный URL-адрес, на который предназначены посетители или ссылки, вам следует использовать 301 редирект на наиболее релевантную страницу.Например, если ваша страница с кексами без сахара больше не существует, вы можете перенаправить этот URL с 301 на страницу категории рецептов без сахара.
Вне этих экземпляров может потребоваться, чтобы URL-адрес специально возвращал 404 — это предотвратит их индексирование и повторное сканирование поисковыми системами. Предоставьте своим посетителям наилучшие возможности с помощью настраиваемой страницы 404, как это предлагается в этом руководстве Google Search Console. Например, сайты электронной коммерции часто создают страницы 404, когда товары заканчиваются, поэтому эти сайты являются отличными кандидатами для создания настраиваемой страницы 404 электронной коммерции.
Код состояния HTTP 410 — Исчез
410 более постоянный, чем 404; это означает, что страница исчезла. Страница больше не доступна с сервера, и адрес пересылки не настроен. Любые ссылки на вашем сайте, которые указывают на страницу 410, отправляют ботов и посетителей на мертвый ресурс, поэтому, если вы их видите, удалите любые ссылки или ссылки на них из своего контента.
Код состояния HTTP 500 — внутренняя ошибка сервера
Вместо проблемы с отсутствующими или не найденными страницами этот код состояния указывает на проблему с сервером.500 — это классическая ошибка сервера, которая повлияет на доступ к вашему сайту. Будут потеряны как посетители, так и боты, и ваша ссылочная стоимость никуда не денется. Поисковые системы предпочитают хорошо обслуживаемые сайты, поэтому вам следует изучить эти коды статуса и исправить их, как только вы с ними столкнетесь.
Другой вариант ответа 500, ответ 503 означает, что сервер недоступен. Всех (людей или кого-то еще) просят вернуться позже.Это могло произойти из-за временной перегрузки сервера или обслуживания сервера. Код состояния 503 гарантирует, что поисковые системы будут знать, что скоро вернутся, потому что страница или сайт будут недоступны только на короткое время.
Продолжайте учиться
Попробовать
MozBar — панель инструментов MozBar SEO позволяет вам видеть соответствующие показатели в вашем браузере при просмотре веб-страниц.
Link Explorer — ваш универсальный инструмент для создания ссылок. Быстро находите возможности для построения ссылок, отслеживайте обнаруженные и потерянные ссылки с течением времени и создавайте списки отслеживания ссылок, чтобы узнать, когда вы получили ссылку. Мощные данные о ссылках для более разумного построения ссылок.
Прежде чем вы сможете интегрировать продукт или решение PayPal, вы должны настроить среду разработки для получения идентификатора клиента OAuth 2.0 и секретных учетных данных для песочницы и рабочих сред. Вы обмениваете эти учетные данные на токен доступа, который авторизует ваши вызовы REST API. Чтобы протестировать свои веб-приложения и мобильные приложения, вы создаете учетные записи песочницы.
Для входа в панель инструментов разработчика для получения учетных данных и создания учетных записей песочницы требуется учетная запись разработчика, личная или бизнес-учетная запись.Каждая учетная запись предоставляет разные уровни доступа к функциям PayPal.
Возможности | Аккаунт разработчика | Личный кабинет | Счет предприятия |
---|---|---|---|
Доступ к песочнице | х | х | х |
Отправлять и получать деньги | х | х | |
Начало работы | х |
Если вам нужен доступ к функции, которой у вас в настоящее время нет, вы можете обновить свою учетную запись на странице Моя учетная запись на панели инструментов разработчика.
Дополнительная информация:
Получить учетные данные
Для создания учетных данных REST API для песочницы и живых сред:
- Войдите в панель управления разработчика, используя свою учетную запись PayPal.
- В меню ПРИБОРНАЯ ПАНЕЛЬ выберите Мои приложения и учетные данные .
- Убедитесь, что вы находитесь на вкладке «Песочница», чтобы получить учетные данные API, которые вы будете использовать при разработке кода. После тестирования и перед запуском переключитесь на вкладку Live, чтобы получить действующие учетные данные.
- В столбце Имя приложения выберите Приложение по умолчанию , которое PayPal создает с новой учетной записью Developer Dashboard. Выберите Create App , если вы не видите приложение по умолчанию.
Получить токен доступа
Чтобы получить токен доступа, передайте свои учетные данные OAuth 2. 0 через:
Совершение вызовов REST API
В вызовах REST API укажите URL-адрес службы API для среды:
- Песочница:
https: // api-m.sandbox.paypal.com
- Live:
https://api-m.paypal.com
Также включите свой маркер доступа, чтобы подтвердить свою личность и получить доступ к защищенным ресурсам.
Этот пример вызова, который показывает API заказов v2, включает токен носителя в заголовок запроса авторизации
. Этот тип токена позволяет вам выполнять действие от имени владельца ресурса.
curl -v -X POST https://api-m.sandbox.paypal.com/v2/checkout/orders \
-H "Content-Type: application / json" \
-H "Авторизация: токен доступа на предъявителя" \
-d '{
"намерение": "ЗАХВАТ",
"Purchase_units": [
{
"количество": {
"currency_code": "USD",
"значение": "100.00 "
}
}
]
} '
Ответ показывает статус и другие детали:
{
"id": "5O1TN364715T",
"status": "СОЗДАНО",
"ссылки": [
{
"href": "https://api-m. paypal.com/v2/checkout/orders/5O1TN364715T",
"rel": "self",
"метод": "ПОЛУЧИТЬ"
},
{
"href": "https://www.paypal.com/checkoutnow?token=5O1TN364715T",
"rel": "одобрить",
"метод": "ПОЛУЧИТЬ"
},
{
"href": "https://api-m.paypal.com/v2/checkout/orders/5O1TN364715T",
"rel": "обновить",
"метод": "ПАТЧ"
},
{
"href": "https: // api-m.paypal.com/v2/checkout/orders/5O1TN364715T/capture ",
"rel": "захват",
"method": "POST"
}
]
}
Нет списка IP-адресов для api-m
. IP-адреса расположены за поставщиками сети доставки контента (CDN), и все наши зоны подписаны DNSSec. Когда продавцы ищут api-m.paypal.com
, они могут использовать подпись, чтобы убедиться, что PayPal предоставляет IP.
Если вам нужно разрешить список IP-адресов, вы можете использовать api-m.paypal.com
. Ожидайте более высокую задержку и более низкую доступность, чем api-m. paypal.com
.
Не фиксируйте IP-адреса жестко.
Создание учетных записей песочницы
Чтобы протестировать свои веб-приложения и мобильные приложения с помощью фиктивных транзакций, создайте личную учетную запись для представления покупателя и корпоративную учетную запись для представления продавца.
Войдите в панель управления и введите адрес электронной почты и пароль своего личного или служебного аккаунта PayPal.
Примечание: Если у вас нет учетной записи, нажмите Зарегистрироваться .
В тестовой среде щелкните Учетные записи , а затем нажмите Создать учетную запись .
Выберите тип учетной записи и страну, которую вы хотите протестировать, и нажмите Create . PayPal создает для вас учетную запись с тестовыми значениями для банковского счета, кредитной карты и баланса. Чтобы изменить функции учетной записи, после того, как учетная запись была создана, нажмите кнопку редактирования для этой учетной записи.
Примечание: Если вам нужна дополнительная настройка тестовых значений, нажмите Create Custom Account в диалоговом окне Create Sandbox Account .
Статус HTTP и коды ошибок для JSON | Облачное хранилище | Google Cloud
В следующем документе представлена справочная информация о кодах состояния. и сообщения об ошибках, которые используются в JSON API облачного хранилища. Для страницу, относящуюся к XML API облачного хранилища, см. Статус HTTP и коды ошибок для XML.
Формат ответа на ошибку
Cloud Storage использует стандартный формат отчетов об ошибках HTTP для JSON API.Успешные запросы возвращают коды состояния HTTP в диапазоне 2xx. Не удалось запрашивает коды состояния возврата в диапазонах 4xx и 5xx. Запросы, требующие redirect возвращает коды статуса в диапазоне 3xx. Ответы на ошибки обычно включают документ JSON в теле ответа, который содержит информацию о ошибка.
В следующих примерах показаны некоторые распространенные ошибки. Обратите внимание, что заголовок информация в ответах опущена.
401 Неавторизованный
Ниже приводится пример ответа об ошибке, который вы получаете, если пытаетесь перечислить сегменты для проекта, но не указать заголовок авторизации.
401 Неавторизованный { "ошибка": { "ошибки": [ { "домен": "глобальный", "причина": "требуется", "message": "Требуется логин", "locationType": "заголовок", "location": "Авторизация" } ], «код»: 401, "message": "Требуется логин" } }
403 Запрещено
Это пример ответа об ошибке, который вы получите, если попытаетесь перечислить ведра несуществующего проекта или проекта, на который у вас нет разрешения чтобы перечислить ведра.
403 Запрещено { "ошибка": { "ошибки": [ { "домен": "глобальный", "причина": "запрещено", "message": "Запрещено" } ], «код»: 403, "message": "Запрещено" } }
404 Not Found
Ниже приведен пример ответа об ошибке, который вы получите, если попытаетесь получить объект, который не существует.
404 Не Найдено { "ошибка": { "ошибки": [ { "домен": "глобальный", "причина": "notFound", "Сообщение не найдено" } ], «код»: 404, "Сообщение не найдено" } }
409 Конфликт
Ниже приведен пример ответа об ошибке, который вы получите, если попытаетесь создайте корзину, используя имя уже имеющейся корзины.
409 Конфликт { "ошибка": { "ошибки": [ { "домен": "глобальный", "причина": "конфликт", "message": "Вы уже являетесь владельцем этого сегмента. Пожалуйста, выберите другое имя ". } ], «код»: 409, "message": "Вы уже являетесь владельцем этого сегмента. Выберите другое имя". } }
В следующей таблице описаны элементы, которые могут появляться в теле ответа. ошибки. Поля следует использовать вместе, чтобы помочь определить проблему. Кроме того, приведенные ниже примерные значения предназначены для иллюстрации и не являются исчерпывающий список всех возможных значений.
Элемент | Описание |
---|---|
код | Значение кода состояния HTTP без текстового описания. Примеры значений: |
ошибка | Контейнер для информации об ошибке. |
ошибок | Контейнер для сведений об ошибке. |
ошибок. домен | Объем ошибки. Примеры значений: global , push и usageLimits . |
ошибок. расположение | Конкретный элемент в пределах locationType , вызвавший ошибку. Например, если вы укажете недопустимое значение для параметра, позиция будет именем параметра. Примеры значений: |
ошибок. тип местоположения | Местоположение или часть запроса, вызвавшего ошибку.Используйте с адрес для точного определения ошибки. Например, если вы укажете недопустимое значение для параметра, locationType будет параметром , а местоположение будет именем параметра. Примеры значений включают заголовок |
ошибок. сообщение | Описание ошибки. Примеры значений: |
ошибок. причина | Примеры значений: invalid , invalidParameter и required . |
сообщение | Описание ошибки. То же, что и ошибки. сообщение . |
Коды состояния и ошибок HTTP
В этом разделе представлен неполный список состояний HTTP и кодов ошибок, которые
API JSON облачного хранилища использует. 1xx
Информационный и 2xx
Коды успеха здесь не обсуждаются. Для получения дополнительной информации см. Статус ответа.
Коды в RFC 7231 §6, RFC 7232 §4,
RFC 7233 §4, RFC 7235 §3 и RFC 6585.
302 - Найдено
Причина | Описание |
---|---|
найдено | Ресурс временно расположен в другом месте согласно заголовку Location . |
303 — см. Другие
Причина | Описание |
---|---|
медиаСкачатьПереадресация | При запросе загрузки с использованием параметра URL-адреса alt = media , прямой путь URL-адреса для использования имеет префикс / download . Если это не указано, служба выполнит это перенаправление с соответствующим путем загрузки мультимедиа в заголовке Location . |
304 - без изменений
Причина | Описание |
---|---|
без изменений | Условный запрос был бы успешным, но условие было ложным, поэтому тело не было отправлено. |
307 - временное перенаправление
Причина | Описание |
---|---|
временный Прямой | Ресурс временно расположен в другом месте согласно заголовку Location .Среди других причин это может произойти, когда используется аутентификация на основе файлов cookie, например, при использовании браузера хранилища, когда он получает запрос на загрузку контента. |
308 — Неполное резюме
Описание |
---|
Указывает на неполную возобновляемую выгрузку и предоставляет диапазон байтов, уже полученных облачным хранилищем. Ответы с этим статусом не содержат тела. |
400 - неверный запрос
[Домен.] Причина | Описание |
---|---|
плохой запрос | Запрос не может быть выполнен из-за ваших текущих настроек облачного хранилища. Например, вы не можете заблокировать политику хранения, если запрошенный сегмент не имеет политики хранения, и вы не можете установить ACL, если в запрошенном сегменте включена только политика сегмента. |
badRequestException | Срок хранения в заблокированной корзине нельзя уменьшить. |
облакоKmsBadKey | Неверный ключ KMS облака. |
облакоKmsCannotChangeKeyName | Имя ключа Cloud KMS нельзя изменить. |
облакоKmsDecryptionKeyNotFound | Ключ дешифрования Cloud KMS ресурса не найден. |
облакоKmsDisabledKey | Ключ Cloud KMS отключен, уничтожен или планируется уничтожить. |
облакоKmsEncryptionKeyNotFound | Ключ шифрования Cloud KMS не найден. |
облакоKmsKeyLocationNotAllowed | Местоположение ключа Cloud KMS не допускается. |
corsRequestWithXOrigin | Запрос CORSсодержит заголовок XD3 X-Origin. |
customerEncryptionAlgorithmIsInvalid | Отсутствует алгоритм шифрования или предоставленный алгоритм не «AE256». |
customerEncryptionKeyFormatIsInvalid | Отсутствует ключ шифрования, или он не закодирован в Base64, или он не соответствует требуемой длине алгоритма шифрования. |
customerEncryptionKeyIsIncorrect | Предоставлен неверный ключ шифрования. |
customerEncryptionKeySha256IsInvalid | Отсутствует хэш SHA256 ключа шифрования, или он не закодирован в Base64, или не соответствует ключу шифрования. |
invalidAltValue | Не удалось распознать значение параметра URL-адреса alt . |
недействительный Аргумент | Недопустимое значение одного из полей в теле запроса. |
недопустимый параметр | Значение одного из параметров URL-адреса недопустимо.Помимо обычной проверки параметров URL, любые параметры URL, которые имеют соответствующее значение в предоставленных телах запросов JSON, должны совпадать, если они оба указаны. При использовании JSONP вы получите эту ошибку, если предоставите параметр alt , отличный от json . |
нетСкачать | Загрузки или обычный запрос API был отправлен на путь / download / * . Используйте тот же путь, но без префикса / download . |
нет Загрузить | Загрузки или обычный запрос API был отправлен на путь / upload / * .Используйте тот же путь, но без префикса / upload . |
parseError | Не удалось проанализировать тело запроса в соответствии с предоставленным Content-Type. |
push.channelIdInvalid | Идентификатор канала должен соответствовать следующему регулярному выражению: [A-Za-z0-9 \\ -_ \\ + / =] + |
push.channelIdNotUnique | storage.objects.watch Свойство должно быть уникальным для всех каналов. |
push.webhookUrlNoHostOrAddress | storage. objects.watchAll Свойство address должно содержать действительный URL. |
push.webhookUrlNotHttps | storage.objects.watch Все свойство адреса должно быть URL-адресом HTTPS. |
требуется | Отсутствует обязательный параметр URL или обязательное свойство JSON тела запроса. |
resourceIsEncryptedWithCustomerEncryptionKey | Ресурс зашифрован с помощью ключа шифрования, предоставленного заказчиком, но запрос не предоставил его. |
resourceNotEncryptedWithCustomerEncryptionKey | Ресурс не зашифрован с помощью ключа шифрования, предоставленного заказчиком, но предоставленный запросом. |
повернутый вниз | Был сделан запрос к версии API, которая была отклонена. Клиентам необходимо будет обновить до поддерживаемой версии. |
userProjectInconsistent | Пользовательский проект, указанный в запросе, не соответствует пользовательскому проекту, указанному в более раннем связанном запросе. |
userProjectInvalid | Пользовательский проект, указанный в запросе, недействителен либо потому, что это неверный идентификатор проекта, либо потому, что он ссылается на несуществующий проект. |
userProjectMissing | В запрошенном сегменте включена функция "Платежи запрашивающей стороны", инициатор запроса не является владельцем корзины, и в запросе не было проекта пользователя. |
неправильныйUrlForUpload | storage.objects.insert должен вызываться как загрузка, а не как метаданные. |
401 - неавторизованный
[Домен] Причина | Описание |
---|---|
Требуется проверка подлинностиЗапроситьПлатежи | Для доступа к корзине "Запрашивающая сторона платит" требуется аутентификация. |
authError | Эта ошибка указывает на проблему с авторизацией, предоставленной в запросе к облачному хранилищу. Это может произойти в следующих ситуациях:
|
lockedDomainExpired | При загрузке контента с сайта, аутентифицированного с помощью файлов cookie, e.g. при использовании браузера хранилища ответ будет перенаправлен на временный домен. Эта ошибка возникает, если доступ к указанному домену происходит после истечения срока действия домена. Выполните исходный запрос еще раз и получите новое перенаправление. |
push.webhookUrl Без авторизации | Запросы к storage.objects.watchAll завершатся ошибкой, если вы не подтвердите, что являетесь владельцем домена. |
требуется | Доступ к закрытому методу, требующему авторизации, был осуществлен, но не был предоставлен ни в заголовке авторизации, ни с помощью других средств. |
403 - Запрещено
[Домен] Причина | Описание |
---|---|
аккаунт отключен | Учетная запись, связанная с проектом, которому принадлежит корзина или объект, отключена. Проверьте Google Cloud Console, чтобы узнать, нет ли проблем с выставлением счетов, а если нет, обратитесь в службу поддержки аккаунта. |
страна заблокирована | Использование JSON API облачного хранилища в некоторых странах запрещено законом. |
запрещено | Согласно политике контроля доступа текущий пользователь не имеет доступа для выполнения запрошенного действия. Этот код применяется, даже если задействованный ресурс не существует. |
Недостаточно Разрешения | Согласно политике управления доступом текущий пользователь не имеет доступа для выполнения запрошенного действия. Этот код применяется, даже если задействованный ресурс не существует. |
объектUnderActiveHold | Замена или удаление объекта не разрешены из-за активного удержания объекта. |
retentionPolicyNotMet | Замена или удаление объекта не разрешены до тех пор, пока объект не достигнет срока хранения, установленного политикой хранения в корзине. |
SSL Требуется | Запросы к этому API требуют SSL. |
stopChannelCallerNotOwner | Для звонков на номер storage.channels.stop необходимо, чтобы канал принадлежал вызывающему абоненту. |
usageLimits.accessNotConfigured | Эта ошибка означает, что для проекта, связанного с токеном OAuth или предоставленным ключом разработчика, не включен доступ к Cloud Storage JSON API.Чаще всего это связано с тем, что JSON API облачного хранилища не включен в Google Cloud Console, хотя есть и другие случаи, когда проект заблокирован или был удален, когда это могло произойти. |
UserProjectAccessDenied | Инициатор запроса не авторизован для использования проекта, указанного в его запросе. У инициатора запроса должно быть разрешение serviceusage.services.use для указанного проекта. |
UserProjectAccountProblem | Проблема с проектом, использованным в запросе, препятствует успешному завершению операции.Одна проблема может заключаться в выставлении счетов. Проверьте страницу выставления счетов, чтобы узнать, есть ли у вас просроченный остаток или истек срок действия кредитной карты (или другого платежного механизма) в вашей учетной записи. Для создания проекта см. Страницу "Проекты" в Google Cloud Console. Информацию о других проблемах см. На странице "Ресурсы и поддержка". |
userRateLimitExceeded | Превышена квота на количество пользователей, указанная разработчиком. Если вы разработчик, вы можете просмотреть эти квоты на панели «Квоты» в Google Cloud Console. |
404 — Не найдено
Причина | Описание |
---|---|
не найдено | Либо нет метода API, связанного с URL-путем запроса, либо запрос ссылается на один или несколько ресурсов, которые не были найдены. |
405 - Метод запрещен
Причина | Описание |
---|---|
methodNotAllowed | Команда HTTP не поддерживается конечной точкой URL, используемой в запросе.Это может произойти, например, при использовании неправильного глагола с URL-адресами / upload или / download . |
408 - Тайм-аут запроса
409 — Конфликт
Причина | Описание |
---|---|
конфликт | Запрос на изменение ресурса, обычно это хранилище . *. Update или метод storage. *. Patch , не смог зафиксировать изменение из-за конфликтующего одновременного изменения одного и того же ресурса.Запрос можно повторить, хотя следует внимательно рассмотреть новое состояние ресурса, чтобы избежать слепой замены изменений другого агента. |
410 - ушел
Описание |
---|
Вы попытались использовать возобновляемый сеанс загрузки, который больше не доступен. Если сообщенный код состояния не был успешным, и вы все еще хотите загрузить файл, вы должны начать новый сеанс. |
411 — Требуемая длина
Описание |
---|
Необходимо предоставить HTTP-заголовок Content-Length.У этой ошибки нет тела ответа. |
412 - Ошибка предварительного условия
Причина | Описание |
---|---|
conditionNotMet | По крайней мере одно из указанных вами предварительных условий не выполнено. |
orgPolicyConstraintFailed | Запрос нарушает ограничение OrgPolicy. |
413 - Слишком большая полезная нагрузка
Причина | Описание |
---|---|
uploadTooLarge | JSON API облачного хранилища поддерживает объекты размером до 5 ТБ. Эта ошибка может также возникнуть, если копирование объектов между местоположениями и / или классами хранения не может быть завершено в течение 30 секунд. В этом случае используйте вместо этого метод Rewrite. |
416 - Запрошенный диапазон не соответствует требованиям
Причина | Описание |
---|---|
запрошеноRangeNotSatisfiable | Запрошенный диапазон не может быть удовлетворен. |
429 - слишком много запросов
499 - закрытый запрос клиента
Описание |
---|
Возобновляемая загрузка была отменена по запросу клиента до завершения.У этой ошибки нет тела ответа. |
500 - внутренняя ошибка сервера
502 - плохой шлюз
Эта ошибка возникает, когда не удалось связаться с внутренней службой. Он не отформатирован с помощью документа JSON. Пожалуйста, попробуйте еще раз, используя усеченная экспоненциальная отсрочка.
503 - Служба недоступна
504 - тайм-аут шлюза
Эта ошибка возникает, когда не удалось связаться с внутренней службой. Он не отформатирован с помощью документа JSON.Пожалуйста, попробуйте еще раз, используя усеченная экспоненциальная отсрочка.
кодов ответа RESTful API | Amazon Drive
Коды состояния HTTP, используемые RESTful Amazon Drive API.
Код состояния HTTP | Описание |
---|---|
200 ОК | Успешно. |
201 Создано | Создано. |
400 Плохой запрос | Неверный входной параметр. В сообщении об ошибке должно быть указано, какое именно и почему. |
401 Неавторизованный | Клиент передал неверный токен аутентификации. Клиент должен обновить токен и повторить попытку. |
403 Запрещено | * Клиента не существует.* Приложение не зарегистрировано. * Приложение пытается получить доступ к свойствам, не принадлежащим приложению. * Приложение пытается удалить / очистить корневой узел. * Приложение пытается обновить contentProperties. * Работа заблокирована (для сторонних приложений). * Счет клиента превышает квоту. |
404 Не найдено | Ресурс не найден. |
405 Метод запрещен | Ресурс не поддерживает указанную команду HTTP. |
409 Конфликт | Конфликт. |
411 Требуемая длина | Заголовок Content-Length не указан. |
412 Ошибка предварительного условия | Предварительное условие не выполнено. |
429 Слишком много запросов | Слишком много запросов на ограничение скорости. |
500 Внутренняя ошибка сервера | Серверы не работают должным образом.Запрос, вероятно, действителен, но его необходимо запросить повторно позже. |
503 Служба недоступна | Служба недоступна. |
Поддержка
Если у вас есть вопросы, посетите форум разработчиков.
.