Сторінки помилок регулярно зустрічаються як вебмайстрам, так і звичайним інтернет-користувачам. Вони можуть сигналізувати про проблеми на сайті, інформувати про перенаправлення або підтверджувати успішне виконання дії. Характер повідомлення визначається конкретним кодом. Сьогодні ми розповімо про найпоширеніші типи помилок http і що потрібно для того, щоб дізнатися код відповіді сервера.
Коди стану HTTP — що це
Перш ніж пояснювати, що означає код помилки, зупинимося на тому, що є HTTP status code, тобто код стану. Простими словами, це числовий код, який сервер відправляє браузеру у відповідь на запит, повідомляючи, як він пройшов: успішно, з помилкою або вимагає додаткових дій.
Уявіть, що ви замовляєте піцу телефоном:
- 200 OK: «Ваше замовлення прийняте, чекайте на доставку» (успіх).
- 404 Not Found: «Вибачте, такої піци немає в меню» (помилка).
- 301 Moved Permanently: «Ми переїхали, тепер замовлення за іншим номером» (перенаправлення).
- 500 Internal Server Error: «У нас зламалася піч, замовлення тимчасово не приймаємо» (помилка сервера).
Тобто завдяки HTTP status code ви можете швидко зрозуміти, що сталось із запитом, не вдаючись до подробиць.
Як дізнатися коди відповіді сервера через браузер
Переглянути відповідь сервера може знадобитися для перевірки коректності налаштувань перенаправлень. Або для виявлення проблем із завантаженням певних елементів сторінки, коли основний вміст завантажується, але деякі функції недоступні.
Отже, як дізнатися код відповіді сторінки? Для цього виконайте такі кроки:
- Відкрийте сторінку, де виникає проблема.
- Викличте інструменти розробника у браузері. Для цього використовуйте клавіші Ctrl + Shift + I (для Windows/Linux) або Cmd ⌘ + Opt ⌥ + I (для macOS).
- Перейдіть на вкладку «Мережа».
- Оновіть сторінку.
Після цього ви побачите список усіх HTTP-запитів та відповідних http codes сервера.
Класифікація кодів стану HTTP
Існує 5 основних типів кодів, кожен з яких виконує певну функцію в системі комунікації між клієнтом та сервером:
- 1xx — інформаційні статус коди. Вони повідомляють про те, що запит прийнято та обробка триває. Наприклад, код 100 Continue говорить клієнту, що можна продовжувати надсилання запиту.
- 2xx — коди успішного виконання. Вказують на те, що запит клієнта успішно прийнято та опрацьовано. Найпоширеніша відповідь сервера — 200 OK, що означає успішне виконання запиту.
- 3xx — коди перенаправлення. Інформують клієнта про необхідність виконання додаткових дій для завершення запиту. Часто використовуються при зміні URL ресурсу, наприклад, 301 Moved Permanently.
- 4xx — коди помилок клієнта. Сигналізують про проблеми з боку клієнта, наприклад, відсутність прав доступу або запит ресурсу, що не існує. Типовий приклад — 404 Not Found.
- 5xx — коди помилок http сервера. Вони вказують на проблеми, що виникли на сервері під час обробки запиту. Наприклад, 500 Internal Server Error повідомляє, що виникла непередбачена помилка сервера.
Докладніше про різні коди відповіді сервера ми розповімо далі.
Вплив HTTP кодів на СЕО
HTTP коди стану можуть суттєво впливати на позиції сайту у пошуковій видачі. Google використовує коди відповідей http для оцінки якості та доступності вебресурсів, що безпосередньо відбивається на їх ранжуванні.
Коди 2xx, особливо 200 OK, показують, що сторінка успішно завантажується та доступна для індексації. Завдяки цьому пошукові роботи можуть безперешкодно сканувати та індексувати контент. Але на позиціях сторінки код http 2хх не відображаються.
А ось коди 3xx, пов'язані з перенаправленнями, надають більший вплив на позиції. Правильне використання 301 редагування (постійне перенаправлення) допомагає зберегти «вагу» сторінки при зміні URL, передаючи авторитет старої сторінки новій. Це особливо важливо при реструктуризації сайту або зміні доменного імені. Але треба враховувати, що надмірні чи неправильно налаштовані редиректи можуть негативно впливати на швидкість завантаження та індексацію сайту, і в результаті — на позиції у пошуковій видачі.
Серйозно нашкодити СЕО-просуванню можуть коди помилок 4xx і 5xx, особливо якщо зустрічаються часто. Наприклад, велика кількість сторінок з кодом 404 (Not Found) може вказувати на проблеми з внутрішньою структурою сайту і негативно позначитися на досвіді користувача. Аналогічно часті помилки 500 (Internal Server Error) можуть свідчити про нестабільність сервера, що негативно впливає на ранжування.
Тимчасові http помилки (наприклад, короткострокові 503 Service Unavailable) зазвичай не призводять до просідання позицій, якщо швидко усуваються. Однак проблеми, що повторюються, можуть негативно вплинути на СЕО.
Тому для ефективного просування ми радимо регулярно моніторити код статусу http, оперативно виправляти помилки та правильно налаштовувати редиректи. Для перевірки статусу індексації сторінки можна скористатися Google Search Console. Процедура перевірки виглядає так:
- Зайдіть до Google Search Console.
- У пошуковому рядку введіть URL сторінки, яка вас цікавить.
- Натисніть клавішу Enter для запуску перевірки.
Після цього сервіс надасть інформацію про поточний статус сторінки. Якщо виявиться, що вона більше не індексується, ви можете почати повторну індексацію, натиснувши на опцію «Запросити індексування».
Google Search Console також пропонує інструменти для виявлення помилок на сайті. Цю інформацію ви знайдете у розділі «Покриття», доступному за допомогою лівого меню на головній сторінці панелі.
Опис кодів стану HTTP
Існує понад 40 офіційно затверджених кодів стану HTTP та ще стільки ж неофіційних. Ми розповімо про ті, що зустрічаються найчастіше.
1хх Informational
Це інформаційні відповіді сервера http, які призначені для передачі проміжної інформації в процесі обробки запиту. Вони повідомляють клієнту про те, що його запит отримано та обробляється сервером, але остаточна відповідь ще не готова. Розглянемо найпоширеніші з них.
100 Continue інформує клієнта про те, що сервер отримав початкову частину запиту та готовий прийняти його повністю. Це корисно при надсиланні великих обсягів даних: клієнт може переконатися, що сервер готовий приймати запит, перш ніж надсилати всю інформацію.
101 Switching Protocols — код стану http перекладається як «Перемкнути протокол». Він використовується, коли клієнт вимагає зміни протоколу зв'язку. Наприклад, при переході з HTTP на WebSocket для встановлення постійного з'єднання.
103 Early Hints перекладається як «Попередні дані». Він дозволяє серверу відправити частину заголовків відповіді до повної відповіді. Це може прискорити завантаження ресурсів, дозволяючи браузеру розпочати попереднє завантаження або обробку даних.
2xx Success
Це успішні статуси відповіді сервера, які вказують на те, що запит клієнта було прийнято та опрацьовано. Вони підтверджують, що операція виконана без помилок, і користувач може продовжувати свою роботу.
200 OK — найпоширеніший успішний код стану, що означає, що запит виконано та сервер відправляє запитані дані.
201 Created означає, що запит був успішним і на сервері створено новий ресурс. Цей код зазвичай повертається після виконання запитів, таких як POST або PUT, коли сервер додає щось нове, наприклад, файл або запис. У відповіді також зазначається, де знаходиться створений ресурс.
202 Accepted повідомляє, що запит прийнято в обробку, але ще не завершено. Це корисно для асинхронних операцій, коли результат може бути отриманий негайно.
203 Non-Authoritative Information інформує про успішність виконання запиту, але дані у відповіді можуть бути змінені. Це відбувається, коли проміжний сервер, наприклад, проксі, змінює або кешує дані перед їх надсиланням користувачеві. Тому інформація може трохи відрізнятись від оригіналу.
204 No Content використовується, коли сервер успішно обробив запит, але немає даних для надсилання у відповіді. Часто застосовується в API для підтвердження успішних операцій без повернення даних.
205 Reset Content інструктує клієнта скинути дані на сторінці. Тобто потрібно оновити форму або налаштування на ній, щоб повернути їх у вихідний стан.
206 Partial Content застосовується при частковій передачі вмісту, наприклад, при відновленні перерваних завантажень або потоковій передачі медіа.
207 Multi-Status використовується, коли один запит стосується кількох елементів, і для кожного з них може бути свій результат — успішний або з помилками.
3xx Redirection
Це коди перенаправлень. Вони використовуються для інформування про те, що ресурс, що запитується, доступний за іншою адресою або вимагає додаткових дій. Ці коди доступу допомагають оптимізувати навігацію по сайту та забезпечувати правильну обробку запитів при зміні розташування ресурсів.
300 Multiple Choices пропонує клієнту вибрати один із кількох варіантів. Наприклад, якщо умовам запиту відповідають відразу кілька типів файлів на сервері.
HTTP 301 Moved Permanently особливо важливий для SEO та оновлення посилань, оскільки вказує на переміщення ресурсу. Тобто сайт тепер доступний за іншою адресою.
302 Found (раніше Moved Temporarily) повідомляє про тимчасове переміщення ресурсу. І вимагає при наступних запитах вводити стару URL-адресу.
HTTP 303 See Other спрямовує клієнта до іншого URL з використанням методу запиту GET.
304 Not Modified дозволяє використовувати кешовану версію ресурсу, заощаджуючи трафік.
HTTP 307 Temporary Redirect аналогічний до 302, але вимагає збереження вихідного методу запиту.
308 Permanent Redirect схожий на 301, але також потребує збереження методу запиту.
305 Use Proxy та 306 Switch Proxy більше не використовуються через проблеми з безпекою.
4xx Client Error
Це коди помилок клієнта, які використовуються для вказівки на проблеми, що виникли через дії клієнта або помилки у запиті. Ці статуси відповіді сервера допомагають швидко ідентифікувати та виправити проблеми на стороні клієнта. Найбільш поширені такі коди:
400 Bad Request вказує на некоректність запиту часто через синтаксичні помилки.
401 Unauthorized сигналізує про необхідність авторизації чи аутентифікації. Тобто користувачеві необхідно надати правильні облікові дані для доступу до ресурсу.
Помилка HTTP 403 Forbidden означає, що сервер розпізнав запит, але відмовляє у його виконанні, оскільки клієнт не має достатніх прав доступу.
404 Not Found — найвідоміша відповідь сторінки, що вказує на відсутність запитуваного ресурсу на сервері. Вона допомагає користувачам та пошуковим системам зрозуміти, що сторінка чи ресурс не існує.
HTTP 405 Method Not Allowed інформує про те, що сервер отримав запит, але метод, який був використаний (наприклад, GET, POST тощо), не дозволений для цього ресурсу. Тобто ви звернулися до правильної сторінки, але з неправильним способом запиту.
406 Not Acceptable виникає, коли сервер не може повернути дані у форматі, який відповідає вашому запиту. Тобто сервер знайшов ресурс, але не може повернути його у тому вигляді, який ви запросили.
HTTP 408 Request Timeout вказує на перевищення часу очікування запиту. Простіше кажучи, він зайняв дуже багато часу, і сервер «здався».
409 Conflict сигналізує про конфлікт під час виконання запиту, наприклад, одночасної зміни ресурсу кількома клієнтами. Це необхідно для запобігання втраті даних та забезпечення цілісності інформації.
413 Payload Too Large виникає, коли розмір запиту перевищує допустимі ліміти сервера. Це допомагає запобігти перевантаженню сервера та захистити від потенційних атак.
414 URI Too Long означає, що адреса (URL), яку ви надіслали у запиті, надто довга, і сервер не може її обробити.
415 Unsupported Media Type виникає, коли формат даних у запиті не підтримується сервером.
5xx Server Error
Ці коди вказують на проблеми на стороні сервера під час обробки запиту. Вебмайстрам вони допомагають діагностувати та усувати наявні проблеми. А клієнтів інформують про неможливість виконати запит через причини, не пов'язані з його діями.
500 Internal Server Error — загальна помилка сервера, яка потребує діагностики.
501 Not Implemented означає, що сервер не підтримує запитаний функціонал.
502 Bad Gateway виникає у разі проблеми взаємодії між серверами.
Код відповіді сервера HTTP 503 Service Unavailable вказує на те, що він тимчасово недоступний.
HTTP 504 Gateway Timeout сигналізує про перевищення часу очікування відповіді головного сервера.
505 HTTP Version Not Supported виникає у разі несумісності версій HTTP.
HTTP 507 Insufficient Storage вказує на брак місця на сервері.
508 Loop Detected запобігає нескінченним циклам перенаправлень.
HTTP 509 Bandwidth Limit Exceeded (нестандартний код) повідомляє про перевищення ліміту трафіку на хостингу.
Підіб'ємо підсумки
Коди стану HTTP відіграють ключову роль у сучасній веброзробці та обслуговуванні сайтів. Їхнє правильне застосування істотно впливає на різні аспекти функціонування вебресурсів. По-перше, вони є первинним індикатором при діагностиці проблем, дозволяючи швидко локалізувати та усунути неполадки. Це особливо важливо у складних системах, де швидке виявлення джерела помилки може заощадити години роботи та запобігти потенційним збиткам.
По-друге, через створення зрозумілих повідомлень про помилки можна поліпшити досвід користувача, оскільки клієнти зможуть швидко зрозуміти, що пішло не так. По-третє, правильне застосування кодів стану HTTP — це важливий аспект безпеки. Деякі коди, такі як 401 або 403, допомагають захистити ресурси від несанкціонованого доступу. Правильна реалізація цих кодів може значно посилити захист вебпрограм від потенційних загроз.
Залишіть ваші контактні дані.
Будемо раді обговорити ваш проект!