Шпаргалка по кодам відповіді стану HTTP

Код стану HTTP зашифрований в 3-х цифрах. Перша цифра вказує на клас стану (група кодів). Друга і третя цифра – порядковий номер коду відповіді.

Код стану HTTP повертається сервером. Він є частиною першого рядка відповіді сервера при запитах по протоколу HTTP і вказує на те, чи був успішно виконаний певний HTTP запит.

Коди згруповані в 5 класів: інформаційні (1xx), успішні операції (2xx), перенаправлення (3xx), помилки клієнта (4xx) і помилки сервера (5xx).

Коротка характеристика класів:

  • 1xx (інформаційні): в цей клас виділені коди, що інформують про процес передачі
  • 2xx (успішні операції): цей клас кодів вказує на те, що клієнтський запит був отриманий, зрозумілий сервером, прийнятий і успішно оброблений
  • 3xx (перенаправлення): коди цього класу повідомляють клієнту, що для успішного виконання операції необхідно зробити інший запит (як правило, по іншому URI)
  • 4xx (помилки клієнта): коди даного класу призначені для випадків, в яких клієнт робить невірні запити
  • 5xx (помилки сервера): коди відповідей цього класу відносяться до випадків, в яких сервер ідентифікує, що сталася помилка з його вини або він по якійсь причині не в змозі виконати запит

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

Група Код відповіді Назва коду Опис відповіді сервера
Інформаційні 100 Continue (Продовжити) Сервер задоволений початковими відомостями про запит, клієнт може продовжувати пересилати заголовки. З’явився в версії HTTP/1.1.
101 Switching Protocol (Перемикання протоколів) Сервер пропонує перейти на більш відповідний для зазначеного ресурсу протокол; список пропонованих протоколів сервер обов’язково вказує в полі заголовка Upgrade. Якщо клієнта це зацікавить, то він посилає новий запит із зазначенням іншого протоколу.
102 Processing (Йде обробка) Запит прийнятий сервером, але на його обробку знадобиться тривалий час. Ця відповідь використовується для того, щоб клієнт не розірвав з’єднання через перевищення часу очікування. Клієнт при отриманні такої відповіді повинен скинути таймер і чекати наступної команди в звичайному режимі. З’явився в WebDAV.
Успішні операції 200 ОК Успішно оброблений запит. “Успішність” залежить від методу HTTP, який був запитаний:
  • GET: “ОТРИМАТИ”. Запитаний ресурс був знайдений і переданий в тілі відповіді.
  • HEAD: «ЗАГОЛОВОК». Заголовок переданий у відповіді.
  • POST: «ПОСИЛКА». Ресурс, що описує результат дії сервера на запит, переданий в тілі відповіді.
  • TRACE: “ВІДСТЕЖЕННЯ”. Тіло відповіді містить тіло запиту отриманого сервером.
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, де і був введений.

 

 


 

Share

Останні пости

Авраам Лінкольн

Ми не допоможемо людям, роблячи за них те, що вони могли б зробити самі Авраам… Читати далі

15/03/2024

Як зберігати каву, щоб вона не втрачала смаку і аромату

Смак приготованого напою залежить не тільки від сорту кави, способу та ступеня прожарювання, помелу зерен,… Читати далі

11/03/2024

Габрієль Гарсія Маркес

Вік — це не те, скільки тобі років, а те, — як ти їх відчуваєш… Читати далі

10/03/2024

Короткий опис ліцензій з відкритим вихідним кодом

Якщо ви створюєте програмне забезпечення, яким хочете поділитися, або використовуєте програмний продукт, який хочете модифікувати,… Читати далі

09/03/2024

Ніл Ґейман

Люди думають, що будуть щасливі, якщо переїдуть в інше місце, а потім виявляється: куди б… Читати далі

20/02/2024

Уроки JavaScript — як почати працювати з об’єктами

Об’єкти є однією з найважливіших і найпотужніших функцій JavaScript, і в багатьох вбудованих функціях об’єкти… Читати далі

17/02/2024