HttpStatusCode Перечисление (System.Net) | Microsoft Learn

0 net-6.0 net-7.0 netcore-2.1 netcore-2.2 netcore-3.0 netcore-3.1 netstandard-2.1 «> 0 net-6.0 net-7.0 netcore-2.1 netcore-2.2 netcore-3.0 netcore-3.1 netstandard-2.1 «>

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

Перечисление HttpStatusCode содержит значения кодов состояния, определенных в RFC 2616 для HTTP 1.1.

Состояние HTTP-запроса содержится в свойстве HttpWebResponse.StatusCode .
HttpWebRequest.AllowAutoRedirect Если свойство имеет значениеfalse, следующие значения перечисления вызывают исключение:

Accepted202

Эквивалент HTTP-состояния 202. Значение Accepted указывает, что запрос принят для дальнейшей обработки.

AlreadyReported208

Эквивалент HTTP-состояния 208. AlreadyReported указывает, что элементы привязки WebDAV уже перечислены в предыдущей части ответа с несколькими состояниями и не включаются снова.

Ambiguous300

Эквивалент HTTP-состояния 300. Ambiguous указывает, что запрашиваемые данные имеют несколько представлений. Действие, выполняемое по умолчанию, состоит в перенаправлении и отслеживании данных заголовка Location, связанного с этим ответом. Ambiguous — синоним MultipleChoices.

BadGateway502

Эквивалент HTTP-состояния 502. Значение BadGateway указывает, что промежуточный прокси-сервер получил неправильный ответ от другого прокси или исходного сервера.

BadRequest400

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

Conflict409

Эквивалент HTTP-состояния 409. Conflict указывает, что запрос не может быть выполнен из-за конфликта на сервере.

Continue100

Эквивалент HTTP-состояния 100. Continue указывает, что клиент может продолжать выполнять свой запрос.

Created201

Эквивалент HTTP-состояния 201. Created указывает, что запрос привел к созданию нового ресурса до того, как был послан ответ.

EarlyHints103

Эквивалент HTTP-состояния 103. EarlyHints указывает клиенту, что сервер, скорее всего, отправляет окончательный ответ с полями заголовка, включенными в информационный ответ.

ExpectationFailed417

Эквивалент HTTP-состояния 417. ExpectationFailed указывает, что ожидание, заданное в заголовке Expect, не может быть выполнено сервером.

FailedDependency424

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

Forbidden403

Эквивалент HTTP-состояния 403. Forbidden указывает, что сервер отказывается выполнять запрос.

Found302

Эквивалент HTTP-состояния 302. Found указывает, что запрашиваемые данные расположены по универсальному коду ресурса (URI), заданному в заголовке Location. Действие, выполняемое по умолчанию при получении этого состояния, состоит в отслеживании заголовка Location, связанного с ответом. Если для исходного запроса использовался метод POST, перенаправляемый запрос будет использовать метод GET.

Found — синоним Redirect.

GatewayTimeout504

Эквивалент HTTP-состояния 504. Значение GatewayTimeout указывает, что промежуточный прокси-сервер простаивает, ожидая ответа от другого прокси или исходного сервера.

Gone410

Эквивалент HTTP-состояния 410.

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

HttpVersionNotSupported505

Эквивалент HTTP-состояния 505. HttpVersionNotSupported указывает, что запрашиваемая версия HTTP не поддерживается сервером.

IMUsed226

Эквивалент HTTP-состояния 226. IMUsed указывает, что сервер выполнил запрос к ресурсу, а ответ является представлением результата одной или нескольких манипуляций с экземплярами, примененным к текущему экземпляру.

InsufficientStorage507

Эквивалент HTTP-состояния 507. InsufficientStorage указывает, что серверу не удается сохранить представление, необходимое для выполнения запроса.

InternalServerError500

Эквивалент HTTP-состояния 500. InternalServerError указывает, что на сервере произошла общая ошибка.

LengthRequired411

Эквивалент HTTP-состояния 411. LengthRequired указывает, что требуемый заголовок Content-Length отсутствует.

Locked423

Эквивалент HTTP-состояния 423. Locked указывает, что исходный или целевой ресурс заблокирован.

LoopDetected508

Эквивалент HTTP-состояния 508. LoopDetected указывает, что сервер прервал операцию, так как при обработке запроса WebDAV с «Depth: Infinity» был обнаружен бесконечный цикл.

Этот код состояния предназначен для обеспечения обратной совместимости с клиентами, не имеющими сведений о коде состояния 208 AlreadyReported, который отображается в теле ответа с несколькими состояниями.

MethodNotAllowed405

Эквивалент HTTP-состояния 405. MethodNotAllowed указывает, что метод запроса (POST или GET) не разрешен для запрашиваемого ресурса.

MisdirectedRequest421

Эквивалент HTTP-состояния 421. MisdirectedRequest указывает, что запрос был направлен на сервер, который не может создать ответ.

