Публикация 15 октября 2026
Обновление 9 октября 2026
Ошибка 400 Bad Request — это ответ сервера, означающий, что HTTP-запрос дошёл до адресата, но был отклонён из-за проблемы на стороне клиента: некорректного URL, повреждённых cookies, неправильных заголовков или невалидных данных в теле запроса. Согласно актуальной спецификации RFC 9110 (раздел 15.5.1), сервер не обязан обрабатывать такой запрос повторно без изменений — это принципиальное отличие от временных серверных сбоев класса 5xx. Важно понимать: несмотря на то что 400 классифицируется как клиентская ошибка, её причиной нередко оказывается неверная конфигурация самого сервера или приложения.
Ключевые выводы
- Код 400 относится к классу 4xx — клиентские ошибки; сервер получил запрос, но отказался его обрабатывать.
- Повторная отправка того же запроса без изменений не поможет — нужно устранить причину.
- Наиболее частые причины: битые cookies, некорректный URL, слишком большие заголовки, невалидный JSON в API.
- Для пользователя первый шаг — открыть страницу в режиме инкогнито; для владельца сайта — проверить логи сервера.
- Массовые ошибки 400 расходуют краулинговый бюджет и могут снизить частоту обхода сайта поисковыми роботами.
Что такое ошибка 400 и чем она отличается от других кодов
HTTP-статус-код 400 Bad Request сигнализирует о том, что сервер не может или не хочет обрабатывать запрос из-за чего-то, что он расценивает как ошибку клиента. Это не значит, что сайт «упал» или недоступен — сервер работает, принял соединение и даже сформировал ответ. Проблема в самом запросе: в его синтаксисе, заголовках, теле или маршрутизации.
Чтобы быстро понять, с каким кодом вы столкнулись и что он означает, используйте сравнительную таблицу ниже.
| Код | Название | Чья ошибка | Типичная причина | Повтор запроса поможет? |
|---|---|---|---|---|
| 400 | Bad Request | Клиент (иногда конфигурация сервера) | Некорректный URL, битые cookies, неверные заголовки | Нет, без изменений |
| 403 | Forbidden | Сервер (политика доступа) | Нет прав на ресурс, IP заблокирован | Нет |
| 404 | Not Found | Клиент (неверный адрес) | Страница удалена или URL изменён | Нет |
| 422 | Unprocessable Entity | Клиент (логика данных) | Данные синтаксически верны, но не прошли валидацию | Нет, без исправления данных |
| 500 | Internal Server Error | Сервер | Необработанное исключение, сбой приложения | Иногда да |
Ключевое отличие 400 от 500: при коде 500 проблема на стороне сервера, и пользователь ничего не может сделать самостоятельно. При коде 400 проблема чаще всего устранима на стороне клиента — достаточно исправить запрос. Отличие от 404: страница с кодом 404 просто не существует, тогда как при 400 страница может существовать, но запрос к ней сформирован неправильно.

