У цій статті — все, що вам потрібно знати про HTTP коди: що це таке і навіщо вони потрібні, які бувають і що означають, як впливають на роботу сайту і як подивитися HTTP коди на сторінці.
Що всередині
- Що таке коди стану HTTP і навіщо вони потрібні
- Як подивитися HTTP коди на сторінці
- Які бувають коди відповідей HTTP
- Як різні HTTP коди впливають на SEO
- Список кодів стану HTTP з описами
- Додаткова інформація
Що таке коди стану HTTP і навіщо вони потрібні
Код стану HTTP (англ. HTTP status code) — це тризначне число, з якого починається будь-яка відповідь сервера на запит по протоколу HTTP. Код коротко повідомляє суть відповіді — чи був виконаний запит або виникла помилка.
Залежно від коду відповіді відвідувач або буде бачити вміст сторінки чи результати якоїсь дії, або не буде. Наприклад код відповіді 200 означатиме, що все добре і сервер відправить контент, а код 403 означатиме, що доступ до контенту заборонений і сервер нічого не відправить.
Певні коди можуть вказувати на проблеми в роботі сервера і впливати на SEO-просування сайту.
Як подивитися коди відповіді сервера в браузері
Це може знадобитися, якщо треба переконатися в правильності налаштувань редиректу або діагностувати помилки при завантаженні окремих елементів на сторінці, коли основний контент завантажується, але якийсь функціонал недоступний.
Для цього потрібно відкрити в браузері інструменти розробника на сторінці, де виникає помилка, перейти на вкладку «Мережа» і оновити сторінку. Після цього ви побачите всі HTTP запити з кодами відповідей сервера.
Щоб відкрити інструменти в популярних браузерах, натисніть комбінацію клавіш:
- Ctrl + Shift + I — на комп’ютері з Windows або Linux;
- ⌘ + ⌥ + I — на комп’ютері з macOS.
Які бувають коди стану HTTP
Коди відповідей HTTP діляться на п’ять класів. У кожному з них об’єднані повідомлення зі схожими значеннями. Ось коротко інформація про кожен із класів:
- 1хх — інформаційні коди. Повідомляють про прогрес виконання запиту. На практиці практично не зустрічаються.
- 2хх — коди успішно виконаних запитів. Повідомляють про те, що все у порядку і працює, як очікувалося.
- 3хх — коди перенаправлень. Повідомляють про те, що запитувана сторінка переїхала і потрібно зробити ще один запит до нового URL.
- 4хх — коди помилок клієнта. Повідомляють про помилку на стороні користувача, який відправив запит.
- 5хх — коди помилок сервера. Повідомляють про помилку на стороні сервера, який обробляв запит.
У кожному класі є різна кількість HTTP кодів і всі вони призначені для своєї ситуації. Ми розглянемо усі офіційні коди сервера і їх значення в окремому розділі трохи нижче.
Як різні HTTP коди впливають на SEO
Пошукові роботи теж розуміють коди стану HTTP. Коди класів 1хх і 2хх ніяк не вплинуть на позиції сторінки у результатах пошуку, а коди класів 3хх, 4хх і 5хх вплинуть, але в залежності від класу по-різному.
HTTP коди класу 3хх це коди перенаправлень з однієї сторінки на іншу. Є постійні перенаправлення (301 та 308), які передають позиції старої сторінки на нову. А є тимчасові (302, 303 і 307), які не передають позиції. Проте, якщо тимчасовий редирект буде стояти занадто довго, Google подумає, що власник сайту поставив його помилково, і почне сприймати такий редирект як постійний.
HTTP коди класів 4хх і 5хх це коди помилок. Майже всі вони негативно впливають на позиції сторінки у результатах пошуку. Зазвичай, коли бот заходить на сторінку і бачить там код помилки HTTP, він пробує зайти на неї ще раз в межах доби, розраховуючи на те, що власник сайту вирішить проблему. Якщо помилка виникає і при повторному відвідуванні, бот може вилучити сторінку з індексу. Ми навіть стикалися з ситуаціями, коли сторінка випадала з індексу з першого відвідування.
Перевірити, випала чи сторінка з індексу, можна в Google Search Console. Для цього увійдіть у консоль, введіть у рядку пошуку URL сторінки і натисніть Enter. Сервіс перевірить сторінку і покаже її статус. Якщо сторінки вже немає в індексі, натисніть «Запросити індексування», щоб повторно її туди додати.
Також Search Console допоможе вам своєчасно виявляти помилки. Для цього просто періодично перевіряйте розділ «Покриття» на головній сторінці панелі в меню зліва. У нього будуть записуватися всі помилки на сайті. Детальніше на цю тему:
Як додати сайт до Google Search Console
Список кодів стану HTTP
Всього існує більше 40 офіційних кодів стану HTTP. Є ще приблизно стільки ж неофіційних, але в цій статті ми їх розглядати не будемо. Навіть більшість з офіційних можна зустріти вкрай рідко.
1хх Informational — інформаційні коди
- HTTP 100 Continue — «Продовжити». Означає, що сервер отримав початкову частину запиту і готовий прийняти іншу його частину. Відправляється при наявності в запиті заголовка Expect .
- HTTP 101 Switching Protocols — «Переключити протокол». Означає, що сервер змінює протокол. Відправляється при наявності в запиті заголовка Upgrade .
- HTTP 103 Early Hints — «Завчасні дані». Завчасна відповідь з частиною заголовків. Використовується, коли сервер не може швидко сформувати всі заголовки. Їх повний список буде присутній в остаточній відповіді.
2xx Success — коди успішно виконаних запитів
- HTTP 200 OK — «Успішно». Сервер успішно обробив запит.
- HTTP 201 Created — «Створено». Сервер успішно обробив запит і створив новий ресурс.
- HTTP 202 Accepted — «Прийнято». Сервер почав обробляти запит, але поки ще не закінчив процес. В кінцевому підсумку обробка запиту може як завершитися, так і не завершитися.
- HTTP 203 Non-Authoritative Information — «Неофіційна інформація». Сервер успішно обробив запит, але проксі, через який проходив відповідь на запит, змінив цю відповідь.
- HTTP 204 No Content — «Немає вмісту». Сервер успішно обробив запит, але крім заголовків відповіді немає вмісту, який можна було б відправити у відповідь.
- HTTP 205 Reset Content — «Скинути вміст». Сервер успішно обробив запит і відправив у відповідь команду скинути дані, які користувач ввів, перед тим як відправити запит.
- HTTP 206 Partial Content — «Частковий вміст». Сервер успішно обробив частковий запит і відправив вміст, вказаний у заголовку Content-Range . Використовується, наприклад, для відновлення поставленого на паузу завантаження.
- HTTP 207 Multi-Status — «Мульти-статус». У результатах запиту є інформація про декілька незалежних одна від одної операцій.
3xx Redirection — коди перенаправлень
- HTTP 300 Multiple Choices -— «Множинний вибір». Сервер надсилає такий код, коли є кілька можливих відповідей на запит. Наприклад, на сервері є кілька типів файлів, які відповідають умовам запиту. Користувач або user-agent повинен вибрати один з варіантів.
- HTTP 301 Moved Permanently — «Переміщено назавжди». Запитуваний ресурс тепер доступний за новою URI і на випадок повторних запитів варто використовувати саме його.
- HTTP 302 Found — «Знайдено». Раніше цей код називався 302 Moved Temporarily — «Переміщено тимчасово». Запитуваний ресурс тимчасово доступний по іншому URI і на випадок повторних запитів варто використовувати старий URI.
- HTTP 303 See Other — «Дивись в іншому місці». Запитуваний ресурс потрібно шукати в іншому URI з методом запиту GET , незважаючи на те, що в первісному запиті міг бути інший метод.
- HTTP 304 Not Modified — «Не змінено». Ресурс не був змінений, тому варто використовувати його кешовану версію.
- HTTP 305 Use Proxy — «Використовуй проксі». Запит до ресурсу повинен здійснюватися через проксі. Цей код більше не використовується.
- HTTP 306 Switch Proxy — «Зарезервовано». Запит до ресурсу повинен здійснюватися через проксі, який сервер вказав в заголовках відповіді. Цей код більше не використовується.
- HTTP 307 Temporary Redirect — «Тимчасове перенаправлення». Запитуваний ресурс тимчасово доступний по іншому URI. При запиті до нового URI клієнт зобов’язаний використовувати той же метод, що і при первинному запиті. Цей код має таку ж логіку, що і 302 Found. Його ввели, тому що при 302 HTTP коді деякі клієнти змінювали тип запиту з POST на GET .
- HTTP 308 Permanent Redirect — «Постійний редирект». У запитуваного ресурсу назавжди змінився URI і у всіх наступних запитах варто звертатися до нього. Цей код має таку ж логіку, що і 301 Moved Permanently. Його ввели, тому що при 301 HTTP коді деякі клієнти змінювали тип запиту з POST на GET .
4xx Client Error — коди помилок клієнта
- HTTP 400 Bad Request — «Невірний запит». Сервер не може обробити запит, тому що не розуміє його. Наприклад, через синтаксичну помилку.
- HTTP 401 Unauthorized — «неавторизовано». Сервер не може обробити запит без аутентифікації. Потрібно додати до заголовків запиту поле Authorization або перевірити правильність даних у цьому полі, якщо воно вже присутнє.
- HTTP 402 Payment Required — «Необхідна оплата». Спочатку цей код повинен був використовуватися у платіжних системах, але наразі не використовується.
- HTTP 403 Forbidden — «Заборонено». Сервер відмовляється обробити запит, тому що у користувача немає прав на перегляд вмісту.
- HTTP 404 Not Found — «Не знайдено». Сервер не може знайти запитуваний ресурс.
- HTTP 405 Method Not Allowed — «Метод заборонено». Зазначений в запиті метод не можна використовувати. Сервер ЗОБОВ’ЯЗАНИЙ вказати доступні методи в заголовку Allow .
- HTTP 406 Not Acceptable — «Неприйнятно». На сервері немає контенту, який відповідає зазначеним у заголовках запиту характеристикам.
- HTTP 407 Proxy Authentication Required — «Необхідна аутентифікація для проксі». У цього коду така ж логіка, що й у 401 Unauthorized, але в цьому випадку клієнт повинен авторизуватися для використання проксі.
- HTTP 408 Request Timeout — «Вийшов час очікування відповіді на запит». Сервер не отримав запит повністю протягом максимально допустимого для цього часу. Такий код може виникнути при передачі даних великого обсягу методом PUT або POST .
- HTTP 409 Conflict — «Конфлікт». Сервер не зміг обробити запит через те що вміст цього запиту вступив у конфлікт з параметрами сервера. Таке може статися, якщо два клієнта одночасно намагаються змінити ресурс за допомогою методу PUT .
- HTTP 410 Gone — «Вилучено». Запит не може бути оброблено, тому що ресурс було видалено. Нове розташування ресурсу при цьому невідомо.
- HTTP 411 Length Required — «Потрібне значення заголовка Content-Length ». Сервер відмовляється обробляти запит, поки в його заголовках не буде вказано значення у полі Content-Length .
- HTTP 412 Precondition Failed — «Нездійсненні умови запиту». Сервер не може обробити запит, тому що в його заголовках зазначена умова, яку не може бути виконано.
- HTTP 413 Payload Too Large — «Занадто велике тіло запиту». Тіло запиту перевищує максимально допустимий розмір, який сервер може прийняти.
- HTTP 414 URI Too Long — «Занадто довгий URI». URI перевищує максимально допустиму довжину. Таке може статися, якщо вибрана неправильна метод ( GET замість POST ).
- HTTP 415 Unsupported Media Type — «Непідтримуваний медіа формат даних». Сервер відмовляється обробити запит, тому що його вміст містить дані у неприпустимому для такого методу форматі.
- HTTP 416 Range Not Satisfiable — «Діапазон не може бути виконано». У полі Range вказано неприпустимий для ресурсу діапазон.
- HTTP 417 Expectation Failed — «Неприпустиме значення поля Expect ». Сервер не може виконати умову в полі Expect у заголовках запиту.
- HTTP 418 I’m a teapot — «Я чайник». Повідомлення, яке повинен відправляти чайник для заварювання чаю, якщо на ньому намагаються заварити каву. Цей код помилки був введений як першоквітневий жарт у 1998 році.
- HTTP 422 Unprocessable Entity — «Не вдалося обробити запит». Синтаксис запиту правильний, але через логічної помилки сервер не може його виконати. Такий код помилки може виникнути, якщо запит містить XML-документ з логічною помилкою.
- HTTP 423 Locked — «Заблоковано». Запитуваний ресурс заблокований для запитів з таким методом.
- HTTP 424 Failed Dependency — «Невиконана залежність». Сервер не зміг виконати запит, тому що запитувана в ньому дія залежала від іншого дії, яку не було виконано.
- HTTP 426 Upgrade Required — «Необхідно оновити протокол». Сервер відмовляється обробляти запит, використовуючи поточний протокол, але може зробити це після переходу на його іншу версію. Сервер ЗОБОВ’ЯЗАНИЙ вказати в заголовках відповіді необхідну версію протоколу у полі Upgrade .
- HTTP 499 Client Closed Request — «Клієнт відкликав запит». Нестандартний код для Nginx, щоб позначити ситуацію, в якій клієнт закрив з’єднання, поки Nginx обробляв запит.
5xx Server Error — коди помилок сервера
- HTTP 500 Internal Server Error — «Внутрішня помилка сервера». Сервер зіткнувся з непередбаченою помилкою під час обробки запиту.
- HTTP 501 Not Implemented — «Не реалізовано». Сервер не підтримує функціонал, який необхідний для обробки запиту.
- HTTP 502 Bad Gateway — «Невірний шлюз». Сервер, який працює як шлюз або проксі, отримав некоректну відповідь від іншого сервера.
- HTTP 503 Service Unavailable — «Сервіс недоступний». Сервер недоступний, тому що перевантажений або на ньому проводяться технічні роботи.
- HTTP 504 Gateway Timeout — «Шлюз не відповідає». Сервер, який працює як шлюз або проксі, не одержав своєчасної відповіді від іншого сервера і закрив з’єднання.
- HTTP 505 HTTP Version Not Supported — «Версія HTTP не підтримується». Сервер не підтримує версію HTTP, яку вказано у заголовках запиту.
- HTTP 507 Insufficient Storage — «Недостатньо місця». Сервер не може виконати запит, тому що на ньому недостатньо вільного місця, щоб зберегти необхідні для виконання запиту дані.
- HTTP 508 Loop Detected — «Виявлено безкінечне перенаправлення». Сервер відмінив виконання операції, тому що виявив безкінечне перенаправлення при оброці запиту з параметром Depth: infinity .
- HTTP 509 Bandwidth Limit Exceeded — «Вичерпано пропускну здатність каналу». Сайт вичерпав ліміт по використанню трафіку на хостингу. Цей код помилки HTTP не описано в RFC і єдине ПЗ, яке його використовує, це модуль bw/limited у панелі керування хостингом cPanel.
Додаткова інформація
Описи основних кодів стану HTTP можна подивитися в офіційних документах RFC.
Деякі HTTP коди описані в інших власних версіях RFC: код 103, коди 207, 304, 412, 422 – 424, 507, код 308, коди 401 і 407, коди 406 і 418, код 416, код 508.
Стабільний хостинг з підтримкою 24/7
У нас цілодобова підтримка, яка вирішує проблеми швидко і в будь-який час. Навіть якщо питання виникне вночі у вихідний або у святковий день.
Ми можемо допомогти перенести сайт до нас, якщо ви хочете змінити провайдера. Співробітники нашої техпідтримки проаналізують сайт у поточного провайдера, підберуть відповідний тариф та обговорять з вами умови перенесення. А коли домовитеся про деталі, безкоштовно перенесуть ваш сайт на HOSTiQ та перевірять, щоб він правильно працював.