Moved301

Эквивалент HTTP-состояния 301. Moved указывает, что запрашиваемые данные перемещены по универсальному коду ресурса (URI), заданному в заголовке Location. Действие, выполняемое по умолчанию при получении этого состояния, состоит в отслеживании заголовка Location, связанного с ответом. Если для исходного запроса использовался метод POST, перенаправляемый запрос будет использовать метод GET. Moved — синоним

MovedPermanently.

MovedPermanently301

Эквивалент HTTP-состояния 301. MovedPermanently указывает, что запрашиваемые данные перемещены по универсальному коду ресурса (URI), заданному в заголовке Location. Действие, выполняемое по умолчанию при получении этого состояния, состоит в отслеживании заголовка Location, связанного с ответом. MovedPermanently — синоним Moved.

MultipleChoices300

Эквивалент HTTP-состояния 300. MultipleChoices указывает, что запрашиваемые данные имеют несколько представлений. Действие, выполняемое по умолчанию, состоит в перенаправлении и отслеживании данных заголовка Location, связанного с этим ответом.

MultipleChoices — синоним Ambiguous.

MultiStatus207

Эквивалент HTTP-состояния 207. MultiStatus указывает несколько кодов состояния для одного ответа во время операции WebDAV. Текст ответа содержит XML-код, описывающий коды состояния.

NetworkAuthenticationRequired511

Эквивалент HTTP-состояния 511. NetworkAuthenticationRequired указывает, что клиенту необходимо пройти проверку подлинности, чтобы получить доступ к сети. Он предназначен для использования путем перехвата прокси-серверов, используемых для управления доступом к сети.

NoContent204

Эквивалент HTTP-состояния 204. NoContent указывает, что запрос успешно обработан и ответ является преднамеренно пустым.

NonAuthoritativeInformation203

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

NotAcceptable406

Эквивалент HTTP-состояния 406. NotAcceptable указывает, что клиент показывает с помощью заголовков Accept, что он не принимает любые из доступных представлений ресурса.

NotExtended510

Эквивалент HTTP-состояния 510. NotExtended указывает, что для выполнения серверу требуются дополнительные расширения запроса.

NotFound404

Эквивалент HTTP-состояния 404. NotFound указывает, что запрашиваемый ресурс отсутствует на сервере.

NotImplemented501

Эквивалент HTTP-состояния 501. NotImplemented указывает, что сервер не поддерживает запрашиваемую функцию.

NotModified304

Эквивалент HTTP-состояния 304. NotModified указывает, что клиентская кэшированная копия является самой новой. Данные ресурса не пересылаются.

OK200

Эквивалент HTTP-состояния 200. OK указывает, что запрос завершился успешно и запрашиваемые данные находятся в ответе. Это наиболее часто получаемый код состояния.

PartialContent206

Эквивалент HTTP-состояния 206. Значение PartialContent указывает, что ответ является частичным ответом на запрос GET, содержащий диапазон байтов.

PaymentRequired402

Эквивалент HTTP-состояния 402. PaymentRequired зарезервирован для дальнейшего использования.

PermanentRedirect308

Эквивалент HTTP-состояния 308. Значение PermanentRedirect указывает, что данные запроса расположены по универсальному коду ресурса (URI), заданному в заголовке Location. Действие, выполняемое по умолчанию при получении этого состояния, состоит в отслеживании заголовка Location, связанного с ответом. Если для исходного запроса использовался метод POST, перенаправляемый запрос будет также использовать метод POST.

PreconditionFailed412

Эквивалент HTTP-состояния 412. PreconditionFailed указывает, что условие, установленное для этого запроса, не соблюдено и запрос не может быть выполнен. Условия задаются с помощью заголовков условного запроса, таких как If-Match, If-None-Match или If-Unmodified-Since.

PreconditionRequired428

Эквивалент HTTP-состояния 428. PreconditionRequired указывает, что сервер требует, чтобы запрос был условным.

Processing102

Эквивалент HTTP-состояния 102. Значение Processing указывает, что сервер принял весь запрос, но еще не выполнил его.

ProxyAuthenticationRequired407

Эквивалент HTTP-состояния 407. ProxyAuthenticationRequired указывает, что запрашиваемый прокси требует прохождения проверки подлинности. В заголовке Proxy-authenticate подробно излагается порядок выполнения проверки подлинности.

Redirect302

Эквивалент HTTP-состояния 302. Redirect указывает, что запрашиваемые данные расположены по универсальному коду ресурса (URI), заданному в заголовке Location. Действие, выполняемое по умолчанию при получении этого состояния, состоит в отслеживании заголовка Location, связанного с ответом. Если для исходного запроса использовался метод POST, перенаправляемый запрос будет использовать метод GET. Redirect — синоним Found.

RedirectKeepVerb307