Экспресс-диагностика: на чьей стороне проблема
Прежде чем переходить к детальному устранению ошибки, определите, где именно возникает сбой. Это сэкономит время и позволит выбрать правильный раздел инструкции.
| Симптом | Вероятная причина | Первое действие |
|---|---|---|
| Ошибка только в вашем браузере, у других открывается | Cookies, кэш, расширения браузера | Открыть в режиме инкогнито |
| Ошибка на конкретной странице у всех пользователей | Конфигурация сервера, .htaccess, WAF | Проверить логи сервера |
| Ошибка при отправке формы или загрузке файла | Превышен лимит размера тела запроса | Проверить client_max_body_size (Nginx) или LimitRequestBody (Apache) |
| Ошибка при работе с API | Невалидный JSON, неверный Content-Type, отсутствующие поля | Проверить тело запроса через DevTools → Network |
| Ошибка появилась после обновления сайта или миграции | Изменения в .htaccess, nginx.conf или правилах WAF | Откатить последние изменения конфигурации |
| Ошибка только при определённом URL с длинными параметрами | Превышен лимит размера заголовков или строки запроса | Проверить large_client_header_buffers в Nginx |
Основные причины ошибки 400 Bad Request
Понимание причин помогает не только устранить текущую ошибку, но и предотвратить её повторное появление. Ниже перечислены наиболее распространённые источники проблемы — от самых частых к более редким.
Некорректный или неправильно закодированный URL
Пробелы, кириллические символы и специальные знаки в URL должны быть закодированы в формате percent-encoding (например, пробел → %20). Если браузер или приложение передают URL с незакодированными символами, сервер вправе отклонить такой запрос с кодом 400. Типичный пример — ручной ввод адреса с опечаткой или копирование ссылки из документа, где пробелы не были экранированы.
Переполненные или повреждённые cookies
Cookies передаются в заголовке Cookie каждого HTTP-запроса. Если накопленный объём cookies для домена превышает буфер заголовков сервера, запрос будет отклонён. Nginx по умолчанию выделяет начальный буфер в 1 КБ (директиваclient_header_buffer_size); при переполнении он переходит кlarge_client_header_buffers— по умолчанию 4 буфера по 8 КБ каждый. Важный нюанс: один заголовок Cookie должен помещаться в один буфер целиком, а не в их сумму. Повреждённые cookies — например, с символами, нарушающими RFC 6265, — также могут вызвать отклонение запроса.
Слишком большой размер заголовков запроса
Nginx ограничивает размер одной строки заголовка до 8 КБ (директиваlarge_client_header_buffers); Apache использует директивуLimitRequestFieldSizeс аналогичным значением по умолчанию — 8190 байт. Если приложение или браузерное расширение добавляют нестандартные заголовки большого размера, сервер вернёт 400 с сообщением вида «Request Header Or Cookie Too Large».
Превышение лимита на размер загружаемого файла
При загрузке файлов через форму тело запроса (request body) может превысить лимит, установленный сервером. В Nginx за это отвечает директиваclient_max_body_size(по умолчанию 1 МБ), в Apache —LimitRequestBody. Пользователь видит ошибку 400, хотя фактически проблема в конфигурации сервера, не допускающей файлы нужного размера.
Неверный формат данных или Content-Type
Если приложение отправляет данные в формате JSON, но заголовок Content-Type указывает application/x-www-form-urlencoded, или наоборот — сервер или фреймворк не сможет корректно разобрать тело запроса и вернёт 400. Аналогичная ситуация возникает при синтаксических ошибках в JSON: незакрытая скобка, лишняя запятая или неэкранированный символ приводят к тому, что парсер отклоняет весь запрос.
Вмешательство VPN, прокси, антивируса или расширений браузера
Промежуточные слои — VPN-клиент, корпоративный прокси, антивирусный модуль или браузерное расширение — могут модифицировать заголовки запроса, добавлять собственные или изменять тело. Если сервер или WAF (Web Application Firewall) расценит такой модифицированный запрос как подозрительный, он вернёт 400. Это особенно характерно для корпоративных сетей с глубокой инспекцией трафика.
Ошибки конфигурации сервера и WAF
Неверные правила в файле .htaccess (Apache) или nginx.conf могут приводить к тому, что легитимные запросы отклоняются с кодом 400. Web Application Firewall — например, Cloudflare WAF или AWS WAF — при ложных срабатываниях также может блокировать запросы и возвращать этот код. Согласно RFC 9112, сервер обязан вернуть 400, если HTTP/1.1-запрос не содержит заголовка Host, содержит несколько заголовков Host или заголовок Host с недопустимым значением — это требование стандарта, а не опциональное поведение.
Как исправить ошибку 400 на стороне пользователя
Если ошибка 400 возникает только в вашем браузере, а не у всех посетителей сайта, причина, скорее всего, на стороне клиента. Следуйте шагам ниже последовательно — каждый следующий шаг применяйте только если предыдущий не помог.

