HTTPQUERY
Русский

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

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

1xxИнформационные (Informational)

100ContinueКлиенту следует продолжить отправку тела запроса.Пример
→ REQUEST
POST /uploads HTTP/1.1
Host: example.com
Content-Length: 5242880
Expect: 100-continue
← RESPONSE
HTTP/1.1 100 Continue

(client now streams the 5 MB body)

HTTP/1.1 201 Created
Location: /uploads/8f2c
101Switching ProtocolsСервер согласен сменить протокол (например, перейти на WebSocket).Пример
→ REQUEST
GET /chat HTTP/1.1
Host: example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13
← RESPONSE
HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
102ProcessingРазбираем код 102 Processing: как такой ответ предотвращает тайм-ауты клиента при долгих запросах и откуда он пришёл из WebDAV.Пример
→ REQUEST
GET /sample.pdf HTTP/1.1
Host: example.com
103Early HintsРазбираем 103 Early Hints: как этот код ускоряет загрузку страницы, позволяя предзагружать ресурсы до прихода окончательного ответа.Пример
→ REQUEST
GET /index.html HTTP/1.1
Host: example.com

2xxУспешные (Success)

200OKЗапрос выполнен успешно; ответ содержит запрошенный ресурс.Пример
→ REQUEST
GET /products/42 HTTP/1.1
Host: example.com
← RESPONSE
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 51

{ "id": 42, "name": "Trailhead Boot", "price": 189 }
201CreatedЗапрос выполнен успешно, создан новый ресурс.Пример
→ REQUEST
POST /products HTTP/1.1
Host: example.com
Content-Type: application/json

{ "name": "Ridge Boot", "price": 210 }
← RESPONSE
HTTP/1.1 201 Created
Location: /products/43
Content-Type: application/json

{ "id": 43, "name": "Ridge Boot", "price": 210 }
202AcceptedУзнайте, что означает ответ 202 Accepted, как он сигнализирует об асинхронной обработке и как опрашивать итоговый результат.Пример
→ REQUEST
POST /job HTTP/1.1
Host: example.com
Content-Type: application/xml
Content-Length: 68

<?xml version="1.0"?>
<job>
  <id>125</id>
  <task>G01</task>
</job>
203Non-Authoritative InformationУзнайте, что означает ответ 203 Non-Authoritative Information, когда прокси возвращают 203 и чем код отличается от 200 OK.Пример
→ REQUEST
GET /instructions HTTP/1.1
Host: example.com
204No ContentУспешно, без тела ответа.Пример
→ REQUEST
DELETE /products/43 HTTP/1.1
Host: example.com
← RESPONSE
HTTP/1.1 204 No Content

(no body)
205Reset ContentУзнайте, что означает ответ 205 Reset Content, как он предписывает клиенту очистить данные формы и чем отличается от 204.Пример
→ REQUEST
POST /signup HTTP/1.1
Host: example.com
Content-Type: application/xml
Content-Length: 92

<?xml version="1.0"?>
<person>
  <name>David Smith</name>
  <country>USA</country>
</person>
206Partial ContentРазбираем ответ 206 Partial Content, работу Range-запросов для докачки и многочастные диапазонные ответы.Пример
→ REQUEST
GET /videos/sample.mp4 HTTP/1.1
Host: example.com
Range: bytes=25000-75000
207Multi-StatusУзнайте, что означает ответ 207 Multi-Status, как WebDAV сообщает им результаты по каждому ресурсу и как разбирать XML-тело.Пример
<d:response>
  <d:href>http://example.re/tasks</d:href>
  <d:status>HTTP/1.1 200 OK</d:status>
</d:response>
208Already ReportedРазбираем код 208 Already Reported и то, как WebDAV использует его внутри ответов 207, чтобы не перечислять ресурсы повторно.Пример
→ REQUEST
PROPFIND /main/ HTTP/1.1
Host: example.com
Depth: infinity
DAV: bind
Content-Type: application/xml; charset="utf-8"
Content-Length: 139

<?xml version="1.0" encoding="utf-8" ?>
<d:propfind xmlns:d="DAV:">
  <d:prop>
    <d:name/>
    <d:link/>
  </d:prop>
</d:propfind>
226IM UsedУзнайте, что означает ответ 226 IM Used и как дельта-кодирование и манипуляции над экземплярами экономят трафик в HTTP-ответах.Пример
→ REQUEST
GET /livingdocs/current_specs.pdf HTTP/1.1
Host: example.com
Accept-Encoding: gzip

3xxПеренаправления (Redirection)