Эквивалент HTTP-состояния 307. Значение RedirectKeepVerb указывает, что данные запроса расположены по универсальному коду ресурса (URI), заданному в заголовке Location. Действие, выполняемое по умолчанию при получении этого состояния, состоит в отслеживании заголовка Location, связанного с ответом. Если для исходного запроса использовался метод POST, перенаправляемый запрос будет также использовать метод POST. RedirectKeepVerb — синоним TemporaryRedirect.

RedirectMethod303

Эквивалент HTTP-состояния 303. Значение RedirectMethod приводит к автоматическому перенаправлению клиента на универсальный код ресурса (URI), заданный в заголовке Location, в результате выполнения запроса POST. Запрос ресурса, задаваемого заголовком Location, выполняется с помощью метода GET. RedirectMethod — синоним SeeOther.

RequestedRangeNotSatisfiable416

Эквивалент HTTP-состояния 416. Значение RequestedRangeNotSatisfiable указывает, что диапазон данных, запрашиваемых из ресурса, не может быть возвращен из-за расположения начала диапазона до начала ресурса или конца диапазона после конца ресурса.

RequestEntityTooLarge413

Эквивалент HTTP-состояния 413. RequestEntityTooLarge указывает, что запрос слишком велик для сервера, чтобы быть обработанным.

431

Эквивалент HTTP-состояния 431. RequestHeaderFieldsTooLarge указывает, что сервер не будет обрабатывать запрос, так как поля заголовка (отдельное поле заголовка или все поля заголовка) слишком велики.

RequestTimeout408

Эквивалент HTTP-состояния 408. RequestTimeout указывает, что клиент не послал запрос в пределах времени, когда запрос ожидался сервером.

RequestUriTooLong414

Эквивалент HTTP-состояния 414. RequestUriTooLong указывает, что универсальный код ресурса (URI) слишком длинный.

ResetContent205

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

SeeOther303

Эквивалент HTTP-состояния 303. Значение SeeOther приводит к автоматическому перенаправлению клиента на универсальный код ресурса (URI), заданный в заголовке Location, в результате выполнения запроса POST. Запрос ресурса, задаваемого заголовком Location, выполняется с помощью метода GET. SeeOther является синонимом RedirectMethod.

ServiceUnavailable503

Эквивалент HTTP-состояния 503. Значение ServiceUnavailable указывает, что сервер временно недоступен, обычно из-за высокой нагрузки или выполняемого обслуживания.

SwitchingProtocols101

Эквивалент HTTP-состояния 101. SwitchingProtocols указывает, что изменяется протокол или версия протокола.

TemporaryRedirect307

Эквивалент HTTP-состояния 307. Значение TemporaryRedirect указывает, что данные запроса расположены по универсальному коду ресурса (URI), заданному в заголовке Location. Действие, выполняемое по умолчанию при получении этого состояния, состоит в отслеживании заголовка Location, связанного с ответом. Если для исходного запроса использовался метод POST, перенаправляемый запрос будет также использовать метод POST. TemporaryRedirect — синоним RedirectKeepVerb.

TooManyRequests429

Эквивалент HTTP-состояния 429. TooManyRequests указывает, что пользователь отправил слишком много запросов за определенный период времени.

Unauthorized401

Эквивалент HTTP-состояния 401. Значение Unauthorized указывает, что для запрашиваемого ресурса требуется аутентификация. В заголовке WWW-Authenticate подробно излагается порядок выполнения проверки подлинности.

UnavailableForLegalReasons451

Эквивалент HTTP-состояния 451. UnavailableForLegalReasons указывает, что сервер запрещает доступ к ресурсу в результате юридического требования.

UnprocessableEntity422

Эквивалент HTTP-состояния 422. UnprocessableEntity указывает, что запрос имеет правильный формат, но был выполнен из-за семантических ошибок.

UnsupportedMediaType415

Эквивалент HTTP-состояния 415. UnsupportedMediaType указывает, что запрос этого типа не поддерживается.

Unused306

Эквивалент HTTP-состояния 306. Unused является предлагаемым расширением спецификации HTTP/1. 1, которая полностью не определена.

UpgradeRequired426

Эквивалент HTTP-состояния 426. UpgradeRequired указывает, что клиент должен переключиться на другой протокол, например на TLS/1.0.

UseProxy305

Эквивалент HTTP-состояния 305. UseProxy указывает, что запрос должен использовать прокси-сервер по универсальному коду ресурса (URI), заданному в заголовке Location.

VariantAlsoNegotiates506

Эквивалент HTTP-состояния 506. VariantAlsoNegotiates указывает, что выбранный ресурс настроен для участия в прозрачном согласовании содержимого и, следовательно, не является подходящей конечной точкой для процесса согласования.

Раскодируем язык серверных ответов – разбираемся в HTTP-кодах — SEO на vc.ru

