Користувачі інтернету, які хоч трохи заглиблювалися в термінологію Мережі (принаймні, велика їх частина), знають, що являє собою протокол HTTP. Даний протокол передачі даних дозволяє користувачам взаємодіяти з веб-ресурсами через браузер. Однією з функцій протоколу є можливість повертати спеціальні коди, які надають користувачам інформацію про стан роботи веб-сайту або статусу виконання тієї чи іншої задачі. Сюди ж входять і коди помилок HTTP. Коди помилок діляться на два типи: помилки клієнта і помилки сервера. Про цих двох категоріях та інших корисних, а головне - часто зустрічаються кодах поговоримо в цьому матеріалі.
Помилки HTTP-клієнта
У разі якщо помилка була виявлена на стороні клієнта, сервер повертає йому код з класу 4xx. Якщо на сервері не виявлено будь-яких проблем, але він все ще недоступний користувачеві, то клієнту відправляється код з поясненням помилки. Отже, помилки клієнта під кодом 40х: 400. Невірний запит – помилка виникає, коли сервер зауважує синтаксичну помилку в запиті від клієнта. Вона буде виникати до тих пір, поки з боку клієнта не будуть зроблені відповідні зміни. Необхідно дотримувати всі правила передачі даних для використовуваного протоколу. 401. Відсутній авторизація – ця помилка означає, що HTTP-сервер вимагає автентифікації. При цьому саме з боку сервера приходять всі умови для виконання аутентифікації. Причиною виникнення помилки може бути неправильний введене ім'я або пароль для авторизації. 402. Необхідно внести плату – код не використовується, але зарезервований в протоколі на майбутнє. Спочатку замислювався як інтерфейс для внесення плати для отримання доступу до конкретного ресурсу. Так як нічого не вийшло, код 402 взяли на озброєння Apple і Google, час від часу застосовують його в своїх веб-сервісах.
403. Доступ закритий – помилка виникає, коли сервер правильно функціонує, але у користувача, запитувача доступ до нього, недостатньо прав для цього. Часто супроводжується вікном авторизації. 404. Not Found (ресурс/файл не знайдений) – найбільш часто зустрічається помилка в інтернеті. Як правило, виникає із-за помилок при наборі веб-адреси. Часте згадування і поява в Мережі перетворило цей код на популярну в інтернеті жарт. 405. Метод заборонений – помилка даних HTTP, які потрібно ввести за допомогою POST або з використанням методу PUT. Іншими словами, помилка виникає при використанні методу GET тоді, коли він відсутній або не підтримується сервером для обробки певних даних. 406. Запит не може бути прийнятий – цей код повертається сервером, коли найпопулярніший контент непридатний до заголовків типу Accept. Найчастіше виникає, коли запитуваний ресурс не відповідає формату, який може бути розпізнаний клієнтом. 407. Потрібна авторизація на стороні проксі-сервера – разом з кодом сервер повертає спеціальне поле для авторизації на проксі-сервері. 408. Час на запит вийшло – виникає коли сервер припиняє чекати на подальші запити з боку клієнта. Повторити запит можна в будь-який час, навіть після того, як час вичерпано. 409. Конфлікт – в яких ситуаціях виникає ця помилка HTTP? Завантаження файлу на сервер, де вже збережений ідентичний файл або документ більш нової версії. Система контролю версій файлів, що зберігаються на сервері, не дозволяє замінити файл більш ранньою версією, з-за чого виникає конфлікт під цим кодом.
Помилки клієнта під кодом 41х
410. Ресурс видалений – помилка з'являється у випадку, якщо запитуваний ресурс розташовувався за вказаною адресою, але був вилучений і більше недоступний. 412. Попередні умови не виконані – цей код відображається у тому випадку, якщо умовні поля заголовка не виконуються (зовсім). 413. Розмір запиту перевищує допустиму норму – помилка з'являється, коли тіло посланого клієнтом запиту має занадто великий розмір, і сервер не може його обробити. 414. Занадто довгий адреса – якщо сервер повертає цей код, це означає, URL, зазначений у запиті, занадто довгий і не може бути оброблений. Також помилка виникає, коли клієнт передає дані через GET замість POST. 415. Непідтримуваний формат файлу – помилка виникає, коли сервер відмовляється працювати з певним форматом даних (причина може бути будь-який). 417. Збій очікування – заголовок з боку клієнта не задовольняє вимогам поля EXPECT. 418 i'm a teapot – вперше з'явився в 1998 році код, який став першоквітневим жартом і ніколи не був задіяний всерйоз.
Помилки клієнта під кодом 42х
422. Елемент не може бути оброблений – теоретично сервер може обробити запит, надісланий клієнтом; файл, що знаходиться в тілі запиту, також підтримується (це може бути таблиця і будь-який інший медиафайл), але з якихось причин виникла логічна помилка, що обмежує діяльність сервера. 423. Доступ закритий – використовуваний метод заблокований на стороні сервера. Необхідно використовувати інший метод. 424. Помилка залежності – цей код буде відображено у тому випадку, якщо операція, від успішності якої залежить виконання поточної команди, була з тих чи інших причин перервана. 425. Неправильний порядок елементів – код відображається у тому випадку, якщо при запиті декількох елементів з сервера їх порядок (серверна) не був дотриманий. 426. Необхідно оновлення – код, що сповіщає про необхідність провести оновлення протоколу. Поля для оновлення повинні бути правильно оформлені на стороні сервера. 428. Необхідно завершення залежною операції – з допомогою цього коду сервер сповіщає клієнта про те, що необхідно в запиті задіяти заголовки-умови. 429. Занадто велика кількість запитів – помилка виникає в тому випадку, якщо клієнт посилає на сервер занадто багато запитів, що може бути наслідком DDoS-атаки, тому блокується сервером.
Інші коди помилок клієнта
431. Перевищення довжини заголовка – при перевищенні довжини заголовка сервер може у відповідь надіслати цей код, але найчастіше він просто скидає з'єднання. 434. Адреса недоступний – помилка сигналізує про недоступність запитуваної адреси. 449. Повторити – код повертається у тому випадку, якщо серверу для обробки запиту потрібна додаткова інформація. 451. Заблокований з юридичних причин – сервер може бути заблокований у тому випадку, якщо органи державної влади надіслали запит на блокування з різних юридичних причин. При роботі поза веб-браузера можуть виникати й інші помилки, наприклад критична помилка оновлення HTTP-сервера, але її причини потрібно з'ясовувати у власників програми або програми, в якому виникла проблема.
Помилки HTTP сервера
Такі коди виникають, коли инсценируемые операції завершуються невдачею з вини сервера. Подібні помилки відображаються за допомогою кодів 5хх і коротким поясненням помилки.
Помилки сервера під кодом 50х
500 Internal Server Error – помилка HTTP-сервера, не поддающая ідентифікації. Цим кодом позначається будь-яка помилка, для якої не існує окремо визначеного кодового значення. 501. Not Implemented (метод не підтримується) – цей код виводиться сервером, коли використовується метод їм не підтримується. Проблема виникає при роботі з серверами, які не налаштовані на правильну роботу зі стандартними командами HTTP. 502. Bad Gateway (помилка шлюзу) – проблема виникає, коли сервер, який виступає в ролі шлюзу, отримує помилковий відповідь з боку «головного сервера. 503. Service Unavailable (сервіс недоступний) – даний код найчастіше з'являється, коли на сервері йдуть технічні роботи або він перезавантажується. 504. Gateway Timeout (час проходження через шлюз вийшло) – помилка виникає, коли сервер, який працює в якості шлюзу, не встигає отримати відповідь від головного сервера. 505. HTTP Version Not Supported (використовувана версія протоколу не підтримується) – вказаний сервер не працює з тією версією протоколу, яка вказана в запиті з боку клієнта. 507. Insufficiente Storage (брак простору) – проблема виникає при нестачі цифрового простору для обробки запиту. Найчастіше проблема має тимчасовий характер.
Помилки сервера під кодом 51х
510. Not Extended (відсутня розширення) – помилка з'являється у випадку, якщо на сервері немає розширення, яке було запитане клієнтом. 511. Network Authentication Required (необхідна авторизація) – подібний відповідь надсилається не від самого сервера, а від посередника, в ролі якого виступає провайдер платного точки Wi-Fi.
Інформаційні коди
100. Continue (продовження) – цей код сповіщає клієнта про те, що його початкові дії задовольняють вимоги сервера, і він може продовжувати посилати команди. 101. Switching Protocols (зміна протоколу) – інтерактивний код, що пропонує замінити використовуваний протокол більш підходящим. 102. Processing (в процесі обробки) – код, що сповіщає про те, що запит прийнятий, але на його обробку потрібно значний час.
Коди перенаправлення
300. Multiple Choices (вибір) – виникає, якщо за обраною посиланням можна пройти відразу на кілька ресурсів, розташованих на одному сервері. Разом з кодом надається вибір між різними варіантами. Причому він може бути зроблений як користувачем, так і клієнтом, в залежності від налаштувань сервера. 301. Moved Permanently (ресурс переміщений) – код повертається, коли запитуваний ресурс або файл назавжди переміщений і знаходиться за іншою адресою. 302. Found (ресурс знайдений) – код повертається, коли запитуваний ресурс або файл був тимчасово переміщений і може бути знайдений за іншою адресою. 303. See Other (пошук за іншими адресами) – даний код повертається сервером разом з альтернативним значенням поля Location, щоб користувач з боку клієнта міг отримати доступ до запитуваного ресурсу, використовуючи метод GET. 304. Not Modified (файл не змінювався) – помилка виникає, якщо клієнт запросив певний файл, вказавши специфічні атрибути часу модифікації, але сервер не виявив будь-яких змін з моменту його завантаження. 305. Use Proxy (необхідно використовувати проксі-сервер) – цей код виводиться сервером, коли для того, щоб отримати доступ до нього, потрібно використовувати проксі-сервер. Адреса останнього вказується в полі Location. Код можуть використовувати тільки базові сервери (не проксі). 307. Temporary Redirect (тимчасове перенаправлення) – код виникає, коли запитуваний файл або ресурс стає доступний за іншою адресою. Часто відбувається автоматичне перенаправлення.