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

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



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

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

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

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

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

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

ГрупаКод відповідіНазва кодуОпис відповіді сервера
Інформаційні100Continue (Продовжити)Сервер задоволений початковими відомостями про запит, клієнт може продовжувати пересилати заголовки. З’явився в версії HTTP/1.1.
101Switching Protocol (Перемикання протоколів)Сервер пропонує перейти на більш відповідний для зазначеного ресурсу протокол; список пропонованих протоколів сервер обов’язково вказує в полі заголовка Upgrade. Якщо клієнта це зацікавить, то він посилає новий запит із зазначенням іншого протоколу.
102Processing (Йде обробка)Запит прийнятий сервером, але на його обробку знадобиться тривалий час. Ця відповідь використовується для того, щоб клієнт не розірвав з’єднання через перевищення часу очікування. Клієнт при отриманні такої відповіді повинен скинути таймер і чекати наступної команди в звичайному режимі. З’явився в WebDAV.
Успішні операції200ОКУспішно оброблений запит. “Успішність” залежить від методу HTTP, який був запитаний:

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

 



 


 



Напишіть тут свою думку/питання

Ваша пошта не публікуватиметься. Обов’язкові поля позначені *