Когда мы отправляем запросы в интернете, наши браузеры и приложения взаимодействуют с серверами, используя протокол HTTP (Hypertext Transfer Protocol). Этот протокол обеспечивает передачу информации между клиентом и сервером, позволяя установить соединение, передать данные и получить ответы. Одним из ключевых аспектов этого общения являются коды состояния HTTP, которые серверы отправляют в ответ на наши запросы. Каждый HTTP-код представляет собой трехзначное число, которое сообщает о результате выполнения запроса и состоянии сервера.
Рассмотрим большую часть кодов ответа сервера, чтобы помочь разобраться в них и понять, что происходит при взаимодействии с веб-серверами. Но чтобы запомнить эти коды легко и с улыбкой, мы решили добавить немного юмора в статью.

213 просмотров

1xx – информационные

100 Continue — сервер получил начальный запрос и готов принять остальную часть запроса.

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

101 Switching Protocols – сервер согласен с изменением протокола, указанного в заголовке запроса.

Когда клиент отправляет запрос на сервер с заголовком, указывающим на необходимость смены протокола, сервер может ответить с кодом состояния 101 Switching Protocols. Это означает, что сервер согласен изменить текущий протокол на тот, который указан в заголовке запроса. Обычно это используется для переключения с HTTP на HTTPS (шифрованный протокол) после успешного установления безопасного соединения.

102 Processing – сервер продолжает обрабатывать запрос, но пока не имеет ответа.

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

103 Early Hints – сервер отправляет клиенту некоторые заголовки ответа, ещё не завершив обработку запроса.

Когда сервер начинает обработку запроса, но уже имеет некоторую предварительную информацию, которую он может отправить клиенту, он может использовать код состояния 103 Early Hints. Это позволяет серверу отправить клиенту некоторые заголовки ответа, которые могут быть полезными для клиента, в то время как обработка запроса все еще продолжается. Клиент может использовать эту предварительную информацию для принятия решений или начала выполнения операций до завершения обработки запроса. Это полезно, когда сервер может предоставить некоторую информацию заранее, чтобы клиент начал загрузку ресурсов или установку соединения, минимизируя задержку.

2xx – успешные

200 OK – запрос успешно выполнен, и сервер возвращает запрошенные данные.

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

201 Created – запрос успешно выполнен, и сервер создал новый ресурс.

Когда клиент отправляет запрос на создание нового ресурса, и сервер успешно создает этот ресурс, он возвращает код состояния 201 Created. Это означает, что сервер успешно выполнил запрос и создал новый ресурс, который обычно возвращается в теле ответа или в заголовке ответа.

202 Accepted – запрос принят для обработки, но ещё не завершен.

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

203 Non-Authoritative Information – запрос выполнен, но информация может быть получена из другого источника.

При выполнении запроса сервер может вернуть код состояния 203 Non-Authoritative Information, чтобы указать, что запрошенная информация может быть получена из другого источника. Это может произойти, например, при использовании прокси-сервера, который может предоставить информацию, но не является официальным источником.

204 No Content – запрос успешно выполнен, но сервер не возвращает содержимое.

Когда сервер успешно обрабатывает запрос, но не возвращает никакого содержимого в теле ответа, он использует код состояния 204 No Content. Это может быть полезно, когда клиенту не требуется обновление содержимого, но серверу необходимо подтвердить успешное выполнение запроса.

206 Partial Content – сервер возвращает только часть запрашиваемого диапазона содержимого.

Когда клиент запрашивает только часть содержимого ресурса, сервер может вернуть код состояния 206 Partial Content. Это означает, что сервер возвращает только часть запрашиваемого диапазона содержимого в теле ответа. Этот код состояния часто используется для загрузки больших файлов или для потоковой передачи данных.

207 Multi-Status – сервер отправляет информацию о нескольких статусах выполнения запроса.

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

3xx – перенаправления

300 Multiple Choices – существуют несколько возможных вариантов ответа. Клиент должен выбрать один из них.

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

301 Moved Permanently – ресурс переехал на постоянной основе. Клиент должен обновить свои закладки.

Когда ресурс переехал на постоянной основе на другой URL, сервер возвращает код состояния 301 Moved Permanently. Это означает, что клиент должен обновить свои закладки или ссылки на этот ресурс, чтобы обращаться к новому URL. В дальнейшем все запросы на старый URL будут автоматически перенаправляться на новый URL.

302 Found – ресурс временно перемещен. Клиент должен обратиться по новому адресу.

Когда ресурс временно перемещен на другой URL, сервер может вернуть код состояния 302 Found. Это означает, что клиент должен обратиться по новому URL для получения запрашиваемого ресурса. Однако клиент может продолжать использовать исходный URL в будущих запросах, так как перемещение является временным.

303 See Other – сервер выполнил запрос и просит клиента обратиться к другому URL для получения результата.

Когда сервер успешно выполнил запрос, но хочет, чтобы клиент обратился к другому URL для получения результата, он может использовать код состояния 303 See Other. Это часто используется после выполнения POST-запроса, чтобы перенаправить клиента на другую страницу для отображения результата операции.