- Проверьте URL вручную.Убедитесь, что в адресной строке нет лишних пробелов, незакодированных спецсимволов или опечаток. Попробуйте перейти на главную страницу сайта и найти нужный раздел через навигацию.
- Откройте страницу в режиме инкогнито.Это позволяет исключить cookies, кэш и расширения браузера как источник проблемы одним действием. Если в инкогнито страница открывается — проблема в одном из этих факторов.
- Очистите cookies только для конкретного сайта.Не нужно удалять весь браузерный кэш — это избыточно. В Chrome: нажмите на иконку замка в адресной строке → «Файлы cookie и данные сайта» → удалите данные для проблемного домена. В Firefox: аналогичный путь через иконку замка.
- Отключите расширения браузера.Временно деактивируйте все расширения (особенно блокировщики рекламы, VPN-расширения и менеджеры паролей) и перезагрузите страницу.
- Попробуйте другой браузер или устройство.Если ошибка воспроизводится только в одном браузере — проблема в его настройках или расширениях. Если на другом устройстве тоже возникает — проблема на стороне сервера.
- Проверьте VPN и прокси.Отключите VPN или корпоративный прокси и повторите запрос. Некоторые серверы блокируют запросы с определённых IP-диапазонов или с модифицированными заголовками.
- Сбросьте DNS-кэш— этот шаг актуален в специфических сценариях, например после миграции сайта на новый IP. В Windows:ipconfig /flushdnsв командной строке. На macOS:sudo dscacheutil -flushcache.
Как исправить ошибку 400 на стороне сервера
Если ошибка 400 воспроизводится у всех пользователей или на конкретном URL независимо от браузера, причина — в конфигурации сервера или приложения. Диагностику начинайте с анализа логов.
Анализ логов сервера
Первичный источник информации — файлыaccess.logиerror.log. В error.log Nginx при ошибке 400 из-за размера заголовков появится запись вида:«client sent too large request or too many headers»или«request line is too large». В Apache аналогичные сообщения содержат указание на конкретную директиву-ограничитель. Анализ логов позволяет точно установить причину без перебора гипотез.
Настройка буферов заголовков в Nginx
Если логи указывают на превышение размера заголовков, скорректируйте конфигурацию в блокеhttpилиserverфайла nginx.conf:
- client_header_buffer_size 4k;— начальный буфер для заголовков (увеличьте до 4–8 КБ при необходимости).
- large_client_header_buffers 4 16k;— резервные буферы; помните, что один заголовок должен помещаться в один буфер целиком.
- client_max_body_size 20m;— лимит на размер тела запроса (актуально при загрузке файлов).
После изменения конфигурации выполнитеnginx -tдля проверки синтаксиса иnginx -s reloadдля применения изменений без перезапуска сервера. Актуальные значения по умолчанию и допустимые диапазоны уточняйте в официальной документации Nginx для вашей версии.
Настройка лимитов в Apache
В конфигурационном файле Apache или в .htaccess используйте следующие директивы:
- LimitRequestFieldSize 16380— максимальный размер одного заголовка запроса в байтах.
- LimitRequestLine 8190— максимальная длина строки запроса (метод + URL + версия протокола).
- LimitRequestBody 20971520— максимальный размер тела запроса (здесь: 20 МБ).
Изменения в .htaccess вступают в силу немедленно; изменения в основном конфиге требуют перезапуска Apache. Проверяйте актуальность директив в документации Apache для вашей версии — значения по умолчанию могут отличаться.
Проверка конфигурации WAF
Если сайт защищён Web Application Firewall (Cloudflare, AWS WAF, ModSecurity и др.), проверьте журналы WAF на предмет заблокированных запросов. Ложные срабатывания правил WAF — распространённая причина ошибки 400 на e-commerce сайтах и корпоративных порталах. При обнаружении ложного срабатывания скорректируйте правило или добавьте исключение для легитимного трафика.
Ошибка 400 в API: особенности и отличие от 422
При работе с REST API ошибка 400 Bad Request имеет свою специфику. Сервер возвращает её, когда запрос синтаксически некорректен или не может быть разобран: невалидный JSON, отсутствующий обязательный заголовок, неверный Content-Type или нечитаемое тело запроса. Хорошо спроектированный API при этом возвращает не просто код 400, но и JSON-тело с описанием конкретной проблемы — например, какое поле отсутствует или какой тип данных ожидался.
Разработчики нередко путают коды 400 и 422. Принципиальное различие: код 400 означает, что сервер не смог разобрать запрос на уровне синтаксиса или протокола. Код 422 Unprocessable Entity (определён в RFC 4918 как часть расширений WebDAV) означает, что запрос синтаксически корректен и был разобран, но содержит семантические ошибки — например, значение поля не прошло бизнес-валидацию.
| Критерий | 400 Bad Request | 422 Unprocessable Entity |
|---|---|---|
| Синтаксис запроса | Некорректный (не разобран) | Корректный (разобран успешно) |
| Причина отказа | Протокольная или синтаксическая ошибка | Семантическая ошибка данных |
| Пример | Невалидный JSON, неверный Content-Type | Поле email содержит строку без символа @ |
| Стандарт | RFC 9110, раздел 15.5.1 | RFC 4918 (WebDAV) |
| Действие клиента | Исправить синтаксис запроса | Исправить значения полей |
При разработке API рекомендуется возвращать в теле ответа 400 структурированное описание ошибки: какой именно параметр некорректен и почему. Это значительно упрощает отладку для потребителей API и снижает нагрузку на техническую поддержку.

