Skip to content

Коди стану HTTP пояснені

Усі поширені коди стану HTTP-відповідей, згруповані за класами: що вони означають і коли ви їх побачите. Швидка довідка-супутник до інструменту HTTP Status Codes.

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

Довідкова таблиця · 55 записівВідкрити інструмент http-status-codes →
55 of 55 rows
1xx Інформаційні
ContinueСервер отримав заголовки запиту; клієнт може надсилати тіло.Після попередньої перевірки перед завантаженням великого тіла.
Switching ProtocolsСервер погоджується перейти на протокол, який запросив клієнт.Оновлення HTTP-з'єднання до WebSocket.
ProcessingСервер отримав запит і досі його обробляє.Сервер WebDAV підтверджує довгий запит, щоб клієнт не дочекався тайм-ауту.
Early HintsСервер надсилає попередні заголовки до готовності фінальної відповіді.Дозволити браузеру попередньо завантажувати ресурси, поки сторінка ще рендериться.
2xx Успіх
OKЗапит успішний, тіло відповіді містить результат.Стандартний успіх для GET чи PUT.
CreatedЗапит успішний, і новий ресурс створено.Повертається після успішного POST, що щось створює.
AcceptedЗапит прийнято на обробку, але вона ще не завершена.Тривале завдання запущено і виконується асинхронно.
Non-Authoritative InformationЗапит успішний, але повернуті дані було змінено на шляху назад.Проксі чи кеш віддає змінені метадані замість вихідних від origin-сервера.
No ContentЗапит успішний, і повертати тіло немає чого.DELETE виконано, або PUT, для якого немає що сказати.
Reset ContentЗапит успішний, і клієнт має скинути подання, що його надіслав.Після надсилання форми — вказівка сторінці очистити свої поля.
Partial ContentСервер повертає лише частину ресурсу, як і просили.Віддача діапазону байтів із запиту Range.
3xx Перенаправлення
Moved PermanentlyРесурс має нову постійну URL-адресу, і наступні запити мають її використовувати.Сторінку переміщено, і пошукові системи мають оновити індекс.
FoundРесурс тимчасово за іншою URL-адресою, але продовжуйте користуватися початковою.Тимчасове перенаправлення на сторінку входу.
See OtherВідповідь живе за іншою URL-адресою, і її треба отримувати через GET.Патерн PRG: перенаправлення POST на сторінку результату, щоб оновлення не надсилало форму повторно.
Not ModifiedКешована копія все ще чинна, тож сервер не надсилає тіла.Умовний GET, коли кеш клієнта актуальний.
Use ProxyЗапит має бути надісланий через проксі, названий у відповіді.Застарілі проксі-мережі; виведено з ужитку з 2011 року.
Temporary RedirectРесурс тимчасово в іншому місці, і початковий метод запиту має бути збережений.Як 302, але після перенаправлення POST залишається POST.
Permanent RedirectРесурс має нову постійну URL-адресу, і початковий метод запиту має бути збережений.Як 301, але після перенаправлення POST залишається POST.
4xx Помилка клієнта
Bad RequestСервер не зміг зрозуміти запит через некоректний синтаксис.Пошкоджений JSON або відсутнє обов'язкове поле.
UnauthorizedПотрібна автентифікація — її або немає, або вона не вдалася.Немає токена, або токен недійсний чи прострочений.
Payment RequiredЗапит потребує оплати, хоча специфікація так і не визначила, як саме.Деякі API використовують його як маркер платної стіни; більшість не використовує взагалі.
ForbiddenКлієнт автентифікований, але доступ до цього ресурсу йому не дозволений.Коректний вхід, але немає прав на цей ресурс.
Not FoundНа цій URL-адресі на сервері немає ресурсу.Невідома URL-адреса або неіснуючий ідентифікатор.
Method Not AllowedURL-адреса існує, але не дозволяє використаний метод запиту.POST до ендпоінта, що приймає лише GET.
Not AcceptableСервер не може повернути вміст, що відповідає заголовкам Accept клієнта.Клієнт просив лише XML, а API повертає тільки JSON.
Proxy Authentication RequiredКлієнт має автентифікуватися на проксі, перш ніж запит продовжить рух.Корпоративний проксі відхиляє неавтентифікований запит.
Request TimeoutКлієнт надто довго надсилав запит, і сервер відмовився чекати.Завантаження, що застрягло, перш ніж тіло дійшло до кінця.
ConflictЗапит конфліктує з поточним станом ресурсу.Дублікат email або гонка редагувань одного запису.
GoneРесурс колись існував, але його вилучено назавжди.Ендпоинт навмисно виведений з експлуатації; сильніший за 404.
Length RequiredЗапиту потрібен заголовок Content-Length, а його немає.Сервер, якому розмір потрібен заздалегідь, відхиляє потокове тіло.
Precondition FailedПередумова в заголовку, як-от If-Match, обчислилася як хибна.Оптимістичне редагування, коли запис змінився після прочитання клієнтом.
Content Too LargeТіло запиту перевищує ліміт, який приймає сервер.Завантаження, більше за максимальний розмір тіла на сервері.
URI Too LongURL-адреса запиту довша, ніж сервер готовий інтерпретувати.Форма, випадково серіалізована в GET-рядок запиту, що виріс без меж.
Unsupported Media TypeФормат тіла запиту не входить до прийнятних для цього ендпоінта.POST із Content-Type text/plain до ендпоінта, що приймає лише JSON.
Range Not SatisfiableДіапазон байтів із заголовка Range не вкладається в ресурс.Запит байтів за межами кінця файла під час відновлення завантаження.
Expectation FailedСервер не може виконати очікування, заявлене в заголовку Expect.Очікування 100-continue, яке сервер відмовляється виконувати.
I'm a teapotСервер — це чайник і відмовляється заварювати каву.Першоквітневий жарт 1998 року, що не вмирає; API повертають його задля розваги.
Misdirected RequestЗапит надіслано серверу, який не може створити для нього відповідь.Повторно використане з'єднання, надіслане до хоста, що цей сервер не обслуговує.
Unprocessable EntityЗапит коректно сформований, але його значення не проходять семантичної валідації.Валідний JSON, чиї поля порушують бізнес-правила.
Too EarlyСервер відхиляє запит, що ризикує бути повторним відтворенням.Відхилення повторно надісланого неідемпотентного запиту до ротації ключів.
Upgrade RequiredКлієнт має перейти на інший протокол, щоб користуватися цим ресурсом.Ендпоинт, що наполягає на TLS чи WebSocket.
Precondition RequiredСервер вимагає умовних заголовків, яких запит не надіслав.API, що вимагає If-Match для запобігання втраченим оновленням.
Too Many RequestsКлієнт надіслав забагато запитів за певний часовий проміжок.Вичерпано ліміт запитів; відступіть і повторіть спробу.
Request Header Fields Too LargeОдне чи більше полів заголовка завеликі для обробки сервером.Cookie чи токен, що розростався, доки не заблокував усі запити до сайту.
Unavailable For Legal ReasonsРесурс заблокований з правових причин, як-от вилучення на запит або геообмеження.Урядове вилучення чи сторінка, заблокована в одній країні.
5xx Помилка сервера
Internal Server ErrorСервер натрапив на неочікувану умову і зазнав збою.Необроблений виняток або баг на сервері.
Not ImplementedСервер не підтримує запитаний метод чи функцію.Ендпоинт оголошений, але ще не побудований.
Bad GatewayШлюз чи проксі отримав недійсну відповідь від upstream-сервера.Зворотний проксі не зміг дістатися бекенду.
Service UnavailableСервер тимчасово не може обробити запит.Обслуговування, перевантаження або лежачий залежний сервіс.
Gateway TimeoutШлюз чи проксі не отримав відповідь від upstream-сервера вчасно.Бекенд працював занадто довго, і проксі відмовився чекати.
HTTP Version Not SupportedСервер не підтримує версію HTTP із запиту.Клієнт, що говорить версією протоколу, якої сервер ніколи не знав.
Variant Also NegotiatesПрозоре узгодження вмісту завершилося циклічним посиланням.Неправильно налаштований сервер з експериментальним узгодженням вмісту.
Insufficient StorageСервер не може зберегти представлення, потрібне для завершення запиту.Сервер WebDAV, у якого виділене сховище переповнене.
Loop DetectedСервер натрапив на нескінченну петлю під час обробки запиту.Прив'язка WebDAV, що посилається на саму себе.
Network Authentication RequiredКлієнт має автентифікуватися в мережі, щоб отримати доступ.Captive-портал у готелі чи аеропорту, що перехоплює запит.