DevToolPal
UK

Коди стану HTTP

Усі коди стану HTTP простими словами: що означає код, типові причини, як виправити, приклад відповіді та RFC, де його визначено.

Кодів стану: 70

1xx Інформаційні

Проміжні відповіді: запит отримано, обробка триває.

2xx Успіх

Запит отримано, зрозуміло й прийнято.

200 OK Гаразд Запит успішний. Для GET тіло містить ресурс; для POST — результат дії. 201 Created Створено Запит успішний і створив новий ресурс. Заголовок Location зазвичай вказує на нього. 202 Accepted Прийнято Запит прийнято до обробки, але обробку не завершено. На момент відповіді результат невідомий. 203 Non-Authoritative Information Неавторитетна інформація Запит успішний, але проксі-перетворювач змінив вміст відповіді 200 від сервера-джерела. 204 No Content Немає вмісту Запит успішний, і тіла для повернення немає. Заголовки все ще можуть нести метадані, як-от новий ETag. 205 Reset Content Скинути вміст Запит успішний, і клієнт має скинути подання документа, наприклад очистити надіслану форму. Тіло не надсилається. 206 Partial Content Частковий вміст Сервер повертає лише частину ресурсу, як просив заголовок Range. Content-Range вказує, які байти включено. 207 Multi-Status Багато статусів Відповідь WebDAV, XML-тіло якої містить окремий статус для кожного з кількох ресурсів, яких стосувався один запит. 208 Already Reported Уже повідомлено Використовується всередині тіла WebDAV 207, щоб сказати, що ресурс уже був перелічений раніше у відповіді; це запобігає дублікатам, коли прив'язки утворюють цикли. 226 IM Used IM використано Сервер виконав GET із застосуванням однієї чи кількох маніпуляцій екземпляром (дельта-кодування), тож тіло є різницею, а не повним ресурсом.

3xx Перенаправлення

Клієнту треба зробити ще крок, зазвичай перейти за новим URL.

300 Multiple Choices Кілька варіантів Ресурс має кілька подань (мова, формат), і клієнт або користувач має вибрати одне. Сервер може запропонувати бажане через Location. 301 Moved Permanently Переміщено назавжди Ресурс назавжди переміщено на URL із Location. Клієнти й пошукові системи мають відтепер використовувати нову адресу. 302 Found Знайдено Ресурс тимчасово знаходиться за іншою адресою. Клієнти мають і далі використовувати початковий URL для майбутніх запитів. 303 See Other Див. інший Сервер направляє клієнта отримати інший URL методом GET, зазвичай щоб показати результат POST. 304 Not Modified Не змінено Кешована копія клієнта досі актуальна, тож сервер не надсилає тіло. Це відповідь на умовний запит з If-None-Match або If-Modified-Since. 305 Use Proxy Використовуйте проксі Застарілий. Колись наказував клієнту повторити запит через проксі з Location. Браузери ігнорують його з міркувань безпеки. 307 Temporary Redirect Тимчасове перенаправлення Ресурс тимчасово за іншою адресою, і клієнт має повторити там запит тим самим методом і з тим самим тілом. 308 Permanent Redirect Постійне перенаправлення Ресурс переміщено назавжди, і клієнти мають повторити запит за новою адресою тим самим методом і з тим самим тілом.

4xx Помилки клієнта

У запиті є помилка, яку має виправити клієнт.