304 Not Modified – клиент может использовать свою закешированную версию, так как ресурс не был изменен.

Если клиент отправляет запрос на ресурс, и сервер определяет, что ресурс не изменился с момента последнего запроса, он может вернуть код состояния 304 Not Modified. Это означает, что клиент может использовать свою закешированную версию ресурса, не загружая его заново, и сохранять пропускную способность сети.

305 Use Proxy – ресурс должен быть запрошен через прокси-сервер.

Когда ресурс должен быть запрошен через прокси-сервер, сервер может вернуть код состояния 305 Use Proxy. Это указывает клиенту, что для получения ресурса он должен использовать указанный прокси-сервер вместо непосредственного обращения к целевому серверу.

307 Temporary Redirect – ресурс временно перемещен. Клиент должен обратиться по новому адресу, но не изменять метод HTTP-запроса.

Аналогично коду состояния 302 Found, код 307 Temporary Redirect указывает на временное перемещение ресурса на новый URL. Клиент должен обратиться по новому адресу для получения ресурса, сохраняя при этом исходный метод HTTP-запроса (например, GET или POST).

308 Permanent Redirect – ресурс переехал на постоянной основе. Клиент должен обратиться по новому адресу, не изменяя метод HTTP-запроса.

Подобно коду состояния 301 Moved Permanently, код 308 Permanent Redirect указывает на постоянное перемещение ресурса на новый URL. Клиент должен обратиться по новому адресу для получения ресурса, сохраняя при этом исходный метод HTTP-запроса без изменений. Это означает, что все будущие запросы на старый URL будут автоматически перенаправляться на новый URL.

4xx – ошибки клиента

400 Bad Request – сервер не может обработать запрос из-за некорректного синтаксиса или неверных параметров.

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

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

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

402 Payment Required – запрашиваемый ресурс требует оплаты.

Код состояния 402 Payment Required указывает на то, что для доступа к запрашиваемому ресурсу требуется оплата. Это может быть использовано, например, для платных онлайн-сервисов или контента.

403 Forbidden – доступ к запрашиваемому ресурсу запрещен.

Когда доступ к запрашиваемому ресурсу запрещен, сервер возвращает код состояния 403 Forbidden. Это означает, что клиент не имеет разрешения на доступ к ресурсу, даже после авторизации.

404 Not Found – запрашиваемый ресурс не найден на сервере.

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

405 Method Not Allowed – метод, используемый в запросе, не поддерживается для данного ресурса.

Если метод, указанный в запросе, не поддерживается для данного ресурса, сервер может вернуть код состояния 405 Method Not Allowed. Это означает, что клиент отправил запрос с недопустимым методом (например, POST вместо GET) для данного ресурса.

406 Not Acceptable – сервер не может вернуть данные, соответствующие требованиям заголовков запроса.

Когда сервер не может вернуть данные, соответствующие требованиям заголовков запроса, он возвращает код состояния 406 Not Acceptable. Это означает, что клиент указал в запросе заголовки, которые сервер не может удовлетворить (например, требуемый формат данных не поддерживается).

407 Proxy Authentication Required – для доступа к запрашиваемому ресурсу требуется авторизация на прокси-сервере.

Если для доступа к запрашиваемому ресурсу требуется авторизация на прокси-сервере, сервер может вернуть код состояния 407 Proxy Authentication Required. Это указывает, что клиент должен предоставить учетные данные для авторизации на прокси-сервере, чтобы получить доступ к ресурсу.

408 Request Timeout – время ожидания запроса истекло.

Когда время ожидания запроса истекло, сервер возвращает код состояния 408 Request Timeout. Это может произойти, например, когда сервер не получает ожидаемый запрос от клиента в течение заданного времени.

409 Conflict – запрос не может быть выполнен из-за конфликта в текущем состоянии ресурса.

Если запрос не может быть выполнен из-за конфликта в текущем состоянии ресурса, сервер может вернуть код состояния 409 Conflict. Это может произойти, например, при попытке создать ресурс, который уже существует, или при попытке изменить ресурс, который был изменен другим клиентом.

410 Gone – ресурс был удален и больше не доступен.

Когда ресурс был удален и больше не доступен на сервере, сервер возвращает код состояния 410 Gone. Это указывает на то, что ресурс больше не существует и не будет доступен в будущем.

411 Length Required – заголовок Content-Length отсутствует или имеет некорректное значение.

Если в запросе отсутствует или имеет некорректное значение заголовок Content-Length, сервер может вернуть код состояния 411 Length Required. Это указывает на то, что сервер требует наличие корректного заголовка Content-Length, чтобы определить длину тела запроса.

412 Precondition Failed – запрос не выполнен из-за невыполнения одного из предусловий, указанных в заголовках запроса.

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

413 Payload Too Large – запрос превышает максимально допустимый размер.

