tigtools

Коди стану HTTP

Знайдіть будь-який код стану HTTP: що він означає, коли сервери його надсилають і в якій специфікації його визначено. Шукайте за номером або ключовим словом, фільтруйте за класом і переходьте безпосередньо до потрібного коду за посиланням.

Працює у вашому браузері Без реєстрації

Показано кодів: 79

  • 100 Continue

    Сервер отримав заголовки запиту, і клієнт може надіслати тіло запиту. Код з’являється, коли клієнт надсилає «Expect: 100-continue» перед завантаженням великого тіла запиту.

    Визначено в RFC 9110

  • 101 Switching Protocols

    Сервер погоджується перейти на протокол, указаний клієнтом у заголовку Upgrade. Код з’являється під час переходу з’єднання на WebSocket.

    Визначено в RFC 9110

  • 102 Processing

    Застарілий або невикористовуваний

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

    Визначено в RFC 2518

  • 103 Early Hints

    Надсилається перед остаточною відповіддю, щоб браузер міг почати попереднє завантаження ресурсів, указаних у заголовках Link. Використовується CDN і серверами для пришвидшення завантаження сторінок.

    Визначено в RFC 8297

  • 200 OK

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

    Визначено в RFC 9110

  • 201 Created

    Запит виконано успішно й створено новий ресурс, зазвичай указаний у заголовку Location. Типовий результат успішного POST-запиту, що створює запис.

    Визначено в RFC 9110

  • 202 Accepted

    Запит прийнято в обробку, але її ще не завершено. Використовується API, які ставлять завдання в чергу, наприклад для експорту або пакетної обробки.

    Визначено в RFC 9110

  • 203 Non-Authoritative Information

    Запит виконано успішно, але проксі-сервер, який змінює вміст, модифікував дані, отримані від сервера-джерела.

    Визначено в RFC 9110

  • 204 No Content

    Запит виконано успішно, повертати вміст не потрібно. Часто використовується для запитів DELETE і збереження даних, коли клієнту не потрібне тіло відповіді.

    Визначено в RFC 9110

  • 205 Reset Content

    Запит виконано успішно, клієнту слід скинути поточний вигляд документа, наприклад очистити форму. Використовується рідко.

    Визначено в RFC 9110

  • 206 Partial Content

    Сервер повертає лише діапазон байтів, запитаний клієнтом. Код з’являється під час потокового відтворення відео, відновлення завантаження або надсилання клієнтом заголовка Range.

    Визначено в RFC 9110

  • 207 Multi-Status

    Відповідь WebDAV, що містить окремі коди стану для кількох ресурсів у тілі XML.

    Визначено в RFC 4918

  • 208 Already Reported

    Використовується у відповіді WebDAV 207, щоб не перелічувати повторно ті самі пов’язані ресурси.

    Визначено в RFC 5842

  • 226 IM Used

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

    Визначено в RFC 3229

  • 300 Multiple Choices

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

    Визначено в RFC 9110

  • 301 Moved Permanently

    Ресурс назавжди переміщено за URL-адресою, указаною в заголовку Location. Браузери й пошукові системи оновлюють свої посилання; деякі клієнти під час переходу змінюють POST на GET.

    Визначено в RFC 9110

  • 302 Found

    Ресурс тимчасово доступний за іншою URL-адресою, указаною в заголовку Location. Часто використовується після входу в систему та для короткочасних перенаправлень; браузери зазвичай переходять за ним методом GET.

    Визначено в RFC 9110

  • 303 See Other

    Клієнту слід отримати результат з іншої URL-адреси методом GET. Використовується після POST-запиту з форми для перенаправлення на сторінку підтвердження (схема Post/Redirect/Get).

    Визначено в RFC 9110

  • 304 Not Modified

    Кешована копія ще дійсна, тому сервер не надсилає тіло відповіді. Код з’являється, коли браузер перевіряє актуальність кешованого файла за допомогою If-None-Match або If-Modified-Since.

    Визначено в RFC 9110

  • 305 Use Proxy

    Застарілий або невикористовуваний

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

    Визначено в RFC 9110

  • 306 (Unused)

    Застарілий або невикористовуваний

    Зарезервований код. Його використовували в ранньому проєкті HTTP/1.1, але більше не застосовують.

    Визначено в RFC 9110

  • 307 Temporary Redirect

    Ресурс тимчасово доступний за іншою URL-адресою. Клієнт має повторити запит із тим самим методом і тілом. Також браузери використовують цей код для внутрішніх перенаправлень HSTS на HTTPS.

    Визначено в RFC 9110

  • 308 Permanent Redirect

    Ресурс переміщено назавжди. Клієнт має використати той самий метод і тіло за новою URL-адресою. Постійний аналог 307, безпечний для перенаправлення запитів POST.

    Визначено в RFC 9110

  • 400 Bad Request

    Сервер не може обробити запит, оскільки його сформовано неправильно. Наприклад, у ньому може бути некоректний JSON, неправильний параметр запиту або пошкоджений cookie.

    Визначено в RFC 9110

  • 401 Unauthorized

    У запиті немає дійсних облікових даних для автентифікації. Попри назву, код означає «не автентифіковано»; сервер надсилає заголовок WWW-Authenticate з описом способу входу.

    Визначено в RFC 9110

  • 402 Payment Required

    Зарезервований для майбутнього використання у специфікації HTTP. Деякі API та платіжні сервіси використовують його, коли потрібна оплата або підписка.

    Визначено в RFC 9110

  • 403 Forbidden

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

    Визначено в RFC 9110

  • 404 Not Found

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

    Визначено в RFC 9110

  • 405 Method Not Allowed

    Ресурс існує, але не підтримує використаний метод HTTP, наприклад POST для URL-адреси, доступної лише для читання. У відповіді в заголовку Allow перелічено дозволені методи.

    Визначено в RFC 9110

  • 406 Not Acceptable

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

    Визначено в RFC 9110

  • 407 Proxy Authentication Required

    Як і у випадку з 401, але клієнт має спочатку пройти автентифікацію на проксі-сервері. Таке трапляється в корпоративних мережах із проксі-сервером, що вимагає автентифікації.

    Визначено в RFC 9110

  • 408 Request Timeout

    Сервер не дочекався, поки клієнт завершить надсилання запиту. Таке трапляється через повільне або перерване з’єднання.

    Визначено в RFC 9110

  • 409 Conflict

    Запит суперечить поточному стану ресурсу, наприклад через конфлікт змін або спробу створити те, що вже існує.

    Визначено в RFC 9110

  • 410 Gone

    Ресурс видалено назавжди й він не з’явиться знову. На відміну від 404, цей код дає пошуковим системам зрозуміти, що URL-адресу потрібно швидше вилучити з індексу.

    Визначено в RFC 9110

  • 411 Length Required

    Сервер вимагає заголовок Content-Length, але в запиті його немає.

    Визначено в RFC 9110

  • 412 Precondition Failed

    Умова в заголовках запиту, наприклад If-Match, не виконана. Код використовують, щоб запобігти перезапису ресурсу, який змінився після останнього отримання клієнтом.

    Визначено в RFC 9110

  • 413 Content Too Large

    Тіло запиту перевищує допустимий для сервера розмір. Таке трапляється під час завантаження файла, розмір якого перевищує обмеження, наприклад client_max_body_size у nginx.

    Визначено в RFC 9110

  • 414 URI Too Long

    URL-адреса довша, ніж може обробити сервер. Зазвичай це трапляється, коли форма надсилає забагато даних методом GET або цикл перенаправлень постійно додає параметри.

    Визначено в RFC 9110

  • 415 Unsupported Media Type

    Сервер не підтримує формат тіла запиту. Наприклад, надіслано XML до кінцевої точки, яка очікує application/json.

    Визначено в RFC 9110

  • 416 Range Not Satisfiable

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

    Визначено в RFC 9110

  • 417 Expectation Failed

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

    Визначено в RFC 9110

  • 418 I'm a teapot

    Жарт до Дня сміху з протоколу Hyper Text Coffee Pot Control Protocol 1998 року: чайник відмовляється варити каву. У HTTP цей код зарезервовано як невикористовуваний, але деякі сервери повертають його як сюрприз або для блокування небажаних ботів.

    Визначено в RFC 2324 / RFC 9110 (Unused)

  • 419 Page Expired

    Нестандартний

    Нестандартний код. Laravel повертає його, якщо в форми немає токена CSRF або строк його дії минув, зазвичай після завершення сеансу.

    Визначено в Laravel

  • 420 Enhance Your Calm

    Нестандартний

    Нестандартний код. Стара версія API Twitter використовувала його для обмеження частоти запитів; стандартний код для цього — 429.

    Визначено в Twitter API v1

  • 421 Misdirected Request

    Запит надійшов на сервер, який не може сформувати відповідь для цього хоста. Наприклад, з’єднання HTTP/2 повторно використали для іншого домену.

    Визначено в RFC 9110

  • 422 Unprocessable Content

    Запит сформовано правильно, але його вміст некоректний, наприклад дані форми не пройшли перевірку. API часто використовують цей код для помилок перевірки даних.

    Визначено в RFC 9110

  • 423 Locked

    Ресурс WebDAV заблоковано, тому його не можна змінити.

    Визначено в RFC 4918

  • 424 Failed Dependency

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

    Визначено в RFC 4918

  • 425 Too Early

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

    Визначено в RFC 8470

  • 426 Upgrade Required

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

    Визначено в RFC 9110

  • 428 Precondition Required

    Сервер вимагає умовного запиту (наприклад, із заголовком If-Match), щоб запобігти втраті змін.

    Визначено в RFC 6585

  • 429 Too Many Requests

    Клієнт надіслав забагато запитів за певний проміжок часу. API використовують цей код для обмеження частоти запитів і часто додають заголовок Retry-After, який указує, коли можна спробувати знову.

    Визначено в RFC 6585

  • 431 Request Header Fields Too Large

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

    Визначено в RFC 6585

  • 444 No Response

    Нестандартний

    Нестандартний код. nginx використовує його внутрішньо, щоб закрити з’єднання без відповіді, часто для відкидання небажаного трафіку. Клієнти насправді його не отримують.

    Визначено в nginx

  • 451 Unavailable For Legal Reasons

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

    Визначено в RFC 7725

  • 494 Request Header Too Large

    Нестандартний

    Нестандартний код. Власний варіант nginx для 431; його записують у журнал, коли заголовки запиту перевищують буферні обмеження сервера.

    Визначено в nginx

  • 495 SSL Certificate Error

    Нестандартний

    Нестандартний код. nginx повертає його, якщо перевірку сертифіката клієнта не пройдено.

    Визначено в nginx

  • 496 SSL Certificate Required

    Нестандартний

    Нестандартний код. nginx повертає його, якщо клієнт не надав обов’язковий сертифікат.

    Визначено в nginx

  • 497 HTTP Request Sent to HTTPS Port

    Нестандартний

    Нестандартний код. nginx повертає його, якщо звичайний запит HTTP надіслано на порт, налаштований для HTTPS.

    Визначено в nginx

  • 499 Client Closed Request

    Нестандартний

    Нестандартний код. nginx записує його в журнал, якщо клієнт закрив з’єднання до відповіді сервера, наприклад коли користувач скасував повільне завантаження сторінки або сплив час очікування на клієнті.

    Визначено в nginx

  • 500 Internal Server Error

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

    Визначено в RFC 9110

  • 501 Not Implemented

    Сервер не підтримує потрібну функцію, наприклад невідомий йому метод HTTP.

    Визначено в RFC 9110

  • 502 Bad Gateway

    Шлюз або проксі-сервер отримав некоректну відповідь від сервера вище за ланцюжком. Таке часто трапляється, коли програма за nginx або балансувальником навантаження аварійно завершує роботу чи перезапускається.

    Визначено в RFC 9110

  • 503 Service Unavailable

    Сервер тимчасово не може обробити запит через надмірне навантаження або технічне обслуговування. Заголовок Retry-After може вказувати, коли можна спробувати знову.

    Визначено в RFC 9110

  • 504 Gateway Timeout

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

    Визначено в RFC 9110

  • 505 HTTP Version Not Supported

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

    Визначено в RFC 9110

  • 506 Variant Also Negotiates

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

    Визначено в RFC 2295

  • 507 Insufficient Storage

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

    Визначено в RFC 4918

  • 508 Loop Detected

    Сервер зупинив операцію WebDAV, оскільки виявив нескінченний цикл.

    Визначено в RFC 5842

  • 509 Bandwidth Limit Exceeded

    Нестандартний

    Не є стандартним кодом. Деякі конфігурації віртуального хостингу (модулі Apache, cPanel) використовують його, коли сайт перевищує ліміт трафіку.

    Визначено в Apache / cPanel

  • 510 Not Extended

    Застарілий або невикористовуваний

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

    Визначено в RFC 2774

  • 511 Network Authentication Required

    Щоб отримати доступ до мережі, клієнт має пройти автентифікацію. Такий код надсилають портали авторизації в Wi-Fi-мережах готелів, аеропортів і кафе, перш ніж ви ввійдете.

    Визначено в RFC 6585

  • 520 Web Server Returned an Unknown Error

    Нестандартний

    Не є стандартним кодом. Cloudflare повертає його, коли сервер-джерело надіслав порожню, невідому або неочікувану відповідь.

    Визначено в Cloudflare

  • 521 Web Server Is Down

    Нестандартний

    Не є стандартним кодом. Cloudflare повертає його, коли сервер-джерело відмовив у з’єднанні, зазвичай через те, що вебсервер не працює або блокує IP-адреси Cloudflare.

    Визначено в Cloudflare

  • 522 Connection Timed Out

    Нестандартний

    Не є стандартним кодом. Cloudflare повертає його, коли вичерпано час очікування TCP-з’єднання із сервером-джерелом.

    Визначено в Cloudflare

  • 523 Origin Is Unreachable

    Нестандартний

    Не є стандартним кодом. Cloudflare повертає його, коли не може зв’язатися із сервером-джерелом, наприклад через проблему з DNS або маршрутизацією.

    Визначено в Cloudflare

  • 524 A Timeout Occurred

    Нестандартний

    Не є стандартним кодом. Cloudflare повертає його, коли встановив з’єднання із сервером-джерелом, але не отримав HTTP-відповідь до завершення часу очікування (за замовчуванням — 100 секунд).

    Визначено в Cloudflare

  • 525 SSL Handshake Failed

    Нестандартний

    Не є стандартним кодом. Cloudflare повертає його, коли не вдалося виконати SSL/TLS-рукостискання із сервером-джерелом.

    Визначено в Cloudflare

  • 526 Invalid SSL Certificate

    Нестандартний

    Не є стандартним кодом. Cloudflare повертає його, коли SSL-сертифікат сервера-джерела недійсний, а режим SSL Full (strict) увімкнено.

    Визначено в Cloudflare

