Перейти до основного вмісту
LibraTool logoLibraTool

Довідник кодів стану HTTP — безкоштовно

Пошуковий довідник для всіх кодів стану HTTP — що означає кожен, коли використовується та поширені причини. Від 100 до 511.

Працює офлайн після завантаження

61 статус-код

100

Продовжити

Сервер отримав заголовки запиту, клієнт повинен продовжити з тілом.

Використовується для запитів з Expect: 100-continue. Сервер підтверджує, що готовий отримати тіло до того, як клієнт його надішле. Рідко зустрічається в сучасних веб-додатках.

RFC 9110 ↗
101

Перемикання протоколів

Сервер перемикає протоколи на запит клієнта.

Найчастіше використовується для оновлення WebSocket — клієнт запитує Upgrade: websocket, а сервер відповідає 101 для перемикання.

RFC 9110 ↗
102

Обробка

Сервер отримав запит і обробляє його, але відповідь поки недоступна.

Проміжна відповідь WebDAV, що надсилається, щоб запобігти вичерпанню часу очікування клієнта під час тривалих операцій. Застаріло — сучасні сервери не повинні її надсилати.

RFC 2518 ↗
103

Ранні підказки

Попередні заголовки надіслані перед остаточною відповіддю.

Дозволяє серверам надсилати заголовки Link (preload/preconnect) доки остаточна відповідь ще готується, щоб браузери могли починати завантажувати критичні ресурси раніше.

RFC 8297 ↗
200

OK

Запит успішно виконаний.

Стандартна відповідь про успіх. Значення залежить від методу HTTP: GET → ресурс повернено, POST/PUT → дію завершено.

RFC 9110 ↗
201

Створено

Новий ресурс успішно створено.

Поширено після POST. Відповідь повинна включати заголовок Location, що вказує на URL нового ресурсу.

RFC 9110 ↗
202

Прийнято

Запит прийнято на обробку, але обробка не завершена.

Для асинхронних операцій — сервер ставить роботу в чергу. Клієнт повинен опитати точку статусу або повернутися пізніше.

RFC 9110 ↗
203

Неавторитетна інформація

Відповідь була змінена трансформуючим проксі.

Запит виконано успішно, але посередник (наприклад, кешувальний або перетворювальний проксі) змінив корисне навантаження, отримане від початкового сервера, — наприклад, повторно стиснув зображення. На практиці трапляється рідко.

RFC 9110 ↗
204

Немає вмісту

Запит успішно виконаний, але немає тіла відповіді.

Часто використовується для операцій DELETE або оновлень PUT, які не потребують повернення тіла. Клієнт не повинен залишати поточну сторінку.

RFC 9110 ↗
205

Скинути вміст

Запит успішно виконаний; клієнт повинен скинути вид документа.

Як і 204, тіло не повертається, але клієнту додатково вказується скинути форму або представлення, що ініціювало запит (наприклад, очистити поля форми для наступного запису).

RFC 9110 ↗
206

Частковий вміст

Сервер доставив лише частину ресурсу.

Відповідь на запит Range. Використовується програвачами відео та менеджерами завантажень для відновлення перерваних завантажень або потокового передавання великих файлів.

RFC 9110 ↗
207

Множинний статус

Тіло відповіді містить кілька кодів статусу для кількох операцій.

WebDAV: тіло XML незалежно повідомляє результат кількох субоперацій — наприклад, пакетного переміщення, де одні елементи оброблено успішно, а інші — ні.

RFC 4918 ↗
208

Вже повідомлено

Члени колекції вже були перераховані раніше у відповіді.

WebDAV: використовується у відповідях 207 Multi-Status, щоб уникнути повторного переліку елементів тієї самої колекції, коли прив’язки створюють цикли.

RFC 5842 ↗
226

Використано IM

Відповідь є результатом маніпуляцій екземпляра, застосованих до ресурсу.

Дельта-кодування: сервер повертає різницю від попередньої версії замість повного ресурсу, економлячи смугу пропускання. Дуже рідко реалізовано.

RFC 3229 ↗
300

Кілька варіантів

Кілька представлень ресурсу доступні.

Сервер пропонує кілька варіантів (наприклад, різні формати або мови), і клієнт повинен вибрати один. Рідко використовується, оскільки автоматичне узгодження змісту зазвичай вирішує це саме.

RFC 9110 ↗
301

Постійно перенесено

Ресурс назавжди перенесено на новий URL.

Використовується для постійних змін URL — пошукові системи оновлять свій індекс. SEO-авторитет переходить на новий URL.

RFC 9110 ↗
302

Знайдено (тимчасове перенаправлення)

Ресурс тимчасово розташований на іншому URL.