Если размер тела запроса превышает максимально допустимый размер, сервер может вернуть код состояния 413 Payload Too Large. Это указывает на то, что сервер отклоняет запрос, поскольку его размер превышает ограничения сервера.

414 URI Too Long – запрос превышает максимально допустимую длину URI.

Если длина URI (адреса запрашиваемого ресурса) превышает максимально допустимую длину, сервер может вернуть код состояния 414 URI Too Long. Это указывает на то, что сервер не может обработать запрос из-за слишком длинного URI.

415 Unsupported Media Type – сервер не поддерживает указанный тип данных в запросе.

Если сервер не поддерживает указанный тип данных в запросе, он может вернуть код состояния 415 Unsupported Media Type. Это означает, что сервер не может обработать запрос, так как тип данных, указанный в заголовке Content-Type, не поддерживается.

416 Range Not Satisfiable – сервер не может удовлетворить условия диапазона, указанные в заголовке запроса.

Если сервер не может удовлетворить условия диапазона, указанные в заголовке запроса, он может вернуть код состояния 416 Range Not Satisfiable. Это может произойти, например, при попытке запросить диапазон байтов файла, который выходит за пределы его размера.

417 Expectation Failed – сервер не может выполнить требования, указанные в заголовке Expect.

Когда сервер не может выполнить требования, указанные в заголовке Expect, он возвращает код состояния 417 Expectation Failed. Это указывает на то, что сервер не может соответствовать ожиданиям, указанным в запросе.

418 I’m a teapot – шуточный код ответа, указывающий на то, что сервер является чайником.

Этот код состояния, 418 I’m a teapot, является шуточным и указывает на то, что сервер является чайником. Он не имеет реального использования в стандартном протоколе HTTP.

421 Misdirected Request – сервер не может обрабатывать запрос из-за неправильной адресации или протокола в запросе.

Если сервер не может обработать запрос из-за неправильной адресации или протокола в запросе, он может вернуть код состояния 421 Misdirected Request. Это указывает на то, что запрос был отправлен на неправильный сервер или несовместим с текущим протоколом.

422 Unprocessable Entity – сервер не может обработать содержимое запроса, так как оно содержит семантические ошибки.

Если сервер не может обработать содержимое запроса из-за наличия семантических ошибок, он может вернуть код состояния 422 Unprocessable Entity. Это указывает на то, что сервер понимает формат запроса, но не может обработать его из-за ошибок в содержимом.

423 Locked – ресурс заблокирован и не доступен для изменений.

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

424 Failed Dependency – запрос зависит от другого запроса, который не был выполнен.

Если запрос зависит от другого запроса, который не был выполнен, сервер может вернуть код состояния 424 Failed Dependency. Это указывает на то, что выполнение запроса невозможно из-за неудовлетворенных зависимостей.

425 Too Early – сервер не может обработать запрос, так как это было сделано слишком рано.

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

426 Upgrade Required – клиент должен переключиться на более новую версию протокола.

Если сервер требует переключения на более новую версию протокола, он может вернуть код состояния 426 Upgrade Required. Это указывает на то, что клиент должен обновить свою версию протокола для продолжения запроса.

429 Too Many Requests – клиент отправил слишком много запросов в заданном временном интервале.

Если клиент отправляет слишком много запросов в заданном временном интервале, сервер может вернуть код состояния 429 Too Many Requests. Это указывает на то, что клиент превысил ограничения на количество запросов и должен уменьшить их количество.

431 Request Header Fields Too Large – заголовки запроса слишком большие для обработки сервером.

Если заголовки запроса слишком большие для обработки сервером, он может вернуть код состояния 431 Request Header Fields Too Large. Это указывает на то, что сервер отклоняет запрос из-за слишком большого объема заголовков запроса.

451 Unavailable For Legal Reasons – сервер отказывается выполнять запрос в соответствии с правовыми требованиями.

Когда сервер отказывается выполнить запрос в соответствии с правовыми требованиями, он может вернуть код состояния 451 Unavailable For Legal Reasons. Это указывает на то, что доступ к ресурсу запрещен по юридическим причинам, таким как цензура или соблюдение законов о защите информации.

499 Client Closed Request – соединение было закрыто клиентом перед получением ответа от сервера.

Если соединение было закрыто клиентом перед получением ответа от сервера, сервер может вернуть код состояния 499 Client Closed Request. Это указывает на то, что клиент закрыл соединение до завершения запроса и сервер не смог отправить ответ.

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

500 Internal Server Error – внутренняя ошибка сервера.

Когда на сервере происходит внутренняя ошибка, которая не может быть точно идентифицирована, он возвращает код состояния 500 Internal Server Error. Это указывает на то, что произошла ошибка на стороне сервера, которая препятствует его способности обработать запрос.

501 Not Implemented – сервер не поддерживает функциональность, необходимую для обработки запроса.

Если сервер не поддерживает функциональность, необходимую для обработки запроса, он возвращает код состояния 501 Not Implemented. Это указывает на то, что сервер не распознает или не поддерживает метод или функцию, указанные в запросе.

