• База знань
  • /
  • Блог
  • /
  • Wiki
  • /
  • ONLINE CHAT
+380 (44) 364 05 71

FREEHOST.WIKI

Що таке сторінки помилок HTTP

Стаття також доступна російською (перейти до перегляду).

Одним із показників широкого застосування протоколу HTTP є безліч сторінок помилок, котрі часто можуть бачити як фахівці, так і пересічні користувачі мережі. Такі сторінки можуть вказувати на проблеми у роботі веб-ресурсу або просто бути повідомленнями про редирект чи успішність виконання операції. Усе залежить від коду помилки. І тому, щоб бути готовими до їх появи, треба орієнтуватися у цих кодах. Цьому і присвячена стаття.     

Механізм появи сторінок помилок HTTP

Протокол прикладного рівня HTTP (HyperText Transfer Protocol) в основному використовується для передачі гіпертексту, але може бути задіяний і для передачі будь-яких даних. Технологічною основою його використання є клієнт-серверна технологія, котра передбачає обов`язкову наявність двох сутностей – клієнта та серверу. Сервер забезпечує зберігання веб-ресурсів та обробку запитів стосовно них від клієнта. Клієнти є споживачами послуг сервера і тому ініціюють з`єднання та відправляють запити. Взаємодія між ними відбувається за правилом – «запит-відповідь». Саме за такою схемою відбувається робота протоколу.

У якості клієнта тут найчастіше виступає браузер, хоча може бути і інше програмне забезпечення (ПО), наприклад, менеджер для завантаження файлів. Реалізацією сервера може бути наступне відоме ПО: IIS, Apache, nginx та інше подібне.

Структура HTTP-повідомлень передбачає наявність наступних полів:

  • Starting line;

  • Headers;

  • Message Body.

Starting line є стартовою строчкою повідомлення, котра визначає його тип. 

Headers є заголовком та описує параметри передачі та тіло повідомлення. 

Message Body є тілом повідомлення і містить безпосередньо його дані.   

Обов`язковими елементами будь-якого HTTP-повідомлення є стартова строчка та заголовок. Причому, формати Starting line запиту та відповіді відрізняються. Так, Starting line відповіді має наступний формат:

HTTP/Версія протоколу     Код стану     Пояснення

Приклад:

HTTP/1.0    507    Insufficient Storage

Код стану є тризначним числом, яке несе в собі інформацію для клієнта про результати виконання запиту і, відповідно, визначає подальші дії клієнта. Існуючий набір вказаних кодів стандартизований та описаний у відповідних RFC-документах. Перша позиція у коді визначає так званий клас коду стану. Клієнту може бути невідомий отриманий ним код стану, але, відповідно до стандарту він зобов`язаний зреагувати на клас коду. 

Таким чином, сторінки помилок HTTP є нічим іншим, як відображенням частини Starting line відповіді сервера на попередній запит клієнта. Розглянемо призначення кожного класу кодів стану.      

Офіційні коди помилок

Існує п`ять класів кодів стану і, відповідно, п`ять груп кодів. Розглянемо їх більш детально окремо для кожного класу.   

Клас 1

Коди 1-го класу є інформаційними, тобто можуть інформувати клієнта, наприклад, про процес передачі даних. Відповіді клієнта вони не потребують. Ключове слово: Informational. Формат: 1хх, де х – десяткове число або нуль. Наведемо їх.

  • 100 Continue — Клієнт може продовжувати пересилати заголовки.

  • 101 Switching Protocols — Повідомлення про переключення на інший протокол, згідно вимоги клієнта.  

  • 102 Processing — Сервер потребує додатковий час на обробку запиту. 

  • 103 Early Hints — Відповідь клієнту має в собі лише частину заголовку. Інша частина буде сформована пізніше. 

Клас 2

Коди 2-го класу інформують про випадки успішного прийняття та обробки запиту від клієнта. Ключове слово: Success. Формат: 2хх, де х – десяткове число або нуль. Наведемо їх.

  • 200 OK — Запит успішно виконано.

  • 201 Created — Повідомлення про створення за результатом виконання запиту нового ресурсу, основна адреса якого  вказана у полі Location заголовку.  

  • 202 Accepted — Запит прийнятий, але його обробка може зайняти багато часу. 

  • 203 Non-Authoritative Information — Запит виконано, але інформація може бути застарілою. 

  • 204 No Content — Запит виконано, але відповідь містить лише заголовки без тіла повідомлення. 

  • 205 Reset Content — Вимога до клієнта обнулити введені користувачем дані. 

  • 206 Partial Content — Частковий GET-запит виконано, але відповідь має лише частину повідомлення. У заголовку Content-Range вказані діапазони байтів вмісту повідомлення.  

  • 207 Multi-Status — У тілі повідомлення передаються результати виконання кількох незалежних операцій у вигляді XML-документу.  

  • 208 Already Reported — Інформування про те, що спеціальна інформація вже була передана у повідомленні Multi-Status.  

  • 226 IM Used — Заголовок A-IM був прийнятий і сервер повертає клієнту його вміст із урахуванням вказаних параметрів.  