Вказує, що перенаправлення не постійне. Кешування менш агресивне, ніж 301. Використовується для дій на кшталт «потрібна авторизація, перенаправляю на /login».

RFC 9110 ↗
303

Дивіться інший ресурс

Перенаправлення на інший URL за допомогою GET.

Використовується після надсилання POST — відповідь означає «ваш POST спрацював, результат дивіться за цим URL через GET». Браузери завжди роблять GET на новий URL.

RFC 9110 ↗
304

Не змінено

Кешована версія все ще дійсна; використовуйте її.

Відповідь на умовний запит (з заголовками If-None-Match або If-Modified-Since). Економить смугу пропускання — тіло не повертається.

RFC 9110 ↗
307

Тимчасове перенаправлення

Як 302, але зберігає оригінальний HTTP метод.

Якщо оригіналом був POST, перенаправлення також використовує POST. Сучасна альтернатива 302, коли збереження методу важливо.

RFC 9110 ↗
308

Постійне перенаправлення

Як 301, але зберігає оригінальний HTTP метод.

Сучасна заміна 301, коли ви хочете, щоб запити POST залишалися POST після перенаправлення.

RFC 9110 ↗
400

Неправильний запит

Сервер не міг розібрати запит через неправильний синтаксис.

Поширені причини: неправильно сформований JSON у тілі, недійсні параметри запиту або відсутні обов'язкові поля. Перевірте тіло та заголовки запиту.

RFC 9110 ↗
401

Неавторизовано

Потрібна аутентифікація, яка не надана.

Клієнт повинен включити облікові дані аутентифікації (заголовок Authorization, файл cookie, токен). «Unauthorized» є неправильним — це означає «неавтентифікований».

RFC 9110 ↗
402

Платіж потрібен

Зарезервовано для майбутнього використання — іноді використовується для платних рівнів API.

Спочатку призначено для цифрових платежів. Сучасне використання: API іноді повертають 402, коли користувач перевищив свою платну квоту.

RFC 9110 ↗
403

Заборонено

Клієнт аутентифікований, але не має дозволу.

Відрізняється від 401 — користувач УВІЙШОВ у систему, але його обліковий запис не має дозволу для цього ресурсу. Перевірте логіку ролей/дозволів.

RFC 9110 ↗
404

Не знайдено

Запрошений ресурс не існує.

Або URL невірний, або ресурс видалено, або його ніколи не було. Сервери іноді повертають 404, щоб приховати, що 403 був би точніший.

RFC 9110 ↗
405

Метод не дозволений

HTTP метод, який використовується, не дозволений для цього ресурсу.

Наприклад, запит GET до точки, яка приймає лише POST. Відповідь повинна включати заголовок Allow зі списком дійсних методів.

RFC 9110 ↗
406

Неприйнятно

Жодне подання ресурсу не відповідає заголовкам Accept клієнта.

Клієнт запитав тип вмісту, мову або кодування (через Accept, Accept-Language, Accept-Encoding), які сервер не може надати. Багато серверів пропускають сувору перевірку узгодження і повертають типове значення.

RFC 9110 ↗
407

Потрібна аутентифікація проксі

Клієнт повинен спочатку пройти автентифікацію через проксі.

Як 401, але виданий проксі: клієнт повинен надіслати облікові дані Proxy-Authorization. Видно в корпоративних мережах з автентифікуючими проксі.

RFC 9110 ↗
408

Час очікування запиту вийшов

Сервер перевищив час очікування запиту.

Клієнт занадто довго відправляв тіло запиту або тримав з'єднання в неактивному стані. Спробуйте запит ще раз.

RFC 9110 ↗
409

Конфлікт

Запит конфліктує з поточним станом ресурсу.

Зазвичай повертається при конфліктах одночасного редагування або дублювання ресурсу (наприклад, створення користувача з електронною адресою, яка вже існує).

RFC 9110 ↗
410

Видалено

Ресурс був видалений і не повернеться.

Сильніше за 404 — сервер явно знає, що ресурс РАНІШЕ ІСНУВАВ, але був назавжди видалений. Пошукові системи видалять його з індексу.

RFC 9110 ↗
411

Вимагається довжина

Сервер вимагає заголовка Content-Length.

Запит було відхилено, оскільки він не мав заголовка Content-Length, а сервер відмовляється від тіл невідомого розміру. Додайте заголовок і повторіть спробу.

RFC 9110 ↗
412

Не вдалося виконати передумову

Умова в заголовках запиту не була виконана.

Повертається, коли умовні заголовки, такі як If-Match або If-Unmodified-Since, не спрацьовують — зазвичай оптимістичне блокування: хтось інший змінив ресурс з часу вашої версії. Отримайте заново і повторіть спробу.

RFC 9110 ↗
413

Корисне навантаження надто велике

Тіло запиту перевищує обмеження розміру сервера.