502 Bad Gateway – сервер, действуя в качестве шлюза или прокси-сервера, получил некорректный ответ от вышестоящего сервера.

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

503 Service Unavailable – сервер временно не может обрабатывать запросы из-за перегрузки или обслуживания.

Если сервер временно не может обрабатывать запросы из-за перегрузки, обслуживания или других временных причин, он возвращает код состояния 503 Service Unavailable. Это указывает на то, что сервер временно недоступен и не может обработать запрос.

504 Gateway Timeout – сервер, действуя в качестве шлюза или прокси-сервера, не получает ответ от вышестоящего сервера в указанное время.

Когда сервер действует в качестве шлюза или прокси-сервера и не получает ответ от вышестоящего сервера в указанное время, он возвращает код состояния 504 Gateway Timeout. Это указывает на то, что вышестоящий сервер не отвечает в течение установленного времени ожидания.

506 Variant Also Negotiates – сервер может генерировать содержимое, соответствующее одному из вариантов, указанных в заголовке запроса

Если сервер не поддерживает версию HTTP, указанную в запросе, он возвращает код состояния 505 HTTP Version Not Supported. Это указывает на то, что сервер не может обработать запрос из-за несовместимости с версией HTTP, используемой клиентом.Если сервер может генерировать содержимое, соответствующее одному из вариантов, указанных в заголовке запроса, он возвращает код состояния 506 Variant Also Negotiates. Это указывает на то, что сервер предлагает клиенту выбрать один из доступных вариантов содержимого.

507 Insufficient Storage – сервер не может выполнить запрос, так как ему не хватает свободного места для хранения данных.

Когда сервер не может выполнить запрос из-за ограничений в хранилище данных, он возвращает код состояния 507 Insufficient Storage. Это указывает на то, что сервер не может обработать запрос, так как ему не хватает свободного места для хранения данных.

508 Loop Detected – обнаружено бесконечное перенаправление запросов.

Если сервер обнаруживает бесконечное перенаправлениезапросов, он возвращает код состояния 508 Loop Detected. Это указывает на то, что сервер обнаружил циклическую последовательность перенаправлений, которая не может быть разрешена.

509 Bandwidth Limit Exceeded – был превышен предельный лимит пропускной способности сервера.

Если сервер превышает предельный лимит пропускной способности, он возвращает код состояния 509 Bandwidth Limit Exceeded. Это указывает на то, что сервер не может обработать запрос из-за превышения ограничений пропускной способности.

510 Not Extended – запрос требует дополнительных расширений, которые не поддерживаются сервером.

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

511 Network Authentication Required – для доступа к запрашиваемому ресурсу требуется авторизация на сетевом уровне.

Если для доступа к запрашиваемому ресурсу требуется авторизация на сетевом уровне, сервер возвращает код состояния 511 Network Authentication Required. Это указывает на то, что клиент должен предоставить учетные данные для авторизации на сетевом уровне, чтобы получить доступ к ресурсу.

52x – ошибки обслуживания Cloudflare

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

521 Web Server Is Down – исходный сервер недоступен.

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

522 Connection Timed Out – соединение с исходным сервером превысило время ожидания.

Когда соединение с исходным сервером превышает время ожидания, сервер Cloudflare возвращает код состояния 522 Connection Timed Out. Это может произойти, когда исходный сервер не отвечает в течение установленного времени ожидания, что может быть вызвано перегрузкой сервера, сетевыми проблемами или другими факторами.

523 Origin Is Unreachable – исходный сервер недоступен, возможно, из-за сетевых проблем.

Если исходный сервер недоступен из-за проблем с сетью или другими причинами, сервер Cloudflare возвращает код состояния 523 Origin Is Unreachable. Это указывает на то, что Cloudflare не может установить соединение с исходным сервером из-за его недоступности.

525 SSL Handshake Failed – произошла ошибка при установке безопасного соединения с исходным сервером.

Если происходит ошибка при установке безопасного соединения (SSL) с исходным сервером, Cloudflare возвращает код состояния 525 SSL Handshake Failed. Это может быть вызвано неправильной настройкой SSL-сертификата на исходном сервере или другими проблемами, связанными с шифрованием и безопасным соединением.

Источник: http.cat

редирект — что именно означает HTTP/1.1 302?

Этот вопрос был задан давно, когда RFC 2616 все еще висела в воздухе. Некоторые ответы на этот вопрос основаны на таком документе, который в настоящее время уже не актуален. Цитируя Марка Ноттингема, который на момент написания статьи был сопредседателем рабочих групп IETF HTTP и QUIC:

Не используйте RFC2616 . Удалите его со своих жестких дисков, закладок и сожгите (или ответственно утилизируйте) любые распечатанные копии.

