Код
#Руководства

Ошибка 400: что это такое и как её исправить

Рассказываем, почему запрос плохой и как сделать его хорошим.

Иллюстрация: Оля Ежак для Skillbox Media

Когда мы заходим на сайт, браузер отправляет ему HTTP-запрос. Если всё хорошо, то сервер присылает в ответ нужную страницу.

Но иногда что-то идёт не так и вместо веб-страницы мы получаем сообщение 400 Bad Request. Так происходит, когда браузер отправил серверу не то, что тот ожидал увидеть. При этом проблема не всегда на стороне пользователя — дело может быть и в неправильных настройках сайта.

Из этой статьи вы узнаете:


Что означает ошибка 400

Сообщение «400 Bad Request» (в переводе «неправильный запрос») буквально означает, что сервер не понял, что от него хотят. Он получил запрос, но не может его обработать.

Bad Request появляется по двум глобальным причинам:

  • В запросе есть ошибка. В таком случае проблема на стороне пользователя. Нужно найти ошибку и исправить.
  • Запрос корректен, но сайт почему-то не может его обработать. Это более редкий случай, и решать проблему нужно администратору сайта.

Теперь подробно о том, что с этим делать рядовому пользователю и администратору сайта.

Как исправить ошибку 400 Bad Request на стороне пользователя

В первую очередь зайдите на сайт с другого устройства. Идеально, если оно будет подключено к другому роутеру или сетевому коммутатору. В случае, если другой сети поблизости нет, перезагрузите роутер — иногда это помогает.

Если после описанных действий сайт открылся, значит, проблема возникла на вашей стороне. Проверьте самые распространённые причины:

  • URL-адрес введён с ошибкой;
  • в кэше или cookies браузера сохранились неверные данные;
  • вы пытаетесь загрузить на сайт слишком большой файл;
  • программы на вашем компьютере меняют запрос к сайту (возможно, это вирусы);
  • в DNS-кэше хранятся неверные данные.

Пройдёмся по каждой причине.

Ошибка в URL-адресе

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

Также попробуйте найти эту страницу в одном или нескольких поисковиках: обычно в них указаны правильные ссылки.

Ошибка в кэше или cookies браузера

Когда вы путешествуете по интернету, браузер автоматически сохраняет данных о ваших действиях в кэше и cookies. Они могут устареть или вступить друг с другом в конфликт.

Зайдите в настройки браузера, очистите кэш и cookies. Ещё это можно сделать программой для очистки компьютера (например, CCleaner).

Вы пытаетесь загрузить слишком большой файл

Почти у каждого сайта установлен предельный размер файла, который можно на него загрузить. Если размер превышает допустимый предел, это может вызвать ошибку 400. Следовательно, чтобы исправить ошибку, попробуйте сжать файл и повторить загрузку.

Программ на компьютере изменяют запрос

Некоторые программы могут вмешиваться в работу вашего браузера и изменять запросы. Это могут быть вирусы, антивирусы, приложения от вполне добросовестных поставщиков и даже встроенные программы операционной системы. Проверить стоит все варианты:

  • Установите антивирус и просканируйте устройство. Вредоносная программа могла использовать ваш запрос для кибератаки.
  • Если доверяете сайту, на который хотите попасть, временно отключите антивирус. Возможно, это он блокирует страницу. Попробуйте отключить брандмауэр или добавить браузер в список его исключений.
  • Обновите драйверы для сетевых устройств — они могли устареть.

На самом деле есть куда больше вариантов того, что на компьютере могло помешать запросу. Если у вас Windows, может помочь удаление и переустановка .NET. Также можно попробовать обновить операционную систему или просканировать системные файлы на ошибки.

Неверные данные в DNS-кэше

На самом деле сетевые устройства ищут сайты не по URL, а по IP-адресам. Информация о том, какой URL соответствует какому IP, хранится на DNS-серверах. Чтобы не обращаться к DNS-серверам за одними и теми же IP, компьютер кэширует их.

Если сайт сменил IP-адрес, а в кэше остались устаревшие данные, это может вызвать ошибку 400. Решение — очистить DNS-кэш. Способ зависит от операционной системы.

В Windows

  • Нажмите Win + R.
  • В открывшемся приложении введите cmd.exe или powershell.
  • Введите команду ipconfig /flushdns и нажмите Enter.

В macOS

  • Нажмите Command + Пробел.
  • Введите «Терминал» и откройте найденное приложение.
  • Введите команду sudo killall -HUP mDNSResponder и нажмите Enter.

В Linux DNS по умолчанию не кэшируется. Всё зависит от вашего дистрибутива и службы кэширования.

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

Как исправить ошибку 400 Bad Request на стороне сервера

Привести к ошибке Bad Request может и неправильная работа сайта или приложения. Здесь тоже есть целый ряд возможных причин. Имеет смысл проверить логи: вполне вероятно, что ответ вы сможете найти в них.

Некорректные требования к HTTP-заголовкам

Если в требованиях к HTTP-заголовкам есть ошибка, то сервер может воспринимать верные запросы как ошибочные. Более того, каких-то важных заголовков в настройках сервера может вовсе не быть.

Проверьте эти требования и удостоверьтесь, что они прописаны правильно.

CMS и плагины вызывают ошибку

Если ошибка появилась после обновления CMS, установки или обновления нового плагина, то проблема можно крыться в этом.

Чтобы ничего не потерялось, сделайте резервную копию данных. Затем откатите CMS и плагины до старой версии и удалите новые плагины.

Изменена база данных

Если проблема в плагинах, то их откат или удаление не всегда помогает. Во время работы они могли внести изменения в базу данных, которые и нарушили работу сайта.

Базу данных придётся просматривать вручную: ищите записи, на которые могли повлиять проблемные плагины.

Ошибки в коде

Зачастую проблема возникает из-за ошибки в скрипте. В таком случае порядок решения стандартный:

  • запустите дебаггер;
  • воспользуйтесь автотестами;
  • просмотрите код вручную, запустите его по частям;
  • исправьте проблемную функцию;
  • залейте изменения на продакшн-сервер.

Проблема на стороне хостинг-провайдера

Если ни один из способов не помог, обратитесь к своему хостинг-провайдеру — возможно дело в нём. А даже если это не так, служба техподдержки поможет вам починить сайт или приложение.

Больше интересного про код — в нашем телеграм-канале. Подписывайтесь!

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия Python-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована