408 Request Timeout

4 мин чтения
Обновлено 28 апреля 2026

Код 408 Request Timeout означает, что сервер не дождался полного запроса от клиента за отведённое время и разорвал соединение. Сайт при этом обычно работает: до обработки страницы дело просто не дошло. Для владельца сайта повторяющиеся 408 — сигнал проверить таймауты веб-сервера и качество канала до хостинга, а не код приложения.

Что означает код 408

408 — клиентская ошибка из группы 4xx, описанная в RFC 9110. Сервер открыл соединение, начал ждать заголовки или тело запроса, но клиент не прислал их целиком за установленный лимит. Тогда сервер отвечает 408 и закрывает соединение. Стандарт разрешает клиенту молча повторить запрос — браузеры часто так и делают, поэтому посетители ошибку почти не видят.

Важно не путать 408 со смежными таймаутами. При 504 Gateway Timeout шлюз не дождался ответа от вашего бэкенда — проблема внутри инфраструктуры сайта. При 524 A Timeout Occurred то же самое фиксирует Cloudflare. А 408 возникает на входе: сервер не получил сам запрос. Зеркальная ситуация — 499 Client Closed Request, когда уже клиент не дождался сервера. Место 408 среди остальных кодов — в полном списке кодов ответа HTTP.

На практике многие серверы, не дождавшись запроса, закрывают соединение вовсе без ответа. Поэтому «чистый» 408 чаще отдают серверы с явно настроенными лимитами чтения запроса и балансировщики нагрузки.

Считает ли Tracker.ru 408 падением

Да. Успешной Tracker.ru считает только проверку с кодом 2xx. Ответ 408 помечает сайт недоступным, тип ошибки — «HTTP-ошибка», и вы получаете уведомление на email, в Telegram или по webhook. Не путайте этот случай с ошибкой Timeout в мониторинге: там сервер вообще не ответил за время проверки, а при 408 ответ есть — сервер сам сообщил, что не дождался запроса. Проверки идут из нескольких регионов. Если 408 фиксируется только из одного региона, дело в сетевом маршруте, а не в сервере. Периоды недоступности отражаются в статистике аптайма.

Типичные причины

  • Заниженные таймауты nginx. Директивы client_header_timeout и client_body_timeout (по умолчанию 60 секунд) выставлены слишком маленькими — nginx отвечает 408 клиентам, не успевшим передать запрос.
  • Агрессивный RequestReadTimeout в Apache. Модуль mod_reqtimeout защищает от медленных клиентов, но при жёстких значениях режет и обычные запросы через слабый канал.
  • Слишком строгая защита от Slowloris-атак. Правила против медленных соединений задевают легитимных посетителей с мобильным или нестабильным интернетом.
  • Потери пакетов и перегруженный канал. Запрос доходит до сервера частями и слишком медленно — лимит ожидания истекает раньше.
  • Балансировщик или CDN со своими правилами. Например, балансировщик AWS возвращает 408, если клиент не прислал запрос за idle-таймаут соединения.
  • Прокси или firewall на пути. Промежуточное оборудование задерживает или обрывает передачу тела запроса — особенно заметно на больших POST-запросах.

Что проверить владельцу сайта

  1. Откройте онлайн-проверку кода ответа своего сайта — она покажет реальный ответ сервера без кэша браузера и без регистрации.
  2. Посмотрите access-лог веб-сервера: сколько запросов завершается кодом 408 и с каких IP. Единичные записи — норма, массовые — повод разбираться.
  3. Проверьте таймауты чтения запроса: client_header_timeout и client_body_timeout в nginx, RequestReadTimeout в Apache. Не занижены ли они относительно значений по умолчанию.
  4. Оцените сеть до сервера: ping и mtr покажут потери пакетов и задержки на маршруте. При проблемах — вопрос к хостинг-провайдеру.
  5. Изучите настройки балансировщика, CDN и firewall: нет ли собственных лимитов ожидания запроса, которые срабатывают раньше серверных.
  6. Сравните результаты проверок по регионам мониторинга: 408 из одного региона указывает на сетевой маршрут, из всех — на настройки сервера.

Как часто встречается 408 на практике

В выборке Tracker.ru код 408 встретился 23 раза на десять с лишним миллионов проверок (по данным на июль 2026). Причина проста: мониторинг отправляет короткий запрос быстро и целиком, ждать серверу почти нечего. А серверы, которые действительно не дождались запроса, чаще молча закрывают соединение, не отправляя никакого кода.

Частые вопросы

Чем 408 отличается от 504 Gateway Timeout?

Направлением ожидания. 408 — сервер не дождался запроса от клиента: проблема на входе, до обработки страницы дело не дошло. 504 — шлюз не дождался ответа от бэкенда: запрос принят, но приложение или база отвечали слишком долго. Первое лечится настройками таймаутов и сетью, второе — ускорением бэкенда.

Почему мониторинг показывает 408, а в браузере сайт открывается?

Браузер при 408 может молча повторить запрос — со второй попытки страница загружается, и вы ничего не замечаете. Мониторинг фиксирует именно первый ответ. Кроме того, сетевой маршрут из региона проверки отличается от вашего: сравните результаты по регионам.

408 — это проблема сайта или сети?

Чаще сети или конфигурации сервера. Само приложение в обработку не вступало — запрос не дошёл целиком. Но лимиты ожидания настраивает владелец сайта: если они жёстче значений по умолчанию без веской причины, начните с их ослабления.

См. также