406 Not Acceptable означает, что у целевого ресурса нет представления, которое соответствовало бы заголовкам согласования клиента, например Accept, Accept-Language или Accept-Encoding, а отдавать представление по умолчанию сервер не хочет. В теле ответа должен быть список доступных представлений, чтобы пользователь или клиент мог выбрать.
На практике большинство серверов игнорируют предпочтения, которые не могут выполнить, и отдают представление по умолчанию, что RFC 9110 прямо разрешает. Поэтому 406 встречается в основном в API, которые отдают только определенные MIME-типы, например в JSON API, получившем Accept: application/xml.
Некоторые хостинг-провайдеры настраивают модули безопасности, например ModSecurity, так, чтобы заблокированные запросы получали 406, поэтому 406 может оказаться решением файрвола, а не проблемой согласования.
Пример ответа
HTTP/1.1 406 Not Acceptable
Date: Fri, 06 Nov 2026 10:15:32 GMT
Vary: Accept
Content-Type: application/json
Content-Length: 57
{"error":"Available formats: application/json, text/csv"} SEO и проверка редиректов
Поисковые роботы отправляют широкие заголовки Accept, поэтому получать 406 они не должны; если такое происходит, URL считается ошибкой 4xx и не индексируется. Если проверка редиректов возвращает 406, а в браузере страница загружается, проверьте добавленные вами пользовательские заголовки Accept или правило безопасности, которое срабатывает на User-Agent или URL.
Типичные причины и сценарии использования
- API поддерживает только JSON, а клиент запросил XML или другой формат.
- При строгой настройке
Accept-Languageнет подходящего перевода и нет запасного варианта. - Правило ModSecurity или WAF на виртуальном хостинге блокирует запрос с кодом 406.