Поширене при завантаженні великих файлів. Конфігурація сервера (nginx, apache) встановлює максимальний розмір тіла. Перевірте конфігурацію сервера.

RFC 9110 ↗
414

URI надто довгий

URL запиту перевищує обмеження довжини сервера.

Зазвичай викликається дуже довгими рядками запиту (наприклад, кодування даних у GET). Перейдіть на тіло POST або збільште обмеження сервера, якщо ви його контролюєте.

RFC 9110 ↗
415

Непідтримуваний тип медіа

Сервер не може обробити відправлений Content-Type.

Наприклад, відправлення application/xml на сервер, який приймає лише application/json. Встановіть правильно заголовок Content-Type.

RFC 9110 ↗
416

Діапазон не задовільний

Запитаний діапазон байтів знаходиться поза розміром ресурсу.

Заголовок Range запитує частину, яка не існує у файлі — наприклад, відновлення завантаження після кінця файлу. Відповідь повинна містити Content-Range з фактичним розміром.

RFC 9110 ↗
417

Не вдалося виконати очікування

Сервер не може задовольнити вимоги заголовка Expect.

Надсилається, коли сервер не підтримує Expect: 100-continue. Деякі клієнти за замовчуванням надсилають цей заголовок при великих POST; його вимкнення зазвичай вирішує проблему.

RFC 9110 ↗
418

Я чайник

Сервер відмовляється варити каву, тому що це чайник.

Жарт Першого квітня 1998 року (RFC 2324). Деякі реальні API використовують його для жартів або позначення застарілих кінцевих точок. Не для виробничого використання.

RFC 2324 ↗
421

Невірно спрямований запит

Запит було надіслано на сервер, який не може для нього дати відповідь.

Поширено при повторному використанні з'єднання HTTP/2: запит дійшов до сервера, який не налаштований для цього імені хосту. Клієнт повинен повторити спробу на новому з'єднанні.

RFC 9110 ↗
422

Неможливо обробити вміст

Запит був синтаксично коректним, але семантично неправильним.

Наприклад, JSON було коректно розібрано, але відсутнє обов'язкове поле або значення поля було за межами діапазону. Поширене у відповідях валідації REST API.

RFC 9110 ↗
423

Заблоковано

Ресурс заблоковано.

WebDAV: ресурс джерела або призначення заблоковано іншим клієнтом, тому операція не може продовжитися. Дочекайтеся звільнення блокування або розірвіть його з належним токеном.

RFC 4918 ↗
424

Невдала залежність

Запит не вдався, оскільки не вдався попередній залежний запит.

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

RFC 4918 ↗
425

Занадто рано

Сервер відмовляється обробляти запит, який може бути відтворений.

Пов'язано з TLS 1.3 0-RTT (ранні дані): сервер не ризикуватиме обробкою, можливо, відтворюваного запиту. Клієнт повинен повторити спробу після завершення квитування.

RFC 8470 ↗
426

Потрібне оновлення

Клієнт повинен перейти на інший протокол.

Сервер відмовляється обслуговувати запит через поточний протокол, але буде після оновлення — відповідь містить заголовок Upgrade, що називає потрібний протокол.

RFC 9110 ↗
428

Передумова необхідна

Сервер вимагає, щоб запит був умовним.

Сервер вимагає умовних заголовків (наприклад, If-Match), щоб запобігти конфліктам втраченого оновлення. Отримайте ресурс, запишіть його ETag і надішліть повторно з If-Match.

RFC 6585 ↗
429

Занадто багато запитів

Клієнт обмежується за частотою.

Уповільніть. Відповідь повинна містити заголовок Retry-After, що вказує, коли повторити спробу. Поширено для API, які мають квоти запитів.

RFC 6585 ↗
431

Поля заголовка запиту надто великі

Заголовки надто великі для обробки сервером.

Або один заголовок, або загальний розмір заголовка перевищує обмеження — найчастіше викликається надмірними файлами cookie. Очистіть файли cookie або зменшіть те, що ваша програма в них зберігає.

RFC 6585 ↗
451

Недоступно з юридичних причин

Доступ заборонено через юридичні вимоги.

Ресурс заблоковано з юридичних причин — цензура, судові накази або регіональні нормативні акти. Число посилається на роман «Fahrenheit 451».

RFC 7725 ↗
500

Внутрішня помилка сервера

Сервер зіткнувся з непередбачуваною умовою.

Універсальний код для помилок на стороні сервера. Перевірте журнали сервера щодо фактичної причини: необроблений виняток, помилка бази даних тощо.

RFC 9110 ↗
501

Не реалізовано

Сервер не підтримує запитану функцію.

Наприклад, сервер не розпізнає метод HTTP. Рідко на практиці — частіше ви побачите 405.

