- Головна
- Безкоштовні інструменти
- Коди відповіді HTTP
Коди відповіді HTTP
Усі поширені коди відповіді HTTP від 1xx до 5xx простими словами і що робити, коли їх бачить монітор, зокрема помилки nginx і Cloudflare. Безкоштовно.
У стовпці вердикту показано, як HTTP-монітор Tenium обробляє код із типовими налаштуваннями: очікуваний код від 200 до 299, редиректи виконуються. Очікувані коди можна змінити для кожного монітора.
53 з 53 кодів
| Код | Назва | Що це означає | Що робити, коли код бачить ваш монітор | Вердикт монітора за замовчуванням |
|---|---|---|---|---|
| 100 | Continue | Сервер отримав заголовки запиту, і клієнт може надсилати тіло. | У моніторі ви майже ніколи його не побачите: HTTP-клієнт обробляє його за вас. Якщо перевірка повідомляє такий код, між вами й сервером хтось дивно надсилає проміжні відповіді. Спробуйте URL через curl -v. | Трапляється рідко |
| 101 | Switching Protocols | Сервер погоджується перейти на інший протокол, наприклад WebSocket. | Очікуваний на кінцевій точці WebSocket. Простий HTTP-монітор для неї не підходить: стежте за сторінкою, яка віддає застосунок, або за портом. | Трапляється рідко |
| 103 | Early Hints | Попередня відповідь, що дає браузеру почати завантаження ресурсів до справжньої відповіді. | Це не збій. Якщо монітор його показує, посередник неправильно обробляє проміжні відповіді; дивіться на кінцевий код. | Трапляється рідко |
| 200 | OK | Запит виконано, у відповіді є сторінка або дані. | Добре, але це ще не доказ, що сторінка правильна. WordPress і багато застосунків повертають 200 із повідомленням про помилку в тілі. Додайте перевірку ключового слова для тексту, який є лише на справній сторінці. | Працює |
| 201 | Created | Запит виконано й створено новий ресурс, зазвичай після POST. | Нормально для API, що створює об’єкти. Якщо ви стежите за ендпоінтом POST, залиште 201 серед очікуваних кодів (типовий діапазон 200-299 його вже містить). | Працює |
| 202 | Accepted | Запит прийнято в обробку, але ще не завершено. | Нормально для API на основі черг. Це нічого не каже про те, чи успішно виконається завдання пізніше, тож поєднайте його з heartbeat для самого завдання. | Працює |
| 203 | Non-Authoritative Information | Відповідь — змінена копія від проксі, а не точна відповідь першоджерела. | Рідко. Проксі або CDN переписує відповіді. Зазвичай безпечно; переконайтеся, що тіло таке, як ви очікуєте. | Працює |
| 204 | No Content | Запит виконано, тіла навмисно немає. | Нормально для API та health-ендпоінтів. Перевірка ключового слова не працює на порожньому тілі, тож тут покладайтеся на код відповіді. | Працює |
| 206 | Partial Content | Повернуто лише частину файлу, бо запитано діапазон байтів. | Нормально для відео та великих завантажень. Монітор не надсилає заголовків Range, тож якщо ви бачите його на сторінці, кеш або сервер поводяться незвично. | Працює |
| 300 | Multiple Choices | Є кілька можливих відповідей, і клієнт має обрати. | Рідко в вебі. Якщо його отримує монітор, URL неоднозначний: посилайтеся на конкретний ресурс. | Йде за редиректом |
| 301 | Moved Permanently | У сторінки нова постійна адреса. | Оновіть монітор до кінцевого URL, щоб кожна перевірка була одним запитом, а не двома. Ланцюжок редиректів, що завершується кодом 200, вважається робочим; той, що зациклюється або завершується помилкою, — ні. | Йде за редиректом |
| 302 | Found | Сторінка тимчасово розташована за іншою адресою. | Поширено для редиректів на вхід і перемикання мови. Якщо монітор іде за ним на сторінку входу й перевірка проходить, ви перевіряєте не ту сторінку, яку думаєте. Спрямуйте його на URL без редиректу. | Йде за редиректом |
| 303 | See Other | Результат за іншим URL, його слід отримати через GET, зазвичай після відправлення форми через POST. | Очікувано після успішного відправлення форми. Для монітора на ендпоінті POST вирішіть, чи йти за ним, чи оцінювати сам код 303. | Йде за редиректом |
| 304 | Not Modified | Кешована копія досі дійсна; тіло не надсилається. | З’являється лише на умовних запитах, яких монітор не робить. Якщо він з’явився, шар кешу відповідає дивно; перевірте заголовки інструментом HTTP-заголовків. | Трапляється рідко |
| 307 | Temporary Redirect | Тимчасовий редирект, що зберігає початковий метод і тіло. | Часто трапляється, коли сайт примусово переводить на HTTPS або домен має HSTS. Стежте одразу за URL з https, щоб пропустити стрибок. | Йде за редиректом |
| 308 | Permanent Redirect | Постійний редирект, що зберігає початковий метод і тіло. | Для моніторингу те саме, що 301: переключіть монітор на кінцеву адресу. Перевірте цикли, якщо два правила вказують одне на одне. | Йде за редиректом |
| 400 | Bad Request | Сервер не зміг зрозуміти запит. | Перевірте URL на сторонні символи, пошкоджений заголовок або завеликий cookie. Якщо це почалося після змін, проксі чи правило WAF може переписувати запит. | Збій |
| 401 | Unauthorized | Потрібна автентифікація або облікові дані були неправильні. | Якщо сторінка має бути приватною, додайте 401 до очікуваних кодів або додайте до монітора облікові дані basic-auth. Якщо вона мала бути публічною, її закрило правило доступу чи плагін. | Збій |
| 402 | Payment Required | Зарезервовано на майбутнє; деякі сервіси використовують його для проблем з оплатою. | Якщо його повертає хмарний сервіс чи API, перевірте в постачальника обліковий запис і стан оплати. | Збій |
| 403 | Forbidden | Сервер зрозумів запит, але відмовляється його виконати. | Найчастіша причина для монітора — брандмауер, WAF або плагін безпеки блокує його IP-адресу чи User-Agent. Додайте перевірку до білого списку (allow-list), див. список IP-адрес перевірок. Також перевірте права на файли та налаштування індексу каталогу. | Збій |
| 404 | Not Found | За цим URL на сервері нічого немає. | Сторінку видалено, переміщено або змінилася структура постійних посилань. Виправте URL у моніторі або відновіть сторінку. 404 по всьому сайту після оновлення вказує на зламані правила переписування. | Збій |
| 405 | Method Not Allowed | URL існує, але не для цього методу HTTP. | Деякі ендпоінти відмовляються від HEAD або GET. Змініть метод монітора на той, що ендпоінт приймає, зазвичай GET. | Збій |
| 406 | Not Acceptable | Сервер не може сформувати відповідь, яка відповідає заголовкам Accept. | Часто це WAF або суворе узгодження вмісту. Перевірте, який заголовок Accept надсилає монітор і що віддає ендпоінт. | Збій |
| 408 | Request Timeout | Сервер перестав чекати на запит. | Зазвичай повільний або перевантажений сервер чи проксі з коротким таймаутом. Подивіться на навантаження сервера та графік часу відповіді. | Збій |
| 409 | Conflict | Запит суперечить поточному стану ресурсу. | Типово для API із записом. Для монітора це зазвичай означає, що ви викликаєте ендпоінт запису; використовуйте health-URL лише для читання. | Збій |
| 410 | Gone | Сторінки більше немає назавжди, і вона не повернеться. | Це навмисно, на відміну від 404. Видаліть монітор або спрямуйте його на заміну. | Збій |
| 413 | Content Too Large | Тіло запиту більше, ніж приймає сервер. | Збільште ліміт завантаження у вебсервері та PHP або зменште запит. Монітор зазвичай це не викликає. | Збій |
| 414 | URI Too Long | URL довший, ніж приймає сервер. | Скоротіть рядок запиту в URL монітора або пошукайте цикл редиректів, що весь час додає параметри. | Збій |
| 415 | Unsupported Media Type | Сервер не приймає тип вмісту запиту. | Звірте заголовок Content-Type і тіло монітора з тим, що очікує API. | Збій |
| 418 | I'm a teapot | Жартівливий код з першоквітневого RFC, який деякі сервіси використовують навмисно. | Деякі блокувальники ботів повертають його небажаним клієнтам. Сприймайте його як блокування й додайте монітор до білого списку. | Збій |
| 421 | Misdirected Request | Запит потрапив на сервер, який не може відповідати за це ім’я хоста. | Часто невідповідність TLS або SNI за спільним проксі. Перевірте сертифікат і віртуальний хост для цього імені. | Збій |
| 422 | Unprocessable Content | Запит правильно сформований, але містить недійсні дані. | Валідація API не пройшла. Перевірте тіло, яке надсилає монітор, або перейдіть на health-ендпоінт GET. | Збій |
| 425 | Too Early | Сервер не оброблятиме запит, який можуть повторити (ранні дані TLS). | Рідко. Повторіть; якщо стійко, подивіться налаштування ранніх даних TLS 1.3 на проксі. | Збій |
| 429 | Too Many Requests | Вас обмежує ліміт частоти запитів. | Сервер або WAF стримує монітор. Додайте його IP-адреси до білого списку, збільште інтервал або виключіть URL з лімітів. Не ігноруйте: той самий ліміт може зачепити й справжніх відвідувачів. | Збій |
| 431 | Request Header Fields Too Large | Заголовки, найчастіше cookie, завеликі. | Очистіть cookie в браузері, щоб переконатися, а потім збільште ліміт розміру заголовків у вебсервері чи проксі. | Збій |
| 451 | Unavailable For Legal Reasons | Вміст заблоковано з юридичних причин. | Часто це гео-блокування або рішення суду. Якщо блокування очікуване, додайте 451 до очікуваних кодів монітора; інакше дізнайтеся, хто встановив правило. | Збій |
| 500 | Internal Server Error | Сервер натрапив на непередбачену помилку під час обробки запиту. | Спершу прочитайте журнали помилок застосунку й вебсервера. Якщо це сталося після розгортання, відкотіть його. У WordPress вимикайте плагіни по одному. | Збій |
| 501 | Not Implemented | Сервер не підтримує запитаний метод. | Переконайтеся, що метод правильний і що сервер чи проксі його підтримує; спробуйте GET. | Збій |
| 502 | Bad Gateway | Шлюз або проксі отримав недійсну відповідь від сервера за ним. | Процес застосунку за nginx, балансувальником або CDN упав чи перезапустився. Перевірте, що сервіс застосунку працює, і прочитайте його журнал. | Збій |
| 503 | Service Unavailable | Сервер перевантажений або вимкнений на обслуговування. | Перевірте навантаження, пам’ять і ліміти з’єднань. Якщо це планове обслуговування, використайте вікно обслуговування, щоб воно не рахувалося простоєм. | Збій |
| 504 | Gateway Timeout | Шлюз або проксі не дочекався відповіді від сервера за ним. | Застосунок надто повільний або завис: повільні запити, застряглий воркер чи заблокований зовнішній API. Подивіться на час відповіді та журнал повільних запитів. | Збій |
| 505 | HTTP Version Not Supported | Сервер не підтримує використану версію HTTP. | Рідко. Перевірте налаштування протоколів на проксі й сервері (HTTP/2, HTTP/3). | Збій |
| 507 | Insufficient Storage | Сервер не може зберегти те, що потрібно для виконання запиту. | Диск або квота заповнені. Звільніть місце, а потім з’ясуйте, що його заповнює (журнали, резервні копії, завантаження). | Збій |
| 508 | Loop Detected | Сервер виявив нескінченний цикл. Деякі спільні хостинги також використовують 508 для обмежень ресурсів. | Якщо ви на спільному хостингу, обліковий запис досяг ліміту процесора чи процесів: подивіться на трафік і повільні плагіни. Інакше шукайте цикл переписування чи проксі. | Збій |
| 511 | Network Authentication Required | Мережа вимагає входу, як-от на захоплювальних порталах (captive portal). | Перевірка проходить через captive portal або обмежену мережу. Переконайтеся, що монітор досягає справжнього сайту. | Збій |
| 499 | Client Closed Request (nginx) | nginx записує його, коли клієнт закрив з’єднання раніше, ніж відповідь була готова. Клієнту він не надсилається. | Ви побачите його в журналах nginx, а не в моніторі. Багато 499 означає, що застосунок повільніший, ніж відвідувачі готові чекати. | Збій |
| 520 | Web Server Returned an Unknown Error (Cloudflare) | Cloudflare отримав від вашого сервера-першоджерела порожню, завелику або іншу несподівану відповідь. | Перевірте журнал помилок першоджерела, розмір заголовків відповіді та чи не відкидає брандмауер запити Cloudflare. | Збій |
| 521 | Web Server Is Down (Cloudflare) | Cloudflare не зміг з’єднатися з вашим сервером-першоджерелом. | Першоджерело вимкнене, не слухає порт або блокує діапазони IP-адрес Cloudflare. Запустіть сервіс і дозвольте Cloudflare в брандмауері. | Збій |
| 522 | Connection Timed Out (Cloudflare) | Cloudflare дістався вашого першоджерела, але з’єднання не завершилося вчасно. | Першоджерело перевантажене або брандмауер відкидає пакети. Перевірте навантаження, мережу та брандмауер першоджерела. | Збій |
| 523 | Origin Is Unreachable (Cloudflare) | Cloudflare не бачить маршруту до вашого першоджерела. | Перевірте DNS для адреси першоджерела в Cloudflare та що IP-адреса першоджерела правильна й досяжна. | Збій |
| 524 | A Timeout Occurred (Cloudflare) | Першоджерело прийняло з’єднання, але не відповіло в межах часового ліміту Cloudflare. | Повільний запит: довгий скрипт, звіт чи експорт. Прискоріть його, винесіть у фонове завдання або відповідайте раніше. | Збій |
| 525 | SSL Handshake Failed (Cloudflare) | Cloudflare не зміг завершити рукостискання TLS із першоджерелом. | Перевірте, що першоджерело віддає HTTPS на 443 із робочим сертифікатом і сумісними налаштуваннями TLS. | Збій |
| 526 | Invalid SSL Certificate (Cloudflare) | Cloudflare не зміг перевірити сертифікат першоджерела в режимі Full (strict). | Оновіть або замініть сертифікат першоджерела чи виправте ланцюжок. Інструмент перевірки SSL покаже, що віддає першоджерело. | Збій |
Жоден код не підходить. Спробуйте число, наприклад 502, або слово, наприклад таймаут.
Дізнавайтеся в ту мить, коли сайт починає повертати один із цих кодів. Tenium перевіряє ваші сторінки й сповіщає, коли код відповіді або вміст сторінки неправильні. 30 моніторів безкоштовно.
Почати безкоштовноЯк монітор доступності оцінює код відповіді
Монітор запитує URL і порівнює код відповіді з тим, який ви йому наказали очікувати. В Tenium типово це від 200 до 299, а редиректи виконуються, тож 301, що веде на 200, вважається робочим. Усе інше, зокрема кожен 4xx і 5xx, — це збій, який підтверджується другою перевіркою, перш ніж відкриється інцидент.
Очікувані коди можна змінити для кожного монітора: списком на кшталт `200,204` або класом на кшталт `2xx,3xx`. Робіть це свідомо — для приватної сторінки, що слушно відповідає 401, або для ендпоінта, що відповідає 204. Не робіть цього, щоб заглушити монітор, який вам про щось повідомляє.
Коди, які легко прочитати неправильно
Короткий список тих, що найчастіше плутають на практиці:
- 200 не означає, що сторінка правильна. Багато застосунків повертають 200 із повідомленням про помилку в тілі, тож додайте перевірку ключового слова для тексту, який є лише на справній сторінці.
- 301 і 302 — обидва редиректи, але лише 301 каже, що переміщення постійне. Спрямуйте монітор на кінцевий URL, щоб кожна перевірка була одним запитом.
- 401 означає «хто ви?», а 403 — «я знаю, і ні». Монітор, який отримує 403 на сайті, що відкривається у вашому браузері, зазвичай заблокований брандмауером або плагіном безпеки.
- 502, 503 і 504 надходять із шару перед застосунком. 502 — це невдала відповідь, 503 — «недоступний або перевантажений», 504 — «надто повільно». Кожен вказує на інше місце, де шукати.
- 429 — обмеження частоти запитів. Якщо його бачить ваш монітор, його можуть бачити й справжні відвідувачі.
Як користуватися таблицею
Введіть код або слово, щоб відфільтрувати, або оберіть клас кнопками. У кожному рядку сказано, що означає код і що спробувати насамперед, коли його повідомляє монітор доступності. Коди 499 і 520-526 не входять у стандарт HTTP: їх використовують nginx і Cloudflare, і вони трапляються в журналах та на сторінках помилок сайтів за цими інструментами.
Запитання про інструмент
Чим відрізняються 502, 503 і 504?
502 Bad Gateway означає, що проксі отримав недійсну відповідь від застосунку за ним, часто тому, що застосунок упав. 503 Service Unavailable означає, що сервер перевантажений або на обслуговуванні. 504 Gateway Timeout означає, що застосунок не відповів вчасно. Перевіряйте процес, навантаження й повільні запити саме в такому порядку.
Чи вважати редирект 3xx робочим станом?
Редирект — нормальна відповідь, але важливо, де він закінчується. Tenium іде за редиректами й оцінює кінцеву відповідь, тож ланцюжок, що завершується 200, — це робочий стан, а цикл чи помилка в кінці — збій. Стежте за кінцевим URL, де можете.
Чому монітор отримує 403, коли сайт працює в моєму браузері?
Брандмауер, WAF або плагін безпеки блокує IP-адресу чи User-Agent монітора. Додайте адреси перевірок зі сторінки IP-адрес перевірок до білого списку (allow-list), і монітор сприйматимуть як звичайного відвідувача.
Чи можна змінити, які коди вважаються робочими?
Так. У кожного HTTP-монітора є налаштування очікуваного коду. Використайте список на кшталт 200,204 або клас на кшталт 2xx,3xx. Типово це від 200 до 299.