300Multiple ChoicesРазбираем ответ 300 Multiple Choices: когда сервер его отправляет и как клиент выбирает из нескольких доступных представлений.Пример
→ REQUEST
GET /tech-news HTTP/1.1
Host: example.com
301Moved PermanentlyРесурс окончательно перемещён по адресу из Location.Пример
→ REQUEST
GET /old-path HTTP/1.1
Host: example.com
← RESPONSE
HTTP/1.1 301 Moved Permanently
Location: https://example.com/new-path
302FoundРесурс временно находится по адресу из Location.Пример
→ REQUEST
GET /account HTTP/1.1
Host: example.com
← RESPONSE
HTTP/1.1 302 Found
Location: /login
303See OtherУзнайте, как работает перенаправление 303 See Other, почему оно всегда переключается на GET и когда применять 303 после POST, PUT или DELETE.Пример
→ REQUEST
DELETE /tasks/314 HTTP/1.1
Host: example.com
304Not ModifiedКэш актуален; можно использовать локальную копию.Пример
→ REQUEST
GET /logo.png HTTP/1.1
Host: example.com
If-None-Match: "9c2e-abc123"
← RESPONSE
HTTP/1.1 304 Not Modified
ETag: "9c2e-abc123"

(no body — reuse the cached copy)
305Use ProxyУзнайте об устаревшем коде 305 Use Proxy, почему его изъяли из-за проблем безопасности и что пришло ему на смену.Пример
→ REQUEST
GET /document.pdf HTTP/1.1
Host: example.com
307Temporary RedirectРазбираем 307 Temporary Redirect: почему он, в отличие от 302, сохраняет метод запроса и когда предпочесть его перед 302 или 303.Пример
→ REQUEST
GET /news.html HTTP/1.1
Host: example.com
308Permanent RedirectРазбираем 308 Permanent Redirect: как он, в отличие от 301, сохраняет метод запроса и как поисковики переносят ссылочный вес.Пример
→ REQUEST
POST /api/v1/orders HTTP/1.1
Host: example.com
Content-Type: application/json
Content-Length: 35

{"item": "widget", "quantity": 10}

4xxОшибки клиента (Client Error)

400Bad RequestСинтаксис или параметры запроса некорректны.Пример
→ REQUEST
POST /products HTTP/1.1
Host: example.com
Content-Type: application/json

{ "price": "not-a-number" }
← RESPONSE
HTTP/1.1 400 Bad Request
Content-Type: application/json

{ "error": "price must be a number" }
401UnauthorizedТребуется аутентификация.Пример
→ REQUEST
GET /account HTTP/1.1
Host: example.com
← RESPONSE
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer realm="api"
402Payment RequiredРазбираем 402 Payment Required: зарезервированный код, его нестандартное применение в Shopify и Stripe и влияние на SEO.Пример
→ REQUEST
GET /tech-news HTTP/1.1
Host: example.com
403ForbiddenАутентификация пройдена, но доступ запрещён.Пример
→ REQUEST
DELETE /users/1 HTTP/1.1
Host: example.com
Authorization: Bearer <valid-token>
← RESPONSE
HTTP/1.1 403 Forbidden
Content-Type: application/json

{ "error": "admin role required" }
404Not FoundЦелевой ресурс не найден.Пример
→ REQUEST
GET /products/9999 HTTP/1.1
Host: example.com
← RESPONSE
HTTP/1.1 404 Not Found
Content-Type: application/json

{ "error": "product 9999 not found" }
405Method Not AllowedМетод не разрешён для этого ресурса.Пример
→ REQUEST
DELETE /products HTTP/1.1
Host: example.com
← RESPONSE
HTTP/1.1 405 Method Not Allowed
Allow: GET, POST, QUERY
406Not AcceptableУстраняем ошибки 406 Not Acceptable. Разбираем согласование содержимого, заголовки Accept и поведение сервера при невыполнимых запросах.Пример
Accept: text/html, text/plain
407Proxy Authentication RequiredУстраняем ошибки 407 Proxy Authentication Required. Разбираем схемы прокси-аутентификации и заголовки Proxy-Authenticate.Пример
→ REQUEST
GET /documents/tech-news HTTP/1.1
Host: example.com
408Request TimeoutУстраняем ошибки 408 Request Timeout. Разбираем, почему сервер закрывает медленные соединения и как решать проблемы передачи.Пример
→ REQUEST
PUT /docs HTTP/1.1
Host: example.com
Content-Type: application/pdf
Content-Length: 10000
409ConflictУстраняем ошибки 409 Conflict. Разбираем конфликты состояния ресурса, стратегии разрешения и типичные случаи в API.Пример
→ REQUEST
POST /blog/update?postid=111&flag=like HTTP/1.1
Host: example.com
410GoneРазбираем 410 Gone: окончательное удаление ресурса, отличия от 404, поведение кэша и влияние на индексацию.Пример
→ REQUEST
GET /holiday-promotion-Jan-2021.pdf HTTP/1.1
Host: example.com
411Length RequiredУстраняем ошибки 411 Length Required. Узнайте, когда нужен заголовок Content-Length и как исправить эту клиентскую ошибку.Пример
→ REQUEST
PUT /docs HTTP/1.1
Host: example.com
Content-Type: application/pdf