RFC 9110 ↗
502

Невдалий шлюз

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

Поширено в архітектурах мікросервісів. Ваш балансувальник навантаження або зворотний проксі отримав некоректну відповідь від сервісу бекенду.

RFC 9110 ↗
503

Послуга недоступна

Сервер тимчасово не може обробити запит.

Або на обслуговуванні, або перевантажено. Відповідь повинна містити заголовок Retry-After. Часто повертається під час розгортань.

RFC 9110 ↗
504

Тайм-аут шлюзу

Сервер шлюзу перевищив час очікування на відповідь від вищестоящого сервера.

Сервіс бекенду не відповів достатньо швидко. Перевірте стан вищестоящого сервісу та конфігурацію тайм-аутів.

RFC 9110 ↗
505

Версія HTTP не підтримується

Сервер не підтримує версію HTTP, використану в запиті.

Основна версія HTTP запиту не підтримується сервером. Майже ніколи не зустрічається у сучасних клієнтів.

RFC 9110 ↗
506

Варіант також узгоджується

Сервер має помилку в конфігурації узгодження вмісту.

Прозоре узгодження вмісту зациклилося: вибраний варіант сам налаштований на узгодження. Указує на помилку в конфігурації сервера.

RFC 2295 ↗
507

Недостатньо сховища

На сервері закінчилося місце на диску.

Спочатку для WebDAV, але іноді використовується загальними серверами. Означає, що сервер не може зберегти запит через обмеження зберігання.

RFC 4918 ↗
508

Виявлено цикл

Сервер виявив нескінченний цикл під час обробки запиту.

WebDAV: обробка запиту Depth: infinity увійшла в цикл (наприклад, циклічні прив'язки). Операцію було припинено.

RFC 5842 ↗
510

Не розширено

Потрібні подальші розширення запиту.

Із застарілої системи розширення HTTP: сервер потребує більше інформації, перш ніж він може виконати запит. Фактично не використовується у сучасному вебі.

RFC 2774 ↗
511

Аутентифікація в мережі необхідна

Клієнт повинен пройти автентифікацію, щоб отримати доступ до мережі.

Використовується порталами авторизації в мережі (WiFi готелів/аеропортів), щоб вказати, що користувач повинен увійти в мережу перед доступом до зовнішніх сайтів.

RFC 6585 ↗

Типові застосування

  • Довідка для дизайну APIПід час проектування REST API виберіть правильний код статусу для кожної відповіді.
  • Швидко шукайте коди помилокКоли ваш додаток повертає заплутану помилку HTTP, шукайте, що це означає насправді.
  • Вивчення кодів стану HTTPВичерпна довідка для студентів та розробників, які вивчають HTTP та REST.
  • Швидка довідка під час інцидентівПід час виробничих інцидентів швидко шукайте, що означає кожний код статусу.
  • Довідка для документації APIПід час написання документації API посилайтесь на авторитетні описи кодів стану, які ви повертаєте.

Як це працює

Цей інструмент — клієнтський довідник на основі вбудованої таблиці з 63 кодів стану HTTP з усіх п’яти класів (1xx–5xx), кожен із номером RFC, що його визначає. Без звернень до сервера, зовнішніх API чи мережевих запитів — усе фільтрування й відображення відбувається в браузері вбудованими методами масивів і рядків JavaScript.

  1. 1
    Таблиця завантажується
    Повний набір із 63 зареєстрованих в IANA кодів стану вбудовано прямо в інструмент як масив JavaScript; кожен запис містить числовий код, канонічну англійську назву, клас категорії й конкретний RFC, що його визначає (наприклад, RFC 9110 для більшості кодів HTTP/1.1, RFC 6585 для 429 Too Many Requests, RFC 2324 для 418 I'm a Teapot).
  2. 2
    Фільтрування в пам’яті
    Коли ви вводите запит чи вибираєте фільтр категорії, Array.filter у JavaScript працює над списком у пам’яті, зіставляючи запит із номером коду стану, канонічною назвою та короткими й довгими описами через String.includes — без затримки й звернень до сервера.
  3. 3
    Деталі розгортаються з посиланням на RFC
    Кожен результат рендериться як HTML-елемент details/summary. Розгортання запису показує докладне пояснення й пряме посилання на авторитетний RFC на rfc-editor.org, тож можна прочитати точний текст специфікації для будь-якого коду.
  4. 4
    Прямі посилання й копіювання в буфер
    Відкриття запису оновлює хеш URL на номер коду (наприклад, #404), тож сторінкою зручно ділитися й додавати в закладки. Кнопка копіювання записує канонічний рядок (наприклад, '404 Not Found') у буфер обміну через API браузера navigator.clipboard.

Схожі інструменти

Часті запитання