Як користуватися

  1. Введіть номер коду (наприклад, 404 або просто 5 для всіх помилок сервера) чи ключове слово, як-от «перенаправлення» або «тайм-аут».
  2. Звузьте список за класом: інформаційні, успішні, перенаправлення, помилки клієнта або помилки сервера.
  3. Скористайтеся кнопкою «Копіювати посилання» біля будь-якого коду, щоб поділитися прямим посиланням на нього, наприклад у звіті про помилку.

Як це працює

Кожна HTTP-відповідь починається з тризначного коду стану. Перша цифра визначає клас: 1xx — інформаційні відповіді, 2xx — успішні, 3xx — перенаправлення, 4xx — помилки запиту, 5xx — помилки на боці сервера. Клієнти, які не розпізнають конкретний код, обробляють його як код x00 відповідного класу, тож невідомий код 4xx обробляється як 400.

Основні коди визначено в RFC 9110 (HTTP Semantics, 2022), який замінив старіший RFC 7231. Інші коди з’явилися в розширеннях: WebDAV (RFC 4918), RFC 6585 для 428, 429, 431 і 511, RFC 7725 для 451 та RFC 8470 для 425. У RFC 9110 також перейменовано два коди: 413 тепер має назву “Content Too Large”, а 422 — “Unprocessable Content”. Ви й досі можете зустріти їхні старі назви — “Payload Too Large” і “Unprocessable Entity”.