<PDF file included as message body>
412Precondition FailedУстраняем ошибки 412 Precondition Failed. Разбираем заголовки условных запросов, сбои If-Match и защиту от потери обновлений.Пример
→ REQUEST
POST /blog/update?postid=111&task=reply HTTP/1.1
Host: example.com
If-Unmodified-Since: Fri, 1 Jan 2021 00:00:00 GMT
Content-Type: text/plain
Content-Length: 45

<Message body contains reply-text from the client>
413Content Too LargeУстраняем ошибки 413 Content Too Large. Разбираем ограничения размера на сервере, применение заголовка Expect и работу со слишком большими загрузками.Пример
→ REQUEST
PUT /docs HTTP/1.1
Host: example.com
Content-Type: application/pdf
Content-Length: 10000
414URI Too LongУстраняем ошибки 414 URI Too Long. Разбираем ограничения длины URL, ограничения браузеров и способы сократить URI запроса.Пример
→ REQUEST
GET /<...a_long_URI...> HTTP/1.1
Host: example.com
415Unsupported Media TypeУстраняем ошибки 415 Unsupported Media Type. Разбираем проверку Content-Type и Content-Encoding и порядок диагностики.Пример
→ REQUEST
POST /blog/newmessage HTTP/1.1
Host: example.com
Content-Type: text/plain
Content-Length: 24

Good morning, Everybody!
416Range Not SatisfiableУстраняем ошибки 416 Range Not Satisfiable. Разбираем запросы диапазонов байтов, заголовок Content-Range и способы решения.Пример
Content-Range: bytes */512
417Expectation FailedУстраняем ошибки 417 Expectation Failed. Разбираем работу заголовка Expect и механизма 100-continue и условия возврата 417.Пример
→ REQUEST
PUT /docs HTTP/1.1
Host: example.com
Content-Type: application/pdf
Content-Length: 10000
Expect: 100-continue
418I'm a teapotЯ чайник — пасхальный статус-код из RFC 2324.Пример
→ REQUEST
BREW /coffee HTTP/1.1
Host: teapot.example
← RESPONSE
HTTP/1.1 418 I'm a teapot
Content-Type: text/plain

I refuse to brew coffee — I am a teapot.
421Misdirected RequestУстраняем ошибки 421 Misdirected Request. Разбираем переиспользование соединений, маршрутизацию HTTP/2 и диагностику Alt-Svc.Пример
→ REQUEST
GET /tech-news HTTP/2
Host: example.com
422Unprocessable ContentУстраняем ошибки 422 Unprocessable Content. Разбираем отличия от 400 и 415 и как исправлять ошибки семантической валидации.Пример
→ REQUEST
POST /requests HTTP/1.1
Host: example.com
Content-Type: application/xml
Content-Length: 101

<?xml version="1.0" encoding="utf-8"?>
<request>
   <id>100</id>
   <action>start</action>
</request>
423LockedУстраняем ошибки 423 Locked. Разбираем механизмы блокировки файлов в WebDAV, заголовки Lock-Token, коды предусловий и снятие блокировки.Пример
→ REQUEST
PUT /documents/ HTTP/1.1
Host: example.com
Content-Type: application/pdf
Content-Length: 10000

<PDF file transferred>
424Failed DependencyУстраняем ошибки 424 Failed Dependency. Разбираем многостатусные ответы WebDAV, операции PROPPATCH и разрешение зависимостей.Пример
→ REQUEST
PROPPATCH /update.html HTTP/1.1
Host: example.com
Content-Type: application/xml; charset="utf-8"
Content-Length: 305

<?xml version="1.0" encoding="utf-8" ?>
<d:propertyupdate xmlns:d="DAV:"
                  xmlns:z="urn:example">
  <d:set>
    <d:prop>
      <z:seats>
        <z:seatnumber>100</z:seatnumber>
        <z:seatnumber>101</z:seatnumber>
      </z:seats>
    </d:prop>
    <d:prop>
      <d:name>Smith</d:name>
    </d:prop>
  </d:set>
