HTTP Коди відповіді сервера: Повний посібник для веб-розробника
Під час роботи з сайтами ви напевно стикалися з HTTP кодами відповіді сервера. Ці коди повідомляють браузерам і пошуковим роботам про статус запиту і результату його обробки сервером. Кожен код має свою специфічну значущість і може вказувати на успішне виконання запиту, перенаправлення, помилку клієнта або помилку сервера.
У цій статті ми розглянемо різні типи HTTP кодів, дізнаємося, як вони впливають на роботу сайтів і SEO, а також навчимося визначати коди на сторінці сайту.
Що таке HTTP код відповіді сервера
HTTP (Hypertext Transfer Protocol) – це протокол, який використовується для обміну даними між браузерами та серверами. Коли ви робите запит до сайту, сервер надсилає відповідь із певним HTTP кодом, який повідомляє про статус виконання вашого запиту.
HTTP коди діляться на п’ять основних груп
1хх – Інформаційний (Informational): ці коди інформують клієнтський браузер про прогрес виконання запиту.
2хх – Успішно (Success): ці коди вказують на успішне виконання запиту й успішне опрацювання сервером.
3хх – Перенаправлення (Redirection): ці коди інформують браузер про необхідність виконати додаткові дії для завершення запиту.
4хх – Помилка клієнта (Client Error): ці коди вказують на помилки, пов’язані із запитом, зробленим клієнтським браузером.
5хх – Помилка сервера (Server Error): ці коди вказують на помилки, що сталися на сервері під час обробки запиту.
1хх Informational (Інформаційні)
Коди 1хх рідко зустрічаються у звичайних запитах, найчастіше їх використовують, щоб повідомити клієнтському браузеру про те, що сервер прийняв запит і продовжує обробку.
100 Continue (Продовжити)
Код повідомляє клієнтському браузеру, що сервер успішно отримав першу частину запиту і готовий прийняти частину, що залишилася. Це особливо важливо під час надсилання великих обсягів даних, коли сервер має переконатися, що клієнт може продовжувати надсилання.
101 Switching Protocols (Перемикнути протокол)
Коли клієнт робить запит на сервер, що містить заголовок “Upgrade”, і сервер підтверджує можливість зміни протоколу, то у відповідь на запит буде повернуто код 101. Це дає змогу серверу та клієнту встановити ефективніший або безпечніший протокол передавання даних.
102 Processing (В обробці)
Код інформує клієнта про те, що сервер продовжує обробляти його запит, але поки не може завершити його. Це може бути корисним, коли запит вимагає тривалого часу на обробку, і сервер хоче уникнути закінчення часу очікування на стороні клієнта.
103 Early Hints (Попередні дані)
Код є експериментальним і рідко використовується. Він надає клієнту деякі заголовки до завершення відповіді сервера. Це може бути корисно, коли клієнту потрібно зробити якісь дії, не чекаючи повної відповіді
2xx Success (Успішно виконані запити)
Коди 2xx вказують на успішне виконання запиту. Кожен із цих кодів має свою специфічну значущість і допомагає забезпечити ефективну взаємодію між клієнтом і сервером, та коли сервер надсилає коди цієї групи, це означає, що запит було успішно опрацьовано, і немає потреби в додаткових діях з боку браузера.
200 OK (Успішно)
Цей код повідомляє клієнтському браузеру, що його запит успішно виконано, і сервер повертає запитані дані. Це найпоширеніший і найочікуваніший код при успішному виконанні запиту.
201 Created (Створено)
Коли клієнт надсилає запит на створення ресурсу (наприклад, надсилання форми з даними для створення нового об’єкта на сервері), і сервер успішно створює цей ресурс, повертається код 201. Цей код інформує клієнта про те, що створення пройшло успішно.
202 Accepted (Прийнято)
Код вказує на те, що сервер прийняв запит клієнта, але ще не завершив його обробку. Це може бути корисно в ситуаціях, коли запит вимагає тривалого опрацювання, і сервер хоче повідомити клієнту про те, що запит отримано і буде опрацьовано.
203 Non-Authoritative Information (Неофіційна інформація)
Код вказує на те, що відповідь сервера містить неофіційну інформацію. Це може бути корисним, коли відповідь не є джерелом правди, але містить інформацію з іншого джерела, яке не є офіційним.
204 No Content (Немає вмісту)
Коли сервер успішно обробив запит, але у відповіді не міститься контенту, повертається код 204. Це може використовуватися, коли клієнтський запит вимагає тільки підтвердження про успішне виконання, але не вимагає передачі даних.
205 Reset Content (Скинути вміст)
Код повідомляє клієнту, що він повинен скинути відображуваний контент на сторінці. Це може бути корисно, коли клієнт надсилає запит на зміну стану сторінки, і сервер зазначає, що сторінка має бути скинута.
206 Partial Content (Частковий вміст)
Коли клієнт робить запит на отримання частини даних (наприклад, тільки частина файлу), і сервер успішно повертає цю частину даних, повертається код 206. Це може бути корисно, коли клієнт хоче завантажити тільки частину даних, а не всю інформацію.
207 Multi-Status (Мульти-статус)
Цей код є експериментальним і рідко використовується. Він надає інформацію про стан кількох ресурсів у відповіді сервера. Це може бути корисно для клієнтів, які обробляють кілька запитів одночасно і хочуть отримати інформацію про стан кожного ресурсу.
3xx Redirection (Коди перенаправлень)
Коди 3xx вказують на перенаправлення і допомагають забезпечити більш ефективне управління переходами між різними ресурсами на веб-сайті. Вони також відіграють важливу роль у SEO, даючи змогу зберігати рейтинг і структуру сайту під час зміни URL-ів або переміщення контенту на інші сторінки.
300 Multiple Choices (Множинний вибір)
Коли сервер обробляє запит і має кілька варіантів відповіді, код 300 повертається, щоб запропонувати клієнту вибрати один із цих варіантів. Це може бути корисним, наприклад, коли запитаний ресурс має кілька доступних форматів або розташовується на різних адресах.
301 Moved Permanently (Переміщено назавжди)
Код повідомляє клієнту, що запитаний ресурс було переміщено на нову постійну адресу (URL). При цьому пошукові роботи і браузери будуть перенаправлятися на нову адресу замість старої. Це дає змогу зберегти SEO-рейтинг і кількість посилань сайту під час перенесення контенту на новий URL.
302 Found (Знайдено)
Коли сервер повертає код 302, він вказує на тимчасове перенаправлення запиту на інший ресурс. При цьому пошукові роботи і браузери зберігатимуть оригінальний URL як основний. Код 302 зазвичай використовується для тимчасового переміщення контенту на іншу сторінку.
303 See Other (Дивись в іншому місці)
Код використовується, коли сервер хоче перенаправити клієнта на інший ресурс після успішного виконання POST-запиту. Це може бути корисно для запобігання повторного надсилання даних під час оновлення сторінки після успішного завершення дії.
304 Not Modified (Не змінено)
Коли клієнт робить запит на отримання даних, і дані на сервері залишилися незмінними з моменту останнього запиту, сервер повертає код 304. Це говорить браузеру використовувати кешовані дані, що може заощадити трафік і прискорити завантаження сторінки.
305 Use Proxy (Використовуй проксі)
Цей код уже не використовується і вважається застарілим. Раніше його використовували для вказівки клієнтам використовувати проксі-сервер для доступу до запитаного ресурсу, але наразі цей функціонал рекомендується виконувати з використанням заголовка “Proxy-Authorization”.
306 Switch Proxy (Зарезервовано)
Код вважається застарілим і більше не використовується.
307 Temporary Redirect (Тимчасове перенаправлення)
Код аналогічний коду 302, але він вимагає, щоб клієнт зберігав метод запиту під час перенаправлення. Тобто, якщо клієнт надсилав POST-запит, то під час перенаправлення він також має використовувати POST-запит.
308 Permanent Redirect (Постійний редирект)
Код аналогічний коду 301, але, як і код 307, вимагає збереження методу запиту під час перенаправлення. Це дає змогу зберегти SEO-рейтинг і кількість посилань на сайт у разі постійного переміщення контенту на новий URL.
4xx Client Error (Коди помилок клієнта)
Коди 4xx вказують на помилки, пов’язані із запитом, зробленим клієнтським браузером. Це означає, що сервер не може виконати запит через помилку в запиті, відсутній або неправильний URL тощо.
400 Bad Request (Невірний запит)
Код повертається, коли сервер не може обробити запит через синтаксичну помилку або невірний формат запиту, який не може бути зрозумілий сервером.
401 Unauthorized (Неавторизовано)
Код повідомляє клієнту, що для доступу до запитаного ресурсу потрібна аутентифікація (авторизація). Це означає, що клієнт має надати правильні облікові дані, щоб отримати доступ до ресурсу.
402 Payment Required (Необхідна оплата)
Код передбачав використання в майбутніх версіях протоколу HTTP, але на даний момент він не використовується і вважається зарезервованим.
403 Forbidden (Заборонено)
Код вказує на те, що сервер зрозумів запит, але відмовляється його виконувати. Це може бути пов’язано з відсутністю прав доступу або обмеженнями на доступ до запитаного ресурсу.
404 Not Found (Не знайдено)
Коли сервер не може знайти запитаний ресурс або сторінку, повертається код 404. Це може бути пов’язано зі зміною URL, видаленням сторінки або некоректним посиланням на ресурс.
405 Method Not Allowed (Метод заборонено)
Код повідомляє, що метод запиту, зазначений у запиті, не дозволений для запитаного ресурсу. Наприклад, спроба виконати POST-запит до ресурсу, який дозволяє тільки GET-запити, викличе код 405.
406 Not Acceptable (Неприйнятно)
Коли сервер не може надати дані у форматі, який вказав клієнт у заголовку “Accept”, повертається код 406. Це вказує на те, що сервер не може задовольнити вимоги клієнта щодо надання даних у певному форматі.
407 Proxy Authentication Required
Код аналогічний коду 401, але вказує на те, що клієнт повинен надати облікові дані для проксі-сервера, щоб отримати доступ до запитаного ресурсу через проксі.
408 Request Timeout (Закінчився час очікування відповіді на запит)
Коли клієнтський браузер або клієнт не отримує відповідь від сервера протягом певного часу (час очікування минув), повертається код 408. Це може статися, якщо сервер зайнятий або відповідає занадто довго.
409 Conflict (Конфлікт)
Код повертається, коли запит не може бути виконаний через конфлікт із поточним станом ресурсу на сервері. Наприклад, якщо два клієнти намагаються одночасно змінити один і той самий ресурс, може виникнути конфлікт.
410 Gone (Видалено)
Коли сервер видаляє постійно або тимчасово ресурс або сторінку, яку запитував клієнт, повертається код 410. Це повідомляє клієнту про те, що ресурс більше не доступний і його не варто запитувати знову.
411 Length Required (Потрібне значення заголовка Content-Length)
Коли клієнт надсилає запит, що вимагає вказівки довжини тіла запиту (наприклад, під час передавання даних методом POST), але не надає заголовок “Content-Length”, сервер повертає код 411. Це повідомляє клієнту про необхідність вказати довжину тіла запиту.
412 Precondition Failed (Нездійсненні умови запиту)
Код повертається, коли умова, зазначена в запиті за допомогою заголовків “If-Match” або “If-None-Match”, не виконується на сервері. Наприклад, це може статися, коли клієнт хоче оновити ресурс, але умова перевірки його актуальності не збігається з поточним станом ресурсу на сервері.
413 Payload Too Large (Занадто велике тіло запиту)
Коли розмір тіла запиту перевищує максимально допустимий розмір на сервері, повертається код 413. Це може статися, коли клієнт надсилає занадто великий обсяг даних або файлів на сервер.
414 URI Too Long (Занадто довгий URI)
Коли URI (Uniform Resource Identifier) запиту перевищує максимально допустиму довжину на сервері, повертається код 414. Це може статися, наприклад, коли клієнт передає занадто довгі параметри запиту або глибоку ієрархію в URL.
415 Unsupported Media Type (Непідтримуваний медіа формат даних)
Коли сервер не може обробити запит через непідтримуваний формат даних, зазначений у заголовку “Content-Type”, повертається код 415. Наприклад, якщо клієнт надсилає дані у форматі, який сервер не може обробити або не підтримує.
416 Range Not Satisfiable (Діапазон не може бути виконаний)
Код 416 повертається, коли клієнт запитує певний діапазон даних (наприклад, частину файлу) за допомогою заголовка “Range”, але сервер не може задовольнити цей діапазон. Наприклад, якщо клієнт запросив частину файлу, яка знаходиться за межами розміру файлу.
417 Expectation Failed (Неприпустиме значення поля Expect)
Код 417 повертається, коли сервер не може виконати очікування, зазначені клієнтом у заголовку “Expect”. Це може статися, коли клієнт очікує певної поведінки від сервера, але сервер не може або не хоче її надати.
422 Unprocessable Entity (Необроблюваний запит)
Код вказує на те, що сервер розуміє запит, але не може обробити його через помилки валідації. Це може бути корисним, коли клієнт надсилає дані, які не відповідають необхідному формату або умовам.
423 Locked (Заблоковано)
Код повертається, коли сервер блокує доступ до ресурсу, оскільки він заблокований або використовується іншим процесом. Це може статися, наприклад, коли клієнт намагається отримати доступ до ресурсу, який перебуває в процесі оновлення або редагування.
424 Failed Dependency (Невиконана залежність)
Код вказує на те, що запит залежить від іншого запиту, який не був виконаний або завершився з помилкою. Це може бути корисним, коли один запит залежить від результату іншого запиту і сервер не може виконати перший запит без успішного завершення другого.
426 Upgrade Required (Необхідно оновити протокол)
Код повертається, коли сервер вимагає використовувати новішу версію протоколу HTTP для виконання запиту. Це може бути корисним, коли сервер підтримує тільки новішу версію протоколу і вимагає, щоб клієнт оновив свою версію для виконання запиту.
499 Client Closed Request (Клієнт відкликав запит)
Код повертається, коли клієнтський браузер або клієнт передчасно закриває з’єднання до завершення запиту. Це може статися, наприклад, коли користувач закриває вкладку або браузер під час очікування відповіді від сервера.
5xx Server Error (коди помилок сервера)
Коди 5xx вказують на помилки з боку сервера та інформують про те, що сервер не може виконати запит з різних причин. Ці коди зазвичай пов’язані з технічними проблемами і потребують втручання з боку адміністраторів сервера для їх усунення.
500 Internal Server Error (Внутрішня помилка сервера)
Коли на сервері виникає внутрішня помилка, яка не дає змоги йому виконати запит, повертається код 500. Це може бути спричинено різними причинами, такими як помилка в коді сервера, проблеми з базою даних або інші технічні проблеми.
501 Not Implemented (Не реалізовано)
Коли сервер не підтримує або не реалізував метод запиту, вказаний клієнтом у запиті, повертається код 501. Це може статися, коли клієнт надсилає запит із використанням методу, який сервер не розуміє або не підтримує.
502 Bad Gateway (Невірний шлюз))
Код вказує на те, що сервер, який є проміжним шлюзом або проксі-сервером, отримав некоректну відповідь від зовнішнього сервера. Це може статися, коли сервер не може отримати відповідь від іншого сервера або отримує некоректні дані.
503 Service Unavailable (Сервіс недоступний)
Коли сервер тимчасово недоступний через перевантаження, обслуговування або інші тимчасові проблеми, повертається код 503. Це повідомляє клієнту про те, що сервер не може обробити запит на даний момент, і клієнту рекомендується повторити запит пізніше.
504 Gateway Timeout (Шлюз не відповідає)
Код повертається, коли проксі-сервер або шлюз, який використовується для виконання запиту, не отримує відповідь від зовнішнього сервера протягом певного часу (час очікування шлюзу закінчився). Це може статися, коли зовнішній сервер не відповідає або відповідає занадто довго.
505 Version Not Supported (Версія не підтримується)
Коли сервер не підтримує версію протоколу HTTP, зазначену клієнтом у запиті, повертається код 505. Це може статися, коли клієнт надсилає запит із використанням новішої версії протоколу, яка не підтримується сервером.
507 Insufficient Storage (Недостатньо місця)
Код вказує на те, що сервер не може виконати запит через недостатнє місце для зберігання даних на сервері. Це може статися, коли сервер досяг межі за місцем для зберігання або допустимого ліміту на диску.
508 Loop Detected (Виявлено нескінченне перенаправлення)
Код повертається, коли сервер виявляє нескінченне перенаправлення під час обробки запиту. Це може статися, коли сервер отримує послідовні запити на переспрямування на один і той самий ресурс, створюючи замкнутий цикл.
509 Bandwidth Limit Exceeded (Вичерпано пропускну здатність каналу)
Коли сервер досягає межі пропускної здатності каналу або мережевого трафіку, повертається код 509. Це вказує на те, що сервер не може обробити запит через обмеження на доступний трафік.
Як подивитися HTTP код на сторінці сайту
Щоб перевірити HTTP код відповіді на сторінці сайту, варто скористатися інструментами розробника браузера. У більшості сучасних браузерів, таких як Google Chrome, Mozilla Firefox, Microsoft Edge, є вбудовані інструменти розробника, які дають змогу переглядати мережеву активність і отримувати інформацію про коди відповіді сервера.
У Google Chrome, наприклад, натиснувши на клавішу “F12”, відкриється вікно “Інструментів розробника”, далі потрібно відкрити вкладку “Network” і оновити сторінку та побачити список усіх запитів, виконаних під час завантаження сторінки. Кожен запит супроводжуватиметься відповідним HTTP кодом відповіді сервера.
Як HTTP коди впливають на SEO
HTTP коди відіграють важливу роль у SEO та ранжируванні в пошукових системах. Правильне використання та обробка кодів відповіді сервера допомагає підвищити якість користувацького досвіду, що, своєю чергою, може позитивно позначитися на позиціях сайту в пошуковій видачі.Наведемо деякі приклади того, як HTTP коди можуть впливати на SEO сайту:
Користувацький досвід
Коди відповіді сервера безпосередньо пов’язані з користувацьким досвідом. Коли користувач отримує позитивний код (наприклад, 200 OK) і швидку відповідь від сервера, це створює позитивне враження і підвищує ймовірність, що користувач залишиться на сайті довше. Пошукові системи враховують показники поведінки користувачів на сайті, такі як відмови (Bounce rate) і час перебування на сторінці, під час ранжування результатів пошуку.
Індексація сторінок
Коди “200 OK” і “404 Not Found” особливо важливі для індексації сторінок пошуковими системами. Коли пошукові роботи отримують код “200”, це вказує на успішне отримання сторінки, і вона може бути проіндексована. З іншого боку, код “404” вказує на те, що сторінка не знайдена, і вона не буде індексована. Неправильне опрацювання кодів “404” може призвести до проблем з індексацією та SEO взагалі.
Перенаправлення
Коди “301” і “302”, які використовуються для редиректів, впливають на індексацію і передачу рейтингу сторінок. 301-й редирект вказує пошуковій системі, що сторінку перемістили назавжди на іншу адресу, і рейтинг та індексація мають бути перенаправлені на нову сторінку. У разі 302 редиректу, пошукові системи обробляють його як тимчасове переміщення і можуть зберігати рейтинг та індексацію на оригінальній сторінці. Правильне використання редиректів дає змогу уникнути дублювання контенту і покращити SEO.
Помилка сервера
Коди 5xx (наприклад, “500 Internal Server Error”) вказують на технічні проблеми із сервером, що може призвести до недоступності сайту або його частин. Пошукові системи можуть тимчасово виключити такий сайт з індексу або знизити його ранжування, якщо такі помилки тривають протягом тривалого часу.
Швидкість завантаження сторінки
Коди 2xx (наприклад, 200 OK) і швидкі часи відповіді сервера знижують час завантаження сторінки, що позитивно впливає на SEO. Швидке завантаження сторінки покращує користувацький досвід і може призвести до кращого ранжування в пошукових системах.
Коди помилок клієнта
Коди 4xx, такі як “404 Not Found” і “403 Forbidden”, можуть вказувати на проблеми з контентом сайту або на помилки в URL-адресах. Неправильне використання таких кодів може призвести до втрати відвідувачів і негативно позначитися на SEO.
Повтори змісту
Коди “304 Not Modified” вказують на те, що контент на сторінці не змінився з останнього запиту. Це дає змогу клієнту (наприклад, браузеру) використовувати закешований контент без необхідності повторного завантаження. У таких випадках, пошукові системи можуть заощадити час і ресурси на повторній індексації та обробці контенту.
Загалом, правильне використання HTTP кодів відповіді сервера та усунення можливих проблем із кодами може значно підвищити користувацький досвід і сприяти кращим SEO-показникам сайту. Однак варто пам’ятати, що HTTP коди є лише однією з багатьох складових успішної оптимізації для пошукових систем. Важливо також приділяти увагу якості контенту, структурі сайту, швидкості завантаження та іншим факторам, щоб забезпечити високе ранжування в пошукових системах.
Висновок
HTTP коди відповіді сервера є важливими індикаторами роботи сайтів. Вони повідомляють браузерам і пошуковим роботам про статус виконання запитів і обробки даних на сервері. Розуміння різних типів HTTP кодів допоможе більш ефективно керувати сайтом і підвищити його видимість у пошукових результатах. Також важливо не забувати регулярно перевіряти та виправляти помилки, щоб сайт працював якнайкраще і приваблював більше відвідувачів.
Підпишіться на нашу розсилку
щоб нічого не пропустити