Клас 3

Коди 3-го класу повідомляють клієнту про необхідність виконати другий запит за URI-адресою, вказаною у полі Location заголовку. Ключове слово: Redirection. Формат: 3хх, де х – десяткове число або нуль. Наведемо їх.

  • 300 Multiple Choices — Передається список варіантів надання ресурсу по вказаному URI для можливості альтернативного вибору для клієнта чи користувача. 

  • 301 Moved Permanently — Документ був остаточно перенесений на нову URI-адресу, вказану у полі Location заголовку. 

  • 302 Found, 302 Moved Temporarily — Документ тимчасово доступний по URI, вказаному у заголовку. 

  • 303 See Other — Необхідно зробити запит до документу по URI, вказаному у заголовку із обов`язковим використанням методу GET. 

  • 304 Not Modified — Документ не був змінений після останнього запиту клієнта методом GET з використанням заголовків If-Modified-Since або If-None-Match. 

  • 305 Use Proxy — Запит до ресурсу повинен здійснюватись посередництвом проксі-серверу, URI котрого вказаний у полі Location заголовку. 

  • 307 Temporary Redirect — Ресурс, до якого було здійснено запит, тимчасово доступний по URI, вказаному у полі заголовку. Метод запиту змінювати не можна. 

  • 308 Permanent Redirect —  Ресурс, до якого було здійснено запит остаточно перенесений на URI, вказаний у полі заголовку. 

Клас 4

Коди 4-го класу повідомляють про помилки зі сторони клієнта. Ключове слово:Client Error. Формат: 4хх, де х – десяткове число або нуль. Наведемо їх.

  • 400 Bad Request — У запиті виявлена синтаксична помилка. 

  • 401 Unauthorized — Для доступу до ресурсу необхідна автентифікація. У полі WWW-Authenticate заголовку вказані її умови. 

  • 402 Payment Required — Код планується використовувати у майбутньому для платних користувацьких сервісів. 

  • 403 Forbidden — Запит не може бути виконано з-за існуючих обмежень клієнта в доступі до ресурсу. 

  • 404 Not Found — Веб-ресурс по вказаному у запиті URL не знайдено. 

  • 405 Method Not Allowed — Вказаний у запиті метод не можна застосувати до поточного ресурсу. Доступні методи перераховані у полі Allow заголовку відповіді. 

  • 406 Not Acceptable — Веб-ресурс, до якого було здійснено запит, не відповідає характеристикам, переданим у заголовку. 

  • 407 Proxy Authentication Required — Проксі-серверу для доступу до ресурсу необхідна автентифікація. 

  • 408 Request Timeout — Час очікування передачі даних сплинув. 

  • 409 Conflict — Запит не виконано з-за наявності конфлікту доступу до ресурсу. 

  • 410 Gone —Веб-ресурс недоступний, хоча раніше і знаходився за вказаним у запиті URL.

  • 411 Length Required — Для вказаного ресурсу необхідно заповнити поле Content-Length заголовка запиту. 

  • 412 Precondition Failed — Умови, вказані у полях заголовку не були виконані. 

  • 413 Payload Too Large — Запит не може бути виконаний з-за великого розміру тіла запиту. 

  • 414 URI Too Long — Запит не може бути виконаний з-за великої довжини URI ресурсу. 

  • 415 Unsupported Media Type — Невідповідність типів даних для вказаного методу їх обробки. 

  • 416 Range Not Satisfiable — У полі Range заголовку запиту вказаний діапазон, котрий виходить за межі ресурсу, а також відсутнє поле If-Range. 

  • 417 Expectation Failed — Не може бути задоволене значення полю Expect заголовка запиту. 

  • 418 I’m a teapot — Код не використовується зараз і не планується його використання в подальшому. 

  • 419 Authentication Timeout — Використовується як альтернатива коду 401. Відсутній у RFC 2616

  • 421 Misdirected Request — Запит був перенаправлений на сервер, котрий не спроможний надати відповідь.

  • 422 Unprocessable Entity —Запит успішно прийнятий, однак його виконання неможливе з-за наявності логічної помилки.  

  • 423 Locked — Ресурс заблокований для можливості застосування до нього вказаного у запиті метода.

  • 424 Failed Dependency — Запит не виконано з-за невиконання операції, від результатів котрої він залежить.  

  • 425 Too Early — Сервер не готовий до обробки інформації.  

  • 426 Upgrade Required — Вказівка на необхідність оновлення протоколу. 

  • 428 Precondition Required — Вказівка на необхідність використання у запиті заголовків умов, типу If-Match. 

  • 429 Too Many Requests — Помилка з`являється у випадку, якщо було сформовано багато запитів від клієнта за короткий проміжок часу. 

  • 431 Request Header Fields Too Large — Перевищена допустима довжина заголовків. Замість вказаної відповіді сервер може перервати з`єднання.

  • 449 Retry With — Запит на виконано з-за відсутності всієї інформації. 

  • 451 Unavailable For Legal Reasons — Доступ до ресурсу закритий з юридичних причин. 

  • 499 Client Closed Request — Помилка з`являється у nginx, якщо клієнт закрив з`єднання під час обробки запиту.  

Клас 5

Коди 5-го класу повідомляють про помилки виконання запиту з вини сервера. Ключове слово:Server Error. Формат: 5хх, де х – десяткове число або нуль. Наведемо їх.

  • 500 Internal Server Error — Внутрішня помилка сервера, котра не відноситься до помилок класу. 

  • 501 Not Implemented — Не підтримуються можливості серверу, необхідні для обробки запиту. 

  • 502 Bad Gateway — Сервером, котрий виконує функції шлюзу або проксі, отримана недійсна відповідь від старшого за рангом сервера. 

  • 503 Service Unavailable — Тимчасово по технічним причинам сервер не має можливостей на обробку запитів. 

  • 504 Gateway Timeout — Сервер, котрий виконує функції шлюзу або проксі не дочекався відповіді від старшого за рангом сервера.  

  • 505 HTTP Version Not Supported — Вказана у запиті версія HTTP не підтримується. 

  • 506 Variant Also Negotiates — Помилкова конфігурація, коли обраний варіант вказує сам на себе.  

  • 507 Insufficient Storage — Нестача місця для виконання поточного запиту. Код введений у WebDAV.

  • 508 Loop Detected — Повідомлення про відміну операції, оскільки виявлений нескінченний цикл. Введено у WebDAV. 

  • 508 Resource Limit Reached — Варіант помилки 508 в CloudLinux для випадку, якщо вичерпаний ліміт хостингу.

  • 509 Bandwidth Limit Exceeded — Видається у випадку перевищення обмежень на споживання трафіку. 

  • 510 Not Extended — Вказує на відсутність розширення, котре хоче використовувати клієнт. 

  • 511 Network Authentication Required — Відповідь сервера-посередника, котра вказує на необхідність авторизації клієнта.  

  • 520 Unknown Error — Виникає у випадку, коли сервер CDN не зміг обробити помилку веб-серверу. Нестандартний код CloudFlare.

  • 521 Web Server Is Down — Виникає,  коли підключення CDN відхиляються веб-сервером.

  • 522 Connection Timed Out — Виникає, коли CDN не вдалося підключитися до веб-серверу.

  • 523 Origin Is Unreachable — Веб-сервер недосяжний. 

  • 524 A Timeout Occurred — Виникає при спливу часу тайм-ауту підключення між сервером CDN та веб-сервером.

  • 525 SSL Handshake Failed — Помилка SSL між CDN та веб-сервером.

  • 526 Invalid SSL Certificate — Не вдається підтвердити сертифікат шифрування веб-серверу. Нестандартний код CloudFlare.

Віртуальний хостинг FREEhost.UA дозволяє керувати сторінками помилок за допомогою панелі керування хостингом. У панелі керування можна задати сторінки, які буде бачити користувач у разі помилок 401, 403, 404, 500 та 503. Показувати користувачеві зрозумілі сторінки помилок, що описують причину того, що відбувається, це правило хорошого тону. Не забувайте їх налаштовувати.

Запрошуємо Вас скористатися віртуальним хостингом FREEhost.UA. Наша технічна підтримка працює 24/7 та завжди готова прийти до Вас на допомогу.

ІНШІ СТАТТІ ЗА ТЕМОЮ

Дякуємо, що обираєте FREEhost.UA