Влияние ошибки 400 на SEO и краулинговый бюджет
С точки зрения поисковой оптимизации единичная ошибка 400 на одной странице не является критической проблемой и не обрушит позиции сайта. Ситуация меняется при массовом и систематическом появлении кода 400 — особенно на важных страницах каталога, форм или API-эндпоинтов.
Краулинговый бюджет — это ресурс поискового робота, ограниченный по количеству запросов и времени обхода сайта за определённый период. Когда Googlebot или робот Яндекса систематически получает ответы 400 на группу URL, он тратит бюджет на «битые» адреса, не добираясь до новых или обновлённых страниц. Google в документации Search Console прямо указывает, что систематические сбои при обходе снижают частоту краулинга. Для крупных сайтов с десятками тысяч страниц это может замедлить индексацию нового контента.
Важная оговорка: для небольших сайтов (до нескольких тысяч страниц) краулинговый бюджет редко является узким местом, и единичные ошибки 400 не создадут заметных проблем с индексацией. Фокусируйтесь на устранении массовых и повторяющихся ошибок.
Как найти страницы с ошибкой 400 в инструментах вебмастера
ВGoogle Search Consoleперейдите в раздел «Страницы» (ранее «Покрытие») и отфильтруйте по статусу «Ошибка». Ошибки сканирования, включая 400, отображаются в отчёте «Сведения об индексировании». Для массовой проверки всего сайта используйте краулерыScreaming Frog SEO SpiderилиNetpeak Spider— они обходят сайт и формируют отчёт по всем кодам ответа, включая 400.
ВЯндекс.Вебмастереаналогичные данные доступны в разделе «Индексирование» → «Страницы в поиске» → «Исключённые страницы». Регулярный мониторинг этих отчётов позволяет выявлять проблемы до того, как они начнут влиять на видимость сайта в поиске.
Когда ошибка 400 критична для бизнеса и как её предотвратить
Не все ошибки 400 одинаково опасны для бизнеса. Критичность определяется тем, на каком этапе пользовательского сценария возникает сбой. Ошибка 400 при отправке формы заявки, оформлении заказа в корзине или при оплате — это прямая потеря лида или продажи. Ошибка на информационной странице блога — значительно менее критична.
Для профилактики рекомендуется настроить автоматический мониторинг HTTP-кодов ответа на ключевых URL: формах, страницах оформления заказа, API-эндпоинтах и посадочных страницах. Инструменты типа UptimeRobot, Zabbix или собственные скрипты на основе curl позволяют получать уведомления при появлении нестандартных кодов ответа. Регулярный краулинг сайта (еженедельно для крупных проектов) с помощью Screaming Frog или Netpeak Spider помогает выявлять новые ошибки 400 до того, как их обнаружат пользователи или поисковые роботы.
Отдельного внимания заслуживает тестирование после любых изменений конфигурации сервера, обновлений CMS или правил WAF. Именно в эти моменты чаще всего появляются массовые ошибки 400, которые могут оставаться незамеченными без автоматического контроля. Проверка синтаксиса конфигурационных файлов командамиnginx -tилиapachectl configtestперед применением изменений — обязательный минимум для любой производственной среды.