</d:propertyupdate>
425Too EarlyРазбираем 425 Too Early: риски повтора ранних данных TLS, заголовок Early-Data и способы защиты на стороне сервера.Пример
→ REQUEST
GET /tech-news HTTP/1.1
Host: example.com
Early-Data: 1
426Upgrade RequiredУстраняем ошибки 426 Upgrade Required. Разбираем требования к смене протокола, заголовок Upgrade и порядок решения.Пример
→ REQUEST
GET /tech-news HTTP/1.1
Host: example.com
428Precondition RequiredУстраняем ошибки 428 Precondition Required. Разбираем условные заголовки вроде If-Match и защиту от потери обновлений.Пример
→ REQUEST
PUT /reservations.txt HTTP/1.1
Host: example.com
429Too Many RequestsСлишком много запросов; сработало ограничение частоты.Пример
→ REQUEST
GET /api/search HTTP/1.1
Host: example.com
← RESPONSE
HTTP/1.1 429 Too Many Requests
Retry-After: 30
Content-Type: application/json

{ "error": "rate limit exceeded" }
431Request Header Fields Too LargeУстраняем ошибки 431 Request Header Fields Too Large. Разбираем лимиты размера заголовков, сокращение cookie и порядок диагностики.Пример
→ REQUEST
GET /tech-news HTTP/1.1
Host: example.com
Cookie: first_cookie=<very_long>; second_cookie=<long_again>
451Unavailable For Legal ReasonsРазбираем 451 Unavailable For Legal Reasons: ответы при цензуре, юридические требования и применение в Exchange ActiveSync.Пример
→ REQUEST
GET /tech-trial-updates HTTP/1.1
Host: example.com

5xxОшибки сервера (Server Error)

500Internal Server ErrorПроизошла внутренняя ошибка сервера.Пример
→ REQUEST
GET /report HTTP/1.1
Host: example.com
← RESPONSE
HTTP/1.1 500 Internal Server Error
Content-Type: application/json

{ "error": "unexpected server error" }
501Not ImplementedУстраняем ошибки 501 Not Implemented. Разбираем неподдерживаемые методы HTTP, отличия от 405 и настройку сервера.Пример
→ REQUEST
POST /requests?id=111&flag=start HTTP/1.1
Host: example.com
502Bad GatewayШлюз получил некорректный ответ от вышестоящего сервера.Пример
→ REQUEST
GET /api/users HTTP/1.1
Host: gateway.example.com
← RESPONSE
HTTP/1.1 502 Bad Gateway
Content-Type: text/plain

upstream sent an invalid response
503Service UnavailableСервис временно недоступен (перегрузка или обслуживание).Пример
→ REQUEST
GET / HTTP/1.1
Host: example.com
← RESPONSE
HTTP/1.1 503 Service Unavailable
Retry-After: 120
Content-Type: text/plain

under maintenance — try again shortly
504Gateway TimeoutУстраняем ошибки 504 Gateway Timeout. Разбираем причины тайм-аутов на стороне upstream, настройку прокси и диагностику.Пример
→ REQUEST
GET /news HTTP/1.1
Host: example.com
505HTTP Version Not SupportedУстраняем ошибки 505 HTTP Version Not Supported. Разбираем несовпадение версий протокола и совместимость сервера.Пример
→ REQUEST
GET / HTTP/2
Host: example.com
506Variant Also NegotiatesРазбираем 506 Variant Also Negotiates: циклические ссылки в прозрачном согласовании содержимого и ошибки конфигурации сервера.Пример
→ REQUEST
GET /docs HTTP/1.1
Host: example.com
Accept: text/html, application/xhtml+xml
507Insufficient StorageУстраняем ошибки 507 Insufficient Storage. Разбираем ограничения хранилища WebDAV, отличия от 413 и пути решения.Пример
→ REQUEST
PUT /docs HTTP/1.1
Host: example.com
Content-Type: application/pdf
Content-Length: 10000

<PDF file included in message body>
508Loop DetectedУстраняем ошибки 508 Loop Detected. Разбираем бесконечные циклы в WebDAV и диагностику лимитов ресурсов cPanel.Пример
→ REQUEST
PROPFIND /shared/ HTTP/1.1
Host: example.com
Depth: infinity
Content-Type: application/xml
510Not ExtendedРазбираем 510 Not Extended: устаревший HTTP Extension Framework, его историческое положение и применение.Пример
→ REQUEST
GET /resource HTTP/1.1
Host: example.com
511Network Authentication RequiredУстраняем ошибки 511 Network Authentication Required. Разбираем captive-порталы, страницы входа Wi-Fi и обработку на клиенте.Пример
→ REQUEST
GET / HTTP/1.1
Host: example.com