Деякі коди, які трапляються в журналах, не є стандартними. nginx внутрішньо використовує 444 і 494–499 (499 означає, що клієнт припинив чекати), а Cloudflare повертає 520–526, коли не може отримати належну відповідь від сервера-джерела. У списку їх позначено як “Non-standard”. Причини відповіді (наприклад, “Not Found”) наведено англійською, як у специфікаціях; HTTP/2 і HTTP/3 передають лише номер.

Приклади

301 чи 308 під час перенесення сайту

Обидва коди означають постійне перенаправлення. Використовуйте 301 для звичайного переміщення сторінок; використовуйте 308, якщо клієнти мають повторити запити POST або PUT за новою URL-адресою, оскільки після 301 деякі клієнти змінюють POST на GET.

401 чи 403

API повертає 401, якщо токен відсутній або прострочений, тож клієнту потрібно ввійти в систему. Код 403 повертається, якщо токен дійсний, але користувач не має потрібних дозволів — повторний вхід не допоможе.

Діагностика помилки 502 за nginx

502 Bad Gateway від nginx означає, що програма за ним не надала належної відповіді. Перевірте, чи запущено процес програми та що записано в журналі; код 504 натомість означає, що відповідь надійшла надто повільно.

Поширені запитання

Чим відрізняються коди 404 і 410?