Старый RFC 2616 был заменен следующими документами, которые вместе определяют протокол HTTP/1.1:

  • RFC 7230: Синтаксис и маршрутизация сообщений
  • RFC 7231: Семантика и содержание
  • RFC 7232: условные запросы
  • RFC 7233: запросы диапазона
  • RFC 7234: кэширование
  • RFC 7235: Аутентификация

А по состоянию на июнь 2022 года новый набор RFC устарел для перечисленных выше документов:

  • RFC 9110: HTTP-семантика
  • RFC 9111: HTTP-кеширование
  • RFC 9112: HTTP/1.1

Итак, я стремлюсь предоставить ответ на основе RFC 9110, который является текущим справочником по семантике HTTP.

Код состояния

302

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

Веб-браузеры могут измениться с POST на GET в последующем запросе. Если такое поведение нежелательно, вместо него можно использовать код состояния 307 (временное перенаправление).

Вот как код состояния 302 определяется в RFC 9110:

6.4.3. 302 Найдено

Код состояния 302 (Найдено) указывает на то, что целевой ресурс временно находится под другим URI. С момента перенаправления могут время от времени изменяться, клиент должен продолжать использовать целевой URI для будущих запросов.

Сервер ДОЛЖЕН генерировать поле заголовка Location в ответе. содержащий ссылку URI для другого URI. Пользовательский агент МОЖЕТ используйте значение поля Location для автоматического перенаправления. сервера содержание ответа обычно содержит короткую гипертекстовую заметку с гиперссылка на разные URI.

Примечание: По историческим причинам пользовательский агент МОЖЕТ изменить метод запроса от POST до GET для последующего запроса. Если такое поведение нежелательно, 307 (Временное перенаправление) статус вместо него можно использовать код.

Согласно веб-документам MDN от Mozilla, типичный вариант использования для [ 302 ]302]:

Веб-страница временно недоступна по непредвиденным причинам. Таким образом, поисковые системы не обновляют свои ссылки.

Другие коды состояния для перенаправления

RFC 9110 определяет следующие коды состояния для перенаправления (некоторые из этих кодов состояния изначально были определены в других RFC, но все они были объединены в RFC 9).110):

  • 301 : Перемещено навсегда
  • 302 : Найдено
  • 307 : Временное перенаправление
  • 308 : Постоянное перенаправление

Дополнительные сведения см. в этом ответе.

asp.net — Веб-сайт возвращает 302 вместо 200

спросил

Изменено 4 года, 8 месяцев назад

Просмотрено 49 тысяч раз

Ну, это меня пугает. Я использовал инструмент проверки заголовков Http, чтобы проверить заголовки моей веб-страницы и угадать, что. На каждый запрос ответ был 302 вместо 200.

 domain.con
www.домен.con
http://www.домен.con
 

Итак, я что-то пропустил? Я никак не устанавливал редиректы.

Итак, куда, черт возьми, перенаправляет мой сайт? Есть ли дыра в безопасности? 9ОБНОВЛЕНИЕ 0003

: во время поиска в Google нашел это

  • asp.net
  • перенаправление
  • http-status-code-302
2

domain. com не то же самое, что www.domain.com — это редирект.

4

Вы получаете это, потому что .net/IIS перенаправляет ваш www.domain.com или domain.com на www.domain.com/default.aspx, поэтому вы получаете заголовок с 302, а затем один для 200. Я думаю, что это по дизайну, но очень запутанный.

0

Возможно, дело в этом:

302 Найдено

Это самый популярный код перенаправления, но также и пример промышленной практики, противоречащей стандарту. Спецификация HTTP/1.0 (RFC 1945) требовала, чтобы клиент выполнял временное перенаправление (исходная описывающая фраза была «Временно перемещено»), но популярные браузеры реализовали 302 с функциональностью 303 See Other. Поэтому в HTTP/1.1 добавлены коды состояния 303 и 307, чтобы различать два поведения. Однако большинство веб-приложений и фреймворков по-прежнему используют код состояния 302, как если бы это был 303.

303 См. Другое (начиная с HTTP/1. 1)

Ответ на запрос можно найти под другим URI с помощью метода GET. При получении в ответ на PUT следует предположить, что сервер получил данные, и перенаправление должно быть выполнено с отдельным сообщением GET.

http://en.wikipedia.org/wiki/List_of_HTTP_status_codes

Возможно, вы забыли добавить косую черту в конце URL-адреса. Большинство веб-серверов перенаправят вас в «каноническое» местоположение, которое включает косую черту. Если вы включите косую черту, вы можете получить ответ, который ищете.

1

Используете ли вы проверку подлинности с помощью форм? и страница входа в систему — это какая-то другая страница, отличная от страницы по умолчанию, скажем, auth.aspx? Если это так, то вы всегда будете получать код 302, и страница будет перенаправлена ​​на страницу входа.

В ASP.Net мы можем перенаправить с помощью Response.Redirect и Server.Transfer. Если мы пойдем с server.Transfer, код состояния 302 никогда не попадет и сразу попадет в 200.