В работе веб приложения или при попытке перейти на сайт иногда возникают различные ошибки. Одной из них является ошибка 400, которая возвращает следующее сообщение: «request failed with status code 400». Разберём, что она означает, когда возникает и как с ней бороться.
Значение ошибки
К сожалению, в HTTP не выводятся полные тексты ошибок. Вместо этого подаются короткие числовые обозначения. Код «400-Bad Request» (дословно с английского – плохой запрос или ошибочный запрос) означает, что при взаимодействии с удалённым сервером возникла ошибка, которая связана с синтаксисом запроса. Увы, найти причину сложно, поскольку она может возникнуть, как на стороне клиента, так и на стороне сервиса. В добавок к этому её могут спровоцировать и промежуточные сервера. Поэтому потребуется решать проблему последовательным перебором причин.
Сторона клиента
Сразу проверим, не провоцируем ли мы неисправность «400-Bad Request» самостоятельно. Сделать это можно разными способами. Поданы они в порядке возрастания сложности. Но это не значит, что некоторые из пунктов не проверяются в пределах одного системного окна.
Адрес
Ошибка частая и самая элементарная. Возникает она при вводе некорректного адреса. Код «400» появится при переходе по ссылке из которой потерялся один из символов. Достаточно заново скопировать эту самую ссылку или сообщить на сайт (через обратную связь) о наличии проблемы.
Куки и кеш
Способ более глобальный и скорее хирургический. Требуется выполнить чистку согласно установленному браузеру. Причиной является выдача одинаковой локальной переменной нескольким пользователям. В целях обеспечения безопасности связь сбрасывается у обоих, вызывая ошибку «400-Bad Request». Можно вместо тщательного удаления куки и кеша просто нажать «CTRL+F5» — это принудительное обновление, которое очищает кеш и куки текущей страницы.
Перезапуск браузера и компьютера
По сути дублирует функцию «CTRL+F5», выполняя ту же функцию, но в более глубоком контексте. То есть вместо принудительно очистки проводит её в штатном режиме. Этот способ может сработать, если не помогло предыдущее действие.
Также стоит понимать, что ожидающие обновления система и браузер могут вызывать случайные сбои, поскольку требуется взаимодействовать именно с проблемными компонентами. Поэтому, если обновление запустилось – стоит попробовать перейти по нужному адресу снова.
Размер файла
Примечательно, что неисправность появится при попытке скачать или загрузить на сайт документ, который имеет большой размер. Чаще всего встречается на форумах, где стоит ограничение на размер файла при попытке запустить загрузку файла размером больше, чем указанный. Стоит попробовать другую ссылку на загрузку или другой файл.
Примечание! Иногда на странице выводится сообщение о слишком большом размере документа. Это по сути заменитель для таблички с ошибкой «400», просто ориентированный на пользователя.
Очистка DNS
Способ быстрый, но не рекомендуемый при открытом браузере. Выполняется в несколько простых нажатий.
- Запустить командную строку от имени администратора.
- Ввести команду «ipconfig /flushdns».
- Дождаться сообщения об успешном выполнении.
- Опционально: закрыть браузеры и повторить выполнение команды.
Прочие проблемы
Существует также ряд проблем, который устранить сложнее. Они имеют отношение к стороне пользователя, но не очевидны.
Вирусы
Некоторые вирусные программы пытаются производить переадресацию на свои странички или повреждают кеш и куки. Хорошая антивирусная программа может пропустить их, но блокировать их дальнейшую работу. В результате удаления вируса могут пострадать те самые файлы, поэтому потребуется много восстановительных работ:
- исправления реестра;
- исправления ярлыков;
- возможно переустановка браузеров;
- ручная чистка некоторых каталогов.
Проблемы провайдера
Встречаются чуть реже (крайне редко) и потому могут оказаться неожиданными и не подпадут под подозрение. Блокировка некоторых ресурсов возвращает иной код ошибок или просто переадресует пользователя на страницу с извещением о блокировке. А вот какие-то случайные сбои, аналогичные клиентским, но в масштабах провайдера будут давать код ошибки «400».
Увы, проверить это можно только с помощью команды «tracert», зная конечный сервер запроса. Что особо не поможет, если это сбой DNS у провайдера. Возможно, справиться с проблемой поможет подключение VPN.
Net Framework
Один из компонентов Windows может внести свою лепту как случайным сбоем, так и своим отсутствием. Требуется выполнить переустановку или установку новой версии этого самого компонента. Процедура недолгая, но отсутствие установочного пакета вместе с проблемами может привести к невозможности загрузки этого самого пакета.
Проблемы на стороне сервера
Если речь идёт о разработке приложения, которое взаимодействует с сервером, то искать причину ошибки 400 стоит и на самом сервере. Конечно, рядовых пользователей данный раздел не касается. Тут подана простейшая информация для тех, кто создаёт собственный сайт.
Заголовки
При создании программы или сайта нередко причиной неисправности являются заголовки. Например, сервер ожидает получения одного заголовка, а ему приходит другой. В таком случае стоит сверить клиентскую и серверную версии этих данных. Устранение различий приблизит решение.
Логи
Незаменимый инструмент – логи приложений. Они всегда хранятся на сервере и показывают, что прошло в штатном режиме, а что произошло не по плану. Изучение логов и устранение ошибок на которые они ссылаются – самая кропотливая и сложная работа. Но делать её нужно, чтобы избегать дальнейших сбоев.
Отладка кода
По сути вытекает из работы с логами. Первые показывают, что и как вызвало ошибку (не всегда, но хотя-бы дают понять откуда искать). А вот ручная отладка кода с постоянной сверкой с логами помогает вручную смоделировать неисправность и увидеть причину её появления. А дальше уже решать разработчику – удалить часть кода или писать исправление.