Код стану HTTP зашифрований в 3-х цифрах. Перша цифра вказує на клас стану (група кодів). Друга і третя цифра – порядковий номер коду відповіді.
Код стану HTTP повертається сервером. Він є частиною першого рядка відповіді сервера при запитах по протоколу HTTP і вказує на те, чи був успішно виконаний певний HTTP запит.
Коди згруповані в 5 класів: інформаційні (1xx), успішні операції (2xx), перенаправлення (3xx), помилки клієнта (4xx) і помилки сервера (5xx).
Коротка характеристика класів:
Нижче представлена таблиця, яка у вигляді шпаргалки містить наступну інформацію: всі цифрові позначення кодів стану, назва кодів – пояснююча фраза англійською мовою з перекладом на українську, а також короткий опис кожної відповіді сервера.
Група | Код відповіді | Назва коду | Опис відповіді сервера |
---|---|---|---|
Інформаційні | 100 | Continue (Продовжити) | Сервер задоволений початковими відомостями про запит, клієнт може продовжувати пересилати заголовки. З’явився в версії HTTP/1.1. |
101 | Switching Protocol (Перемикання протоколів) | Сервер пропонує перейти на більш відповідний для зазначеного ресурсу протокол; список пропонованих протоколів сервер обов’язково вказує в полі заголовка Upgrade . Якщо клієнта це зацікавить, то він посилає новий запит із зазначенням іншого протоколу. | |
102 | Processing (Йде обробка) | Запит прийнятий сервером, але на його обробку знадобиться тривалий час. Ця відповідь використовується для того, щоб клієнт не розірвав з’єднання через перевищення часу очікування. Клієнт при отриманні такої відповіді повинен скинути таймер і чекати наступної команди в звичайному режимі. З’явився в WebDAV. | |
Успішні операції | 200 | ОК | Успішно оброблений запит. “Успішність” залежить від методу HTTP, який був запитаний:
|
201 | Created (Створено) | Запит успішно виконаний і в результаті був створений новий ресурс. Цей код зазвичай надсилається у відповідь на запит PUT “помістити”. | |
202 | Accepted (Прийнято) | Запит прийнятий, але ще не оброблений. Клієнту не обов’язково чекати остаточної передачі повідомлення, оскільки може бути розпочато дуже довгий процес. | |
203 | Non-Authoritative Information (Інформація не авторитетна) | Цей код відповіді означає, що інформація, яка була повернута, була надана не сервером, а якимось іншим джерелом. Аналогічно відповіді 200, але в цьому випадку передана інформація була взята не з первинного джерела і тому може бути неактуальною. | |
204 | No Content (Немає вмісту) | Сервер успішно обробив запит, але у відповіді були передані тільки заголовки без тексту повідомлення. Клієнт не повинен оновлювати вміст документа, але може застосувати до нього отримані метадані. Клієнт може використовувати їх для поновлення кешованих заголовків для попередніх ресурсів. | |
205 | Reset Content (Повтор відправки вмісту) | Цим кодом сервер зобов’язує клієнта скинути введені користувачем дані. Тіла повідомлення сервер при цьому не передає і документ оновлювати не обов’язково. | |
206 | Partial Content (Частковий вміст) | Сервер вдало виконав частковий GET-запит, повернувши тільки частину контенту. У заголовку Content-Range сервер вказує байтові діапазони вмісту. Особливу увагу при роботі з подібними відповідями слід приділити кешуванню. | |
Перенаправлення | |||
300 | Multiple Choice (Множинний вибір) | Цей код відповіді надсилається, коли запит має більш ніж одну з можливих відповідей (по типу MIME, за мовою або за іншими характеристиками). Сервер передає з повідомленням список альтернатив, даючи можливість зробити вибір клієнту автоматично або користувачеві. | |
301 | Moved Permanently (Ресурс переміщено назавжди) | Цей код відповіді означає, що URI запитуваного ресурсу був змінений. Новий URI вказується в полі Location заголовку. | |
302 | Found (Знайдено); Moved Temporarily (Ресурс тимчасово переміщено) | Цей код відповіді означає, що запитаний ресурс тимчасово доступний по іншому URI, вказаному в полі Location заголовку. | |
303 | See Other (Дивіться інший ресурс) | Сервер відправив цю відповідь, щоб направити клієнта для отримання запитуваного ресурсу по іншому URI з використанням методу GET . Інший URI вказується в полі Location заголовку. | |
304 | Not Modified (Ресурс не змінювався) | Ця відповідь використовується для кешування. Він повідомляє клієнту, що відповідь не була змінена. Таким чином, клієнт може продовжувати використовувати ту ж кешовану версію відповіді. При цьому повідомлення сервера не повинно містити тіла. | |
305 | Use Proxy (Слід використати проксі) | Запит до заданого ресурсу повинен здійснюватися через проксі-сервер, URI якого вказано в полі Location заголовку. Цей код відповіді не підтримується в основному з міркувань безпеки. | |
306 | невикористовуваний | Цей код відповіді більше не використовується, в даний час зарезервовано. | |
307 | Temporary Redirect (Тимчасова переадресація) | Запитуваний ресурс на короткий час доступний по іншому URI, вказаному в полі Location заголовку. Має ту ж семантику, що і 302 Found код відповіді HTTP, за винятком того, що клієнт не повинен змінювати використовуваний HTTP-метод: якщо використовувався POST в першому запиті, він повинен використовувати POST і в другому запиті. | |
308 | Permanent Redirect (Постійна переадресація) | Це означає, що ресурс тепер постійно знаходиться за іншим URI, вказаному в полі Location заголовку. Має ту ж семантику, що і код відповіді HTTP 301 Moved Permanently , за винятком того, що клієнт не повинен змінювати використовуваний HTTP-метод: якщо використовувався POST в першому запиті, він повинен використовувати POST і в другому запиті. | |
Помилки клієнта | |||
400 | Bad Request (Неправильний запит) | Ця відповідь означає, що сервер не зміг зрозуміти клієнтський запит з причини невірного синтаксису. | |
401 | Unauthorized (Несанкційонований доступ) | Для отримання запитуваної відповіді потрібна аутентифікація. Це схоже на 403 відповідь, але в цьому випадку можлива аутентифікація. У заголовку відповідь повинна містити поле WWW-Authenticate з переліком умов аутентифікації. | |
402 | Payment Required (Необхідна оплата) | Цей код відповіді зарезервований для майбутнього використання. Початкова мета створення цього коду полягала у використанні його для цифрових платіжних систем, однак в даний час він не використовується. Проте, YouTube використовує цей статус, якщо з конкретної IP-адреси зробили надмірну кількість запитів і вимагає від людини ввести CAPTCHA. | |
403 | Forbidden (Заборонено) | Сервер зрозумів запит, але він відмовляється його виконувати через обмеження в доступі для клієнта до зазначеного ресурсу. Клієнт не має прав доступу до контенту, тому сервер відмовляється дати правильну відповідь. Найбільш ймовірними причинами обмеження може служити спроба доступу до системних ресурсів веб-сервера (наприклад, файлів .htaccess або .htpasswd ) або до файлів, доступ до яких був закритий з допомогою конфігураційних файлів. | |
404 | Not Found (Не знайдено) | Сервер не може знайти запитуваний ресурс. Основна причина – помилка в написанні адреси Web-сторінки. Цей код відповіді, ймовірно, є найвідомішим через його поширеність в Інтернеті. | |
405 | Method Not Allowed (Неприпустимий метод) | Метод запиту відомий серверу, але був відключений і не може бути використаний. У відповіді сервер повинен вказати доступні методи в заголовку Allow , розділивши їх комою. Два обов’язкових методи: GET і HEAD ніколи не повинні бути відключені і не повинні повертати цей код помилки. | |
406 | Not Acceptable (Неприйнятний запит) | Запитаний URI не може задовольнити переданим в заголовку характеристикам. Якщо метод не був HEAD , то сервер повинен повернути список допустимих характеристик для даного ресурсу. | |
407 | Proxy Authentication Required (Необхідна ідентифікація проксі, фаєрвола) | Ця відповідь схожа на 401 , але тут перевірка справжності (аутентифікація) проводиться для проксі-сервера. | |
408 | Request Timeout (Час запиту закінчився) | Час очікування сервером передачі від клієнта минув. Це означає, що сервер хотів би відключити це невикористовуване з’єднання. Зверніть увагу, що деякі сервери просто закривають з’єднання без відправки цього повідомлення. | |
409 | Conflict (Конфлікт) | Ця відповідь буде відправлена, коли запит буде конфліктувати з поточним станом сервера. Таке можливо, наприклад, коли два клієнта намагаються змінити ресурс за допомогою методу PUT . | |
410 | Gone (Зник) | Ця відповідь буде відправлена, коли запитуваний контент за вказаним URL був видалений з сервера. Серверу в цьому випадку невідоме і місце розташування альтернативного документа (наприклад, копії). | |
411 | Length Required (Необхідно зазначити довжину) | Сервер відхилив запит, тому що поле заголовку Content-Length не визначене, а сервер вимагає його. Така відповідь природна для запитів типу POST і PUT . Наприклад, якщо за вказаним URI проводиться завантаження файлів, а на сервері стоїть обмеження на їх обсяг. | |
412 | Precondition Failed (Збій під час обробки попередньої умови) | Клієнт вказав умовні поля в заголовках запиту (наприклад, If-Match та ін.), які сервер не виконує. | |
413 | Payload Too Large. Раніше – Request Entity Too Large (Тіло запиту перевищує допустимий розмір) | Об’єкт запиту більше обмежень, які визначені на сервері. Сервер може закрити з’єднання, щоб припинити подальшу передачу запиту або повернути поле заголовку Retry-After із зазначенням часу, після закінчення якого можна буде повторити аналогічний запит. | |
414 | URI Too Long. Раніше – Request-URI Too Long (Неприпустима довжина URI запиту) | Запитуваний клієнтом URI занадто довгий для обробки сервером. Таку помилку можна спровокувати, наприклад, коли клієнт намагається передати довгі параметри через метод GET , а не POST . | |
415 | Unsupported Media Type (Непідтримуваний тип даних) | Формат запитуваних типів даних не підтримується сервером, тому сервер відхиляє запит. З якихось причин сервер відмовляється працювати з вказаним типом даних при цьому методі. | |
416 | Range Not Satisfiable. Ранее — Requested Range Not Satisfiable (Запитуваний діапазон недосяжний) | Діапазон, вказаний полем заголовку Range в запиті, не може бути здійснений; можливо, що діапазон знаходиться поза розміром даних цільового URI і відсутнє поле If-Range . | |
417 | Expectation Failed (Помилка очікування) | Цей код відповіді означає, що очікування, вказане полем заголовку Expect запиту, не може бути виконане сервером. | |
421 | Misdirected Request (Невірно адресований запит) | Запит був перенаправлений на сервер, який не здатний дати відповідь. | |
451 | Unavailable For Legal Reasons (Недоступно з юридичних причин) | Доступ до ресурсу закритий з юридичних причин (наприклад, на вимогу органів державної влади або на вимогу правовласника в разі порушення авторських прав). Введено в чернетці IETF за авторством Google, при цьому код помилки є натяком на роман Рея Бредбері «451 градус за Фаренгейтом». Був доданий в стандарт 21 грудня 2015 року. | |
Помилки сервера | |||
500 | Internal Server Error (Внутрішня помилка серверу) | Сервер зіткнувся з ситуацією, коли він не знає, як йому вчинити. Будь-яка внутрішня помилка сервера, яка не відноситься до інших помилок цього класу. | |
501 | Not Implemented (Метод не підтримується) | Метод запиту не підтримується сервером і не може бути опрацьований. Типова відповідь для випадків, коли сервер не розуміє вказаний в запиті метод. Єдиними методами, які потрібні сервером для підтримки (і, отже, не повинні повертати цей код), є GET і HEAD . | |
502 | Bad Gateway (Помилка шлюзу) | Ця відповідь про помилку означає, що сервер, працюючи в якості шлюзу для отримання відповіді, необхідного для обробки запиту, отримав невірну відповідь. Сервер, працюючи в ролі шлюзу або проксі-сервера, отримав недійсну відповідь, яка була надіслана від вищестоящого сервера. | |
503 | Service Unavailable (Сервіс недоступний) | Сервер не готовий обробляти запит. Сервер тимчасово не має можливості обробляти запити з технічних причин (обслуговування, перевантаження та інше). Зверніть увагу, що разом з цією відповіддю слід відправити зручну для користувача сторінку, яка пояснює проблему. Ці відповіді повинні використовуватися для тимчасових умов, і HTTP-заголовок Retry-After повинен, по можливості, містити розрахунковий час до відновлення обслуговування. Веб-майстер також повинен стежити за заголовками, пов’язаними з кешуванням, які відправляються разом з цією відповіддю, оскільки ці тимчасові відповіді зазвичай не кешуються. | |
504 | Gateway Timeout (Шлюз не відповідає) | Ця відповідь про помилку надається, коли сервер діє як шлюз і не може отримати відповідь вчасно. Сервер в ролі шлюзу або проксі-сервера не дочекався відповіді від вищестоящого сервера для завершення поточного запиту. | |
505 | HTTP Version Not Supported (Версія HTTP не підтримується) | Версія протоколу HTTP, яка використовується в запиті, не підтримується сервером (або сервер відмовляється підтримувати зазначену версію). | |
509 | Bandwidth Limit Exceeded (Вичерпано пропускну ширину каналу) | Цей код використовується при перевищенні веб-майданчиком відведеного йому обмеження на споживання трафіку. В даному випадку власнику майданчика слід звернутися до свого хостинг-провайдера. На даний момент цей код не описаний у жодному RFC і використовується лише модулем «bw/limited», що входить в панель управління хостингом cPanel, де і був введений. |
Якщо хочеш пізнати людину, не слухай, що про неї говорять інші, послухай, що вона говорить…
Вибачення — не означає, що ти не правий, а інша людина має рацію. Це всього…
Атмосферу паперової книги, запах свіжого чорнила і паперу, що трохи залежався, складно замінити гаджетами. Але…