406 Not Acceptable

4 мин чтения
Обновлено 24 июля 2026

Код 406 Not Acceptable означает, что сервер не может отдать ответ в формате, который клиент запросил в заголовках Accept. Формально это ошибка согласования форматов, но на практике 406 чаще возвращают защитные модули веб-сервера, посчитавшие запрос подозрительным. Для владельца сайта такой код — повод проверить фильтры на хостинге, а не искать проблему в контенте.

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

406 — клиентская ошибка из группы 4xx, описанная в стандарте RFC 9110. Запрашивая страницу, клиент перечисляет приемлемые варианты ответа в заголовках Accept (тип содержимого), Accept-Language (язык), Accept-Encoding (сжатие) и Accept-Charset (кодировка). Если у сервера нет подходящего варианта и он не готов отдать ответ «по умолчанию», возвращается 406. Место кода среди остальных — в полном списке кодов ответа HTTP.

Смежные коды легко перепутать. 415 Unsupported Media Type — зеркальная ситуация: сервер не принимает формат тела запроса, который прислал клиент. 406 — наоборот: сервер не может отдать ответ в формате, который клиент готов принять. От 400 Bad Request код отличается тем, что сам запрос корректен — не совпали только ожидания по формату ответа.

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

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

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

  • Сработал ModSecurity на Apache. Классика виртуального хостинга: при срабатывании защитного правила многие хостинги возвращают именно 406, а не 403. Под правило попадает форма, адрес с «подозрительными» параметрами или запрос мониторинга.
  • Фильтр по заголовкам запроса. Анти-бот правила на сервере или CDN отклоняют запросы с непривычным User-Agent — например, от утилит вроде curl или от систем проверки доступности.
  • API требует конкретный заголовок Accept. Метод отдаёт только JSON и возвращает 406 всем, кто не прислал Accept: application/json. Так ведут себя многие REST-API на популярных фреймворках.
  • Включён MultiViews в Apache. Сервер пытается сам подобрать файл под запрошенный язык или формат; подходящего варианта нет — и вместо страницы уходит 406.
  • Приложение не поддерживает запрошенный формат. Клиент просит данные в XML (например, суффиксом .xml в адресе), а приложение умеет отдавать только HTML и JSON.
  • Правило на обратном прокси или CDN. Администратор настроил возврат 406 для отдельных стран, путей или сигнатур запросов.

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

  1. Откройте онлайн-проверку кода ответа своего сайта — она покажет реальный ответ сервера без кэша браузера и без регистрации.
  2. Сравните с браузером. Если сайт открывается, а проверка получает 406 — сервер фильтрует запросы по заголовкам, и дело в защитном правиле.
  3. Загляните в логи веб-сервера и аудит-лог ModSecurity: там видно, какое правило сработало и на какую часть запроса.
  4. Напишите в поддержку хостинга: попросите найти сработавшее правило WAF и добавить исключение для вашего сайта или для проверок мониторинга.
  5. Если под мониторингом адрес API — убедитесь, что он отвечает на обычный GET-запрос без специальных заголовков, или поставьте на проверку другую страницу.
  6. Проверьте конфигурацию Apache: отключите MultiViews для каталога, если согласование форматов вам не нужно.

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

Код 406 попался в статистике Tracker.ru 27 раз за десять с лишним миллионов проверок (по данным на июль 2026). Причина в том, что браузеры и боты присылают заголовок Accept со значением */*, то есть согласны на любой формат, — честному 406 просто неоткуда взяться. А защитные фильтры, главный источник этого кода, чаще настроены отдавать 403 Forbidden.

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

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

Запросы отличаются заголовками. Браузер отправляет привычный для сервера набор, а запрос системы мониторинга выглядит иначе — и попадает под защитное правило ModSecurity или анти-бот фильтр. Попросите хостинг найти сработавшее правило и добавить исключение — после этого проверки пойдут штатно.

Чем 406 отличается от 415 Unsupported Media Type?

Это зеркальные коды. 406 — сервер не может отдать ответ в формате, который клиент согласен принять. 415 — сервер не принимает формат тела самого запроса: например, клиент прислал XML, а API ждёт JSON. Проще запомнить так: 406 — про ответ, 415 — про запрос.

Может ли обычный посетитель увидеть 406?

Почти никогда: браузер соглашается на любой формат ответа, поэтому честное согласование не проваливается. Если посетители всё же жалуются на 406, их запросы почти наверняка блокирует защитный фильтр — по стране, IP или заголовкам. Проверьте правила WAF на сервере и CDN.

См. также