404 означає, що сервер не може знайти ресурс, і нічого не говорить про те, що буде з ним надалі. 410 означає, що ресурс навмисно видалено й він не з’явиться знову, що допомагає пошуковим системам швидше вилучити URL зі списку.

Для помилки валідації повертати 400 чи 422?

Підходять обидва. Код 400 використовують для запитів, які сервер не може розібрати, наприклад через некоректний JSON. Код 422 — для запитів, які розібрано правильно, але містять неприпустимі значення, як-от адресу електронної пошти без символу @.

418 I'm a teapot — це справжній код стану?

Цей код з’явився в першоквітневій специфікації RFC 1998 року. RFC 9110 резервує код 418, щоб його не призначили для інших цілей. Деякі сервери повертають його жартома, але стандартного значення він не має.

Звідки взявся код 499?

Код 499 використовується лише в nginx. Він з’являється в журналах nginx, коли клієнт закриває з’єднання до того, як сервер надсилає відповідь. Клієнт ніколи не отримує код 499; зазвичай він вказує на повільну відповідь або тайм-аут на боці клієнта.

Пошукові системи сприймають 302 так само, як 301?

Код 302 позначає тимчасове перенаправлення, тому спочатку пошукові системи зазвичай залишають початкову URL-адресу в індексі. Якщо перенаправлення 302 діє довго, Google може сприйняти його як постійне. Для постійного перенаправлення використовуйте 301 або 308.

Конфіденційність

Список є частиною сторінки. Пошук і фільтрування відбуваються у вашому браузері; пошукові запити нікуди не надсилаються й не додаються до аналітики.