400 Bad Request Некоректний запит Сервер не може обробити запит, бо він сформований неправильно: недійсний синтаксис, хибне кадрування або значення, які неможливо розібрати. 401 Unauthorized Неавторизовано У запиті немає дійсних облікових даних. Попри назву, це означає «не автентифіковано»: увійдіть або надішліть дійсний токен. 402 Payment Required Потрібна оплата Зарезервовано на майбутнє, але на практиці сервіси повертають його, коли для продовження потрібна оплата або платний тариф. 403 Forbidden Заборонено Сервер зрозумів запит, але відмовляється його авторизувати. Повторний вхід не допоможе, доки не зміняться дозволи. 404 Not Found Не знайдено Сервер не знаходить нічого за запитаним URL. Він нічого не каже про те, чи існував ресурс колись і чи повернеться. 405 Method Not Allowed Метод не дозволено URL існує, але не підтримує використаний HTTP-метод. Заголовок Allow перелічує робочі методи. 406 Not Acceptable Неприйнятно Сервер не може створити відповідь у жодному форматі, дозволеному заголовками Accept клієнта. 407 Proxy Authentication Required Потрібна автентифікація на проксі Проксі між клієнтом і сервером вимагає автентифікації, перш ніж переслати запит. 408 Request Timeout Час очікування запиту вичерпано Сервер закрив з'єднання, бо клієнт вчасно не надіслав повний запит. 409 Conflict Конфлікт Запит конфліктує з поточним станом ресурсу, наприклад дублікат або одночасне редагування. 410 Gone Зникло Ресурс зник назавжди, і нова адреса невідома. На відміну від 404, сервер стверджує це навмисно. 411 Length Required Потрібна довжина Сервер вимагає заголовок Content-Length, а запит його не містить. 412 Precondition Failed Передумова не виконана Передумова в заголовках запиту, наприклад If-Match або If-Unmodified-Since, виявилася хибною, тож сервер не застосував запит. 413 Content Too Large Завеликий вміст Тіло запиту більше, ніж сервер готовий або здатен обробити. Раніше називався Payload Too Large. 414 URI Too Long Задовгий URI URL запиту довший, ніж сервер готовий інтерпретувати. 415 Unsupported Media Type Непідтримуваний тип даних Сервер відхиляє запит, бо тип даних тіла (Content-Type) або кодування не підтримуються. 416 Range Not Satisfiable Діапазон недосяжний Заголовок Range запитує байти поза розміром ресурсу. 417 Expectation Failed Очікування не виконано Сервер не може виконати вимогу із заголовка Expect запиту, зазвичай Expect: 100-continue. 418 I'm a teapot Я — чайник Першоквітневий жарт із Hyper Text Coffee Pot Control Protocol: сервер — чайник і відмовляється варити каву. Деякі сайти використовують його для жарту або блокування ботів. 421 Misdirected Request Запит спрямовано хибно Запит потрапив на сервер, не налаштований відповідати для цього хоста, часто тому, що з'єднання HTTP/2 повторно використали для іншого домену. 422 Unprocessable Content Необроблюваний вміст Запит сформовано правильно, але він містить семантичні помилки, тож сервер не може його обробити. Раніше Unprocessable Entity. 423 Locked Заблоковано WebDAV: ресурс заблоковано, тож метод неможливо застосувати. 424 Failed Dependency Невдала залежність WebDAV: дія не вдалася, бо залежала від іншої дії в тому самому запиті, яка завершилася невдачею. 425 Too Early Зарано Сервер відмовляється обробляти запит, надісланий як ранні дані TLS 1.3 (0-RTT), бо його можуть відтворити повторно. 426 Upgrade Required Потрібне оновлення протоколу Сервер відмовляється обробляти запит за поточним протоколом і вимагає, щоб клієнт перейшов, наприклад, на TLS чи HTTP/2, як зазначено в заголовку Upgrade. 428 Precondition Required Потрібна передумова Сервер вимагає, щоб запит був умовним (If-Match тощо), аби запобігти втраті оновлень. 429 Too Many Requests Забагато запитів Клієнт надіслав забагато запитів за певний час (обмеження частоти). Retry-After може вказати, скільки чекати. 431 Request Header Fields Too Large Завеликі поля заголовків запиту Заголовки запиту завеликі: або один заголовок, або всі разом. 451 Unavailable For Legal Reasons Недоступно з юридичних причин Сервер не може надати ресурс з юридичних причин, як-от рішення суду чи державна цензура. Число відсилає до «451 градус за Фаренгейтом». 499 Client Closed Request (Нестандартний) Клієнт закрив запит nginx записує 499, коли клієнт закрив з'єднання до того, як сервер надіслав відповідь. Клієнт ніколи не бачить цього коду.

5xx Помилки сервера

Сервер не зміг виконати коректний запит.

500 Internal Server Error Внутрішня помилка сервера Сервер натрапив на непередбачену ситуацію й не зміг завершити запит. Це загальний код для помилок на боці сервера. 501 Not Implemented Не реалізовано Сервер не підтримує потрібну функціональність, зазвичай сам метод запиту. 502 Bad Gateway Хибний шлюз Шлюз або проксі отримав недійсну відповідь від upstream-сервера, якому переслав запит. 503 Service Unavailable Сервіс недоступний Сервер тимчасово не може обробити запит через перевантаження чи обслуговування. Retry-After може вказати, коли спробувати знову. 504 Gateway Timeout Час очікування шлюзу вичерпано Шлюз або проксі не отримав вчасно відповіді від upstream-сервера. 505 HTTP Version Not Supported Версія HTTP не підтримується Сервер не підтримує версію HTTP, використану в запиті. 506 Variant Also Negotiates Варіант також узгоджується Прозоре узгодження вмісту налаштовано хибно: вибраний варіант сам налаштований на узгодження, що утворює цикл. 507 Insufficient Storage Недостатньо місця Сервер не може зберегти подання, потрібне для виконання запиту (закінчилося місце на диску чи квота). Походить із WebDAV. 508 Loop Detected Виявлено цикл Сервер виявив нескінченний цикл під час обробки запиту з Depth: infinity (WebDAV). Деякі хостинги також використовують його для лімітів ресурсів. 510 Not Extended Не розширено Для виконання запиту серверу потрібні додаткові розширення (HTTP Extension Framework). Цей фреймворк тепер має історичний статус. 511 Network Authentication Required Потрібна мережева автентифікація Клієнт має автентифікуватися, щоб отримати доступ до мережі, зазвичай на captive portal (Wi-Fi в готелі чи аеропорту). 520 Web Server Returned an Unknown Error (Нестандартний) Невідома помилка сервера Специфічно для Cloudflare: сервер-джерело повернув порожню, невідому чи неочікувану відповідь. 521 Web Server Is Down (Нестандартний) Вебсервер не працює Специфічно для Cloudflare: сервер-джерело відмовив у з'єднанні. 522 Connection Timed Out (Нестандартний) Час з'єднання вичерпано Специфічно для Cloudflare: TCP-з'єднання із сервером-джерелом перевищило тайм-аут. 523 Origin Is Unreachable (Нестандартний) Джерело недосяжне Специфічно для Cloudflare: Cloudflare не може дістатися до джерела, зазвичай через проблеми з DNS чи маршрутизацією. 524 A Timeout Occurred (Нестандартний) Стався тайм-аут Специфічно для Cloudflare: з'єднання з джерелом встановлено, але воно не надіслало HTTP-відповідь вчасно (за замовчуванням 100 секунд). 525 SSL Handshake Failed (Нестандартний) Помилка рукостискання SSL Специфічно для Cloudflare: рукостискання TLS між Cloudflare і джерелом не вдалося. 526 Invalid SSL Certificate (Нестандартний) Недійсний SSL-сертифікат Специфічно для Cloudflare: у режимі SSL Full (strict) сертифікат джерела недійсний, прострочений, самопідписаний або не відповідає імені хоста.