Коды состояния 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