Стим код ошибки 400

Пишу бота для Steam на Python с помощью библиотеки steampy:
https://github.com/leoramme/steampy
Хочу получить словарь активных ордеров, используя метод get_my_market_listings()
Однако возвращается пустой словарь, а иногда и вовсе ошибка с кодом 400:

There was a problem getting the listings. http code: 400

НО:
Иногда он получает весь словарь с предметами, работает отлично, а иногда он выдаёт пустой словарь, хотя по факту там есть предметы на торговой площадке.
Сама реализация метода get_my_market_listings() в steampy/market:

@login_required
    def get_my_market_listings(self) -> dict:
        response = self._session.get("%s/market" % SteamUrl.COMMUNITY_URL)
        if response.status_code != 200:
            raise ApiException("There was a problem getting the listings. http code: %s" % response.status_code)
        assets_descriptions = json.loads(text_between(response.text, "var g_rgAssets = ", ";rn"))
        listing_id_to_assets_address = get_listing_id_to_assets_address_from_html(response.text)
        listings = get_market_listings_from_html(response.text)
        listings = merge_items_with_descriptions_from_listing(listings, listing_id_to_assets_address,
                                                              assets_descriptions)
        if '<span id="tabContentsMyActiveMarketListings_end">' in response.text:
            n_showing = int(text_between(response.text, '<span id="tabContentsMyActiveMarketListings_end">', '</span>'))
            n_total = int(text_between(response.text, '<span id="tabContentsMyActiveMarketListings_total">', '</span>'))
            if n_total > n_showing:
                url = "%s/market/mylistings/render/?query=&start=%s&count=%s" % (SteamUrl.COMMUNITY_URL, n_showing, -1)
                response = self._session.get(url)
                if response.status_code != 200:
                    raise ApiException("There was a problem getting the listings. http code: %s" % response.status_code)
                jresp = response.json()
                listing_id_to_assets_address = get_listing_id_to_assets_address_from_html(jresp.get("hovers"))
                listings_2 = get_market_sell_listings_from_api(jresp.get("results_html"))
                listings_2 = merge_items_with_descriptions_from_listing(listings_2, listing_id_to_assets_address,
                                                                        jresp.get("assets"))
                listings["sell_listings"] = {**listings["sell_listings"], **listings_2["sell_listings"]}

        return listings

В файле models.py есть класс SteamUrl:

class SteamUrl:
    API_URL = "https://api.steampowered.com"
    COMMUNITY_URL = "http://steamcommunity.com"
    STORE_URL = 'https://store.steampowered.com'

В интернете увидел, как кто-то избавился от ошибки, заменив протокол с https на http, но мне это не помогло.
Пробовал вызывать метод каждые 30 секунд, если не получилось расспарсить страницу, но он всё время возвращает пустой словарь.
Алгоритм работы метода: предварительно авторизовавшись в аккаунт переходит по ссылке https://steamcommunity.com/market/
на этой странице отображается первые 10 ордеров и кол-во страниц.
После того, как он прошелся по первым 10 предметам, он переходит по ссылкам вида
https://steamcommunity.com/market/mylistings/?quer…
(на этой странице отображается 100 ордеров)
Следующая страница открывается с параметром start=110 и count = 100
Я авторизован, поэтому, переходя по ссылке, мне отображается информация о предметах.
62ae48642b40d275858537.png
Когда он переходит по ссылке с параметром start = 1510 и выше, то вылетает ошибка 400
А бывает, что он дойдёт до конца и выведет целиком словарь предметов
Но ведёт он себя не предсказуемо

62ae495c48787205809378.png
Кто знает как избавиться от ошибки 400 в стиме?

Ошибка 400 Bad Request: что это означает и как ее исправить

Добрый день уважаемые читатели блога! Сегодня мы с вами поговорим о том, что такое ошибка 400 Bad Request, что данная ошибка означает и как ее исправить.

Ошибка 400 (Bad Request) (переводится с английского как «Неверный запрос») – это код ответа HTTP, который означает то, что сервер не смог обработать запрос, который был отправлен клиентом из-за неверного синтаксиса. Данные коды ответа HTTP являются сложным взаимоотношением между клиентом, веб-сайтом или веб-приложением, а также часто бывает, ошибка 400 возникает из-за нескольких сторонних веб-сервисов.

Поэтому, часто бывает так, что найти причину возникновения ошибки оказывается не самым лёгким занятием.

В статье мы с вами рассмотрим и разберём, что значит ошибка 400 Bad Request и как ее исправить.

Ошибка 400 на стороне сервера или на стороне клиента?

Все HTTP ошибки или коды ответа из категории 4xx являются ошибками на стороне пользователя. Когда появляется ошибка из категории 4xx, то это совсем не означает, что проблема локализуется на стороне клиента (пользователя интернета). Под клиентом имеется ввиду веб-браузер или какое-либо устройство (мобильный телефон, планшет) используемое для доступа к приложению.

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

Также, может быть такая ситуация, когда ошибка 400 Bad Request означает то, что запрос, который прислал пользователь интернета, был неверным по разным на то причинам.

Как пример, пользователь интернета может пытаться загрузить слишком большой файл, и как следствие, запрос может быть не верно сформирован, в результате чего, в браузере вам выведется код ответа 400 Bad Request. То есть, из-за прописанного в настройках лимита сервера по размеру загружаемого файла, возникает ошибка 400 сервера, так как запрос не был обработан и вернул код ответа 400.

Далее, мы с вами рассмотрим несколько сценариев (и возможные пути решения проблемы) ниже. Следует понимать, что мы не можем из цепочки взаимодействия исключить ни сервер, ни клиента в качестве идентификации источника возникшей ошибки 4xx.

В разбираемой нами ситуации, веб-сервер является сетевым объектом, которые генерирует ошибку 400 Bad Request и возвращает клиенту код ответа 4xx. Но не редко бывает так, что проблема локализуется на стороне клиента и он сам является источником появления ошибки 400.

Сделайте резервное копирование сайта (веб-приложения)

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

Если смотреть на стабильность работы сайта более глобально, то крайне рекомендую настроить периодические бэкапы на стороне хостинг сервера.

Еще более надёжный вариант – это создание бэкапа на хостинге с автоматической загрузкой в облако (Dropbox, Google Drive, Яндекс Диск).

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

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

Диагностика ошибки 400 bad request

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

Существует много вариантов, при которых ошибка 400 Bad Request может возникать в приложении. Давайте рассмотрим несколько наиболее популярных случаев:

Исправление проблем на стороне клиента

Идентифицировать, вследствие чего возникает ошибка 400 Bad Request лучше всего начать с разбора ситуации на стороне клиента. Давайте рассмотрим несколько советов как исправить ошибку 400, и что лучше всего стоит попробовать сделать в браузере или на вашем мобильной, или планшетом устройстве чтобы решить данную проблему.

Проверьте корректность URL-ссылки

Проверяйте URL-ссылки на спец символы или опечатки. Если вы ошиблись одной буквой или цифрой в URL-е, то вы веб-сервер вернет вам кол ответа 4xx. Поэтому, четкость введенного URL-а важный момент.

Очистите соответствующие куки

Одним из вариантов появления ошибки 400 Bad Request дублирующие или некорректные куки файлы в вами используемом браузере.

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

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

Бывает так, что те куки, которые хранят информацию о сессии вашего аккаунта могут в итоге начать конфликтовать с другими токенами сессий других пользователей. В итоге, вам или всем вполне вероятно будет выведена ошибка 400 Bad Request.

Как правило, все куки можно не удалять из используемого вами веб-браузера. Достаточно будет удалить куки файлы только того веб-сайта, который у вас выдал код ошибки 400.

Но если вы не особо знаете, как удалить куки выборочно, почистив куки только конкретного сайта, проще всего тогда почистить всю историю браузера, то есть очистить файлы куки в браузере всех сайтов.

Очистить куки файла в каждом браузере осуществляется немного по-своему.

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

Загрузка файла меньшего размера

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

Выйдите и войдите в свой аккаунт

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

Отладка на распространённых платформах

Если в качестве создания сайта вы используете известные движки сайтов (CMS), и после установки движка, в ходе эксплуатации скрипта, вы в какой-то момент увидели ошибку 400 Bad Request, изучите на официальном сайте скрипта, вследствие чего может появиться возникшая проблема.

На сегодняшний день, одни из самых распространённых движков сайтов является такие CMS системы как: Joomla, Drupal, WordPress. Что такое CMS сайта, читайте в отдельной подробной статье на данном блоге.

Вышеприведенные движки сайта довольно хорошо протестированы в своих базовых комплектациях. Как только вы начинаете ставить дополнительные расширения на движок сайта сторонних разработчиков, вполне возможно, что вы можете установить не совместимое с версией движка расширение, и тогда высока вероятность появления ошибки 400 Bad Request.

Откатите последние изменения

В административной панели движков как правило, появляется уведомление о появлении нового обновления движка. Если вы обновили движок сайта и появилась ошибка 400 Bad Request, то лучше всего сделать откат изменений назад, чтобы оперативно восстановить работу сайта, тем самым убрать ошибку 400 Bad Request.

Любые компоненты, модули и плагины сторонних разработчиков, установленные на сайт, могут также вызывать ошибки на стороне сервера. Поэтому откат установки расширений могут также помочь в устранении ошибки 4xx.

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

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

Удалите новые расширения, модули или плагины

Смотря какую CMS, выберете, суть каждого движка примерно одинаковая, но специфика компонентов будут различаться. Компоненты, модули, плагины позволяют расширить стандартные возможности движка.

Нужно понимать, что установленное расширение на движок может получить полный доступ к системе. Расширение может получить полный доступ к коду PHP, HTML, CSS, JavaScript или в mySQL базу данных.

Поэтому, рациональным решением, если после установки возникла ошибка 400 Bad Request, то стоит откатить последние изменения в движке. То есть, необходимо удалить последние установленные расширений на CMS.

Проверьте изменения в базе данных (MySQL)

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

Установленное расширение на CMS может внести записи в базе данных MySQL, которые были созданы сторонним расширением. В подобной ситуации, при удалении расширения из движка, записи в базе данных могут остаться.

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

Поиск проблем на стороне сервера

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

Проверка на неверные заголовки HTTP

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

Просмотрите логи

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

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

Отладьте код приложения или скриптов

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

Лучше всего тестировать и вносить какие-либо изменения вначале на резервной копии сайта или приложения, который выводил ошибку 400 Bad Request, чтобы не обрушить окончательно интернет проект.

Рекомендую всегда делать резервное копирование файлов базы данных сайта. В будущем резервные копии вашего проекта могут вам сэкономить много ваших нервов.

Если вы смогли выявить причину возникновения ошибки 400 Bad Request, и вы ее исправили, в будущем ситуация может повториться, и это будет сигнал к тому, чтобы в ваш проект внедрить функционал обработки ошибок, за счет которого вы сможете в автоматическом режиме обнаруживать появление ошибок и оперативно их исправлять.

На этом статья «Ошибка 400 Bad Request: что это означает и как ее исправить» подошла к своему завершению. Надеюсь, данный материал был вам полезен, и вы нашли для себя полезную информацию.

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

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

О шибка 400 Bad Request возникает, когда запрос, отправленный на сервер сайта, является неправильным или поврежденным, и сервер, получающий запрос, не может его понять. Иногда проблема возникает на самом веб-сайте, и Вы вряд ли сможете что-то сделать. Но большую часть времени проблема заключается в том, что Вы можете решить — возможно, Вы неправильно набрали адрес, или, может быть, Ваш кеш браузера вызывает проблемы. Вот некоторые решения, которые Вы можете попробовать.

Что такое ошибка 400 Bad Request

Ошибка 400 Bad Request возникает, когда сервер не может понять запрос, который был ему отправлен. Это называется ошибкой 400, потому что это код состояния HTTP, используемый веб-сервером для описания такой ошибки.

Ошибка 400 Bad Request может произойти из-за простой ошибки в запросе. Возможно, Вы ошибочно указали URL-адрес, и по какой-то причине сервер не может вернуть ошибку 404. Или, возможно, Ваш веб-браузер пытается использовать истекший или недействительный файл cookie. Некоторые серверы, которые не настроены должным образом, могут также вызывать ошибку 400 вместо более полезных ошибок в некоторых ситуациях. Например, при попытке загрузить файл, который слишком велик для некоторых сайтов, Вы можете получить ошибку 400 вместо ошибки, сообщающей Вам о максимальном размере файла.

Как и при ошибках 404 и 502, дизайнеры веб-сайтов могут настроить, как выглядит ошибка 400. Таким образом, Вы можете увидеть разные страницы ошибки 400 на разных сайтах. Веб-сайты также могут использовать несколько разных имен для этой ошибки. Например, Вы можете увидеть такие вещи, как:

Часто Вы можете сделать что-то, чтобы исправить ошибку 400, но выяснить, что именно может быть сложным из-за неопределенного характера ошибки. Вот некоторые вещи, которые Вы можете попробовать.

Обновите страницу

Обновление страницы всегда стоит того. Многократно ошибка 400 является временной, и простое обновление может помочь. Большинство браузеров используют клавишу F5 для обновления, а также предоставляют кнопку «Обновить» где-то в адресной строке. Это не часто исправляет проблему, но для ее выполнения требуется всего одна секунда.

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

Дважды проверьте адрес

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

Выполнить поиск

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

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

Это же решение также работает, если веб-сайт, который Вы пытаетесь достичь, изменил URL-адрес по какой-либо причине и не перенаправил старый адрес на новый.

И если на веб-сайте нет собственного окна поиска, Вы всегда можете использовать Google (или любую другую поисковую систему, которую Вы предпочитаете). Просто используйте оператор «site:» для поиска только соответствующего сайта для ключевых слов.

На изображении ниже мы используем Google и поисковую фразу «site:guidepc. ru локальная сеть» для поиска только сайта guidepc. ru по ключевым словам.

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

Очистите файлы cookie и кеш браузера

Многие веб-сайты (включая Google и YouTube) сообщают об ошибке 400, потому что куки, которые они читают, либо повреждены, либо слишком стары. Некоторые расширения браузера также могут изменять Ваши файлы cookie и вызывать ошибку 400. Также возможно, что Ваш браузер кэшировал поврежденную версию страницы, которую Вы пытаетесь открыть.

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

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

Очистите свой DNS

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

Проверьте размер файла

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

Попробуйте другие сайты

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

Перезагрузите компьютер и другое оборудование

Это решение является хитом и перезагрузка компьютера и особенно Вашего сетевого оборудования (маршрутизаторы, модемы) — это распространенный способ избавиться от множества ошибок сервера.

Связаться с веб-сайтом

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

Источники:

https://qwnet. ru/cms/795-oshibka-400-bad-request

https://guidepc. ru/services/chto-takoe-oshibka-400-bad-request-i-kak-ee-ispravit/

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

  • 7 июн 2023

  • 0

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

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

Иван Стуков

Журналист, изучает Python. Любит разбираться в мелочах, общаться с людьми и понимать их.

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

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

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

  • Что означает ошибка 400
  • Как её исправить на стороне пользователя
  • Как её исправить администратору сайта

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

На самом деле сетевые устройства ищут сайты не по 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 по умолчанию не кэшируется. Всё зависит от вашего дистрибутива и службы кэширования.

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

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

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

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

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

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

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

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

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

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

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

Научитесь: Профессия Веб-разработчик
Узнать больше

Ошибка стим 1:

OK = 1;
Все ОК


Ошибка обмена 2:

Fail = 2;
Нет какого то предмета в инвентаре. Скорее всего обмен принимается, нужно просто подождать, пока обмен примется.


Ошибка стим 3:

NoConnection = 3;
Не удалось подключение к сети


Ошибка стим 4:

k_EResultNoConnectionRetry = 4;
OBSOLETE — removed


Ошибка стим 5:

InvalidPassword = 5;
Не верный пароль


Ошибка стим 6:

LoggedInElsewhere = 6;
Тот же пользователь зарегистрирован в другом месте


Ошибка стим 7:

InvalidProtocolVer = 7;
Не верная версия протокола


Ошибка стим 8:

InvalidParam = 8;
Параметр неверен


Ошибка стим 9:

FileNotFound = 9;
Файл не найден


Ошибка стим 10:

Busy = 10;
Метод занят — действие не выполнено


Ошибка обмена 11:

InvalidState = 11;
Ошибка состояния обмена. Просто отправьте обмен еще раз.


Ошибка стим 12:

InvalidName = 12;
Некорректный логин


Ошибка стим 13:

InvalidEmail = 13;
Некорректная почта


Ошибка стим 14:

DuplicateName = 14;
Логин уже занят


Ошибка обмена 15:

AccessDenied = 15;
Обмен не может быть отправлен. Либо переполнен инвентарь, либо устарела ссылка на обмен, либо инвентарь скрыт, либо иная причина невозможности отправки.


Ошибка обмена 16:

Timeout = 16;
ТаймАут. Слишком долго выполнялась операция.


Ошибка стим 17:

Banned = 17;
Бан VAC


Ошибка стим 18:

AccountNotFound = 18;
Аккаунт не найден


Ошибка стим 19:

InvalidSteamID = 19;
Некорректный STEAMID


Ошибка обмена 20:

ServiceUnavailable = 20;
Стим упал. Остается либо ждать, либо повторять попытку…


Ошибка стим 21:

NotLoggedOn = 21;
Пользователь не в сети


Ошибка стим 22:

Pending = 22;
Запрос находится на рассмотрении (может быть в процессе, или в ожидании на третьей стороне)


Ошибка стим 23:

EncryptionFailure = 23;
Шифрование или дешифрование не удалось


Ошибка стим 24:

InsufficientPrivilege = 24;
Недостаточных прав


Ошибка стим 25:

LimitExceeded = 25;
Too much of a good thing


Ошибка стим 26:

Revoked = 26;
Access has been revoked (used for revoked guest passes)


Ошибка стим 27:

Expired = 27;
License/Guest pass the user is trying to access is expired


Ошибка стим 28:

AlreadyRedeemed = 28;
Guest pass has already been redeemed by account, cannot be acked again


Ошибка стим 29:

DuplicateRequest = 29;
Запрос уже был выполнен ранее.


Ошибка стим 30:

AlreadyOwned = 30;
All the games in this guest pass redemption request are already owned by the user


Ошибка стим 31:

IPNotFound = 31;
IP-адрес не найден


Ошибка стим 32:

PersistFailed = 32;
Не удалось записать изменения в базе данных


Ошибка стим 33:

LockingFailed = 33;
failed to acquire access lock for this operation


Ошибка стим 34:

LogonSessionReplaced = 34;


Ошибка стим 35:

ConnectFailed = 35;


Ошибка стим 36:

HandshakeFailed = 36;


Ошибка стим 37:

IOFailure = 37;


Ошибка стим 38:

RemoteDisconnect = 38;


Ошибка стим 39:

ShoppingCartNotFound = 39;
failed to find the shopping cart requested


Ошибка стим 40:

Blocked = 40;
a user didn’t allow it


Ошибка стим 41:

Ignored = 41;
target is ignoring sender


Ошибка стим 42:

NoMatch = 42;
nothing matching the request found


Ошибка стим 43:

AccountDisabled = 43;


Ошибка стим 44:

ServiceReadOnly = 44;
this service is not accepting content changes right now


Ошибка стим 45:

AccountNotFeatured = 45;
account doesn’t have value, so this feature isn’t available


Ошибка стим 46:

AdministratorOK = 46;
allowed to take this action, but only because requester is admin


Ошибка стим 47:

ContentVersion = 47;
A Version mismatch in content transmitted within the Steam protocol.


Ошибка стим 48:

TryAnotherCM = 48;
The current CM can’t service the user making a request, user should try another.


Ошибка стим 49:

PasswordRequiredToKickSession = 49;
You are already logged in elsewhere, this cached credential login has failed.


Ошибка обмена 50:

AlreadyLoggedInElsewhere = 50;
Скорее всего у Вас висят активные обмены, нужно их отменить. Только отменяйте по одному, не нажимайте кнопку отменить все, иначе Вы не сможете обмениваться в течении 7-ми дней. Если ошибка возникла при авторизации, то скорее всего Вы уже вошли в систему в другом месте, нужно подождать… Или перегрузить клиент.


Ошибка стим 51:

Suspended = 51;
Long running operation (content download) suspended/paused


Ошибка стим 52:

Cancelled = 52;
Operation canceled (typically by user: content download)


Ошибка стим 53:

DataCorruption = 53;
Operation canceled because data is ill formed or unrecoverable


Ошибка стим 54:

DiskFull = 54;
Operation canceled — not enough disk space.


Ошибка стим 55:

RemoteCallFailed = 55;
an remote call or IPC call failed


Ошибка стим 56:

PasswordUnset = 56;
PasswordNotSet = 56; obsolete ‘renamed to PasswordUnset’. Password could not be verified as it’s unset server side.


Ошибка стим 57:

ExternalAccountUnlinked = 57;
Attempt to logon from a PS3 failed because the PSN online id is not linked to a Steam account


Ошибка стим 58:

PSNTicketInvalid = 58;
PSN ticket was invalid


Ошибка стим 59:

ExternalAccountAlreadyLinked = 59;
PSN account is already linked to some other account, must explicitly request to replace/delete the link first


Ошибка стим 60:

RemoteFileConflict = 60;
The sync cannot resume due to a conflict between the local and remote files


Ошибка стим 61:

IllegalPassword = 61;
The requested new password is not legal


Ошибка стим 62:

SameAsPreviousValue = 62;
new value is the same as the old one ( secret question and answer )


Ошибка стим 63:

AccountLogonDenied = 63;
account login denied due to 2nd factor authentication failure


Ошибка стим 64:

CannotUseOldPassword = 64;
The requested new password is not legal


Ошибка стим 65:

InvalidLoginAuthCode = 65;
account login denied due to auth code invalid


Ошибка стим 66:

AccountLogonDeniedNoMail = 66;
AccountLogonDeniedNoMailSent = 66; obsolete ‘renamed to AccountLogonDeniedNoMail’. account login denied due to 2nd factor auth failure — and no mail has been sent


Ошибка стим 67:

HardwareNotCapableOfIPT = 67;


Ошибка стим 68:

IPTInitError = 68;


Ошибка стим 69:

ParentalControlRestricted = 69;
Operation failed due to parental control restrictions for current user


Ошибка стим 70:

FacebookQueryError = 70;
Facebook query returned an error


Ошибка стим 71:

ExpiredLoginAuthCode = 71;
Expired Login Auth Code


Ошибка стим 72:

IPLoginRestrictionFailed = 72;
IP Login Restriction Failed


Ошибка стим 73:

AccountLockedDown = 73;
AccountLocked = 73; obsolete ‘renamed to AccountLockedDown’. Account Locked Down


Ошибка стим 74:

AccountLogonDeniedVerifiedEmailRequired = 74;
Account Logon Denied Verified Email Required


Ошибка стим 75:

NoMatchingURL = 75;
No matching URL


Ошибка стим 76:

BadResponse = 76;
parse failure, missing field, etc.


Ошибка стим 77:

RequirePasswordReEntry = 77;
The user cannot complete the action until they re-enter their password


Ошибка стим 78:

ValueOutOfRange = 78;
the value entered is outside the acceptable range


Ошибка стим 79:

UnexpectedError = 79;


Ошибка стим 80:

Disabled = 80;


Ошибка стим 81:

InvalidCEGSubmission = 81;


Ошибка стим 82:

RestrictedDevice = 82;


Ошибка стим 83:

RegionLocked = 83;


Ошибка стим 84:

RateLimitExceeded = 84;


Ошибка стим 85:

AccountLoginDeniedNeedTwoFactor = 85;
AccountLogonDeniedNeedTwoFactorCode = 85; obsolete ‘renamed to AccountLoginDeniedNeedTwoFactor’


Ошибка стим 86:

ItemDeleted = 86;
ItemOrEntryHasBeenDeleted = 86; obsolete ‘renamed to ItemDeleted’


Ошибка стим 87:

AccountLoginDeniedThrottle = 87;


Ошибка стим 88:

TwoFactorCodeMismatch = 88;


Ошибка стим 89:

TwoFactorActivationCodeMismatch = 89;


Ошибка стим 90:

AccountAssociatedToMultiplePartners = 90;
AccountAssociatedToMultiplePlayers = 90; obsolete ‘renamed to AccountAssociatedToMultiplePartners’


Ошибка стим 91:

NotModified = 91;


Ошибка стим 92:

NoMobileDevice = 92;
NoMobileDeviceAvailable = 92; obsolete ‘renamed to NoMobileDevice’


Ошибка стим 93:

TimeNotSynced = 93;
TimeIsOutOfSync = 93; obsolete ‘renamed to TimeNotSynced’


Ошибка стим 94:

SMSCodeFailed = 94;


Ошибка стим 95:

AccountLimitExceeded = 95;
TooManyAccountsAccessThisResource = 95; obsolete ‘renamed to AccountLimitExceeded’


Ошибка стим 96:

AccountActivityLimitExceeded = 96;


Ошибка стим 97:

PhoneActivityLimitExceeded = 97;


Ошибка стим 98:

RefundToWallet = 98;


Ошибка стим 99:

EmailSendFailure = 99;


Ошибка стим 100:

NotSettled = 100;


Ошибка стим 101:

NeedCaptcha = 101;


Ошибка стим 102:

GSLTDenied = 102;


Ошибка стим 103:

GSOwnerDenied = 103;


Ошибка стим 104:

InvalidItemType = 104;


Ошибка стим 105:

IPBanned = 105;


Ошибка 400 Bad Request – это код ответа HTTP, который означает, что сервер не смог обработать запрос, отправленный клиентом из-за неверного синтаксиса. Подобные коды ответа HTTP отражают сложные взаимоотношения между клиентом, веб-приложением, сервером, а также зачастую сразу несколькими сторонними веб-сервисами. Из-за этого поиск причины появления ошибки может быть затруднён даже внутри контролируемой среды разработки.

В этой статье мы разберём, что значит ошибка 400 Bad Request (переводится как «Неверный запрос»), и как ее исправить

  • На стороне сервера или на стороне клиента?
  • Начните с тщательного резервного копирования приложения
  • Диагностика ошибки 400 Bad Request
  • Исправление проблем на стороне клиента
    • Проверьте запрошенный URL
    • Очистите соответствующие куки
    • Загрузка файла меньшего размера
    • Выйдите и войдите
  • Отладка на распространённых платформах
    • Откатите последние изменения
    • Удалите новые расширения, модули или плагины
    • Проверьте непреднамеренные изменения в базе данных
  • Поиск проблем на стороне сервера
    • Проверка на неверные заголовки HTTP
    • Просмотрите логи
  • Отладьте код приложения или скриптов

Все коды ответа HTTP из категории 4xx считаются ошибками на стороне клиента. Несмотря на это, появление ошибки 4xx не обязательно означает, что проблема как-то связана с клиентом, под которым понимается веб-браузер или устройство, используемое для доступа к приложению. Зачастую, если вы пытаетесь диагностировать проблему со своим приложением, можно сразу игнорировать большую часть клиентского кода и компонентов, таких как HTML, каскадные таблицы стилей (CSS), клиентский код JavaScript и т.п. Это также применимо не только к сайтам. Многие приложения для смартфонов, которые имеют современный пользовательский интерфейс, представляют собой веб-приложения.

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

Мы рассмотрим некоторые из этих сценариев (и потенциальные решения) ниже. Но имейте в виду: мы не можем однозначно исключить ни клиент, ни сервер в качестве источника проблемы. В этих случаях сервер является сетевым объектом, генерирующим ошибку 400 Bad Request и возвращающим её как код ответа HTTP клиенту, но возможно именно клиент ответственен за возникновение проблемы.

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

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

Ошибка 400 Bad Request означает, что сервер (удалённый компьютер) не может обработать запрос, отправленный клиентом (браузером), вследствие проблемы, которая трактуется сервером как проблема на стороне клиента.

Существует множество сценариев, в которых ошибка 400 Bad Request может появляться в приложении. Ниже представлены некоторые наиболее вероятные случаи:

  • Клиент случайно (или намеренно) отправляет информацию, перехватываемую маршрутизатором ложных запросов. Некоторые веб-приложения ищут особые заголовки HTTP, чтобы обрабатывать запросы и удостовериться в том, что клиент не предпринимает ничего зловредного. Если ожидаемый заголовок HTTP не найден или неверен, то ошибка 400 Bad Request – возможный результат.
  • Клиент может загружать слишком большой файл. Большинство серверов или приложений имеют лимит на размер загружаемого файла, Это предотвращает засорение канала и других ресурсов сервера. Во многих случаях сервер выдаст ошибку 400 Bad Request, когда файл слишком большой и поэтому запрос не может быть выполнен.
  • Клиент запрашивает неверный URL. Если клиент посылает запрос к неверному URL (неверно составленному), это может привести к возникновению ошибки 400 Bad Request.
  • Клиент использует недействительные или устаревшие куки. Это возможно, так как локальные куки в браузере являются идентификатором сессии. Если токен конкретной сессии совпадает с токеном запроса от другого клиента, то сервер/приложение может интерпретировать это как злонамеренный акт и выдать код ошибки 400 Bad Request.

Устранение ошибки 400 Bad Request (попробуйте позже) лучше начать с исправления на стороне клиента. Вот несколько советов, что следует попробовать в браузере или на устройстве, которые выдают ошибку.

Наиболее частой причиной ошибки 400 Bad Request является банальный ввод некорректного URL. Доменные имена (например, internet-technologies.ru) нечувствительны к регистру, поэтому ссылка, написанная в смешанном регистре, такая как interNET-technologies.RU работает так же, как и нормальная версия в нижнем регистре internet-technologies.ru. Но части URL, которые расположены после доменного имени, чувствительными к регистру. Кроме случаев, когда приложение/сервер специально осуществляет предварительную обработку всех URL и переводит их в нижний регистр перед исполнением запроса.

Важно проверять URL на неподходящие специальные символы, которых в нем не должно быть. Если сервер получает некорректный URL, он выдаст ответ в виде ошибки 400 Bad Request.

Одной из потенциальных причин возникновения ошибки 400 Bad Request являются некорректные или дублирующие локальные куки. Файлы куки в HTTP – это небольшие фрагменты данных, хранящиеся на локальном устройстве, которые используются сайтами и веб-приложениями для «запоминания» конкретного браузера или устройства. Большинство современных веб-приложений использует куки для хранения данных, специфичных для браузера или пользователя, идентифицируя клиента и позволяя делать следующие визиты быстрее и проще.

Но куки, хранящие информацию сессии о вашем аккаунте или устройстве, могут конфликтовать с другим токеном сессии от другого пользователя, выдавая кому-то из вас (или вам обоим) ошибку 400 Bad Request.

В большинстве случаев достаточно рассматривать только ваше приложение в отношении файлов куки, которые относятся к сайту или веб-приложению, выдающему ошибку 400 Bad Request.

Куки хранятся по принципу доменного имени веб-приложения, поэтому можно удалить только те куки, которые соответствуют домену сайта, сохранив остальные куки не тронутыми. Но если вы не знакомы с ручным удалением определённых файлов куки, гораздо проще и безопаснее очистить сразу все файлы куки.

Это можно сделать разными способами в зависимости от браузера, который вы используете:

  • Google Chrome;
  • Internet Explorer;
  • Microsoft Edge;
  • Mozilla Firefox;
  • Safari.

Если вы получаете ошибку 400 Bad Request при загрузке какого-либо файла, попробуйте корректность работы на меньшем по размеру файле, Это включает в себя и «загрузки» файлов, которые не загружаются с вашего локального компьютера. Даже файлы, отправленные с других компьютеров, считаются «загрузками» с точки зрения веб-сервера, на котором работает ваше приложение.

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

Также приложение может столкнуться с проблемой, связанной с вашей предыдущей сессией, являющейся лишь строкой, которую сервер посылает клиенту, чтобы идентифицировать клиента при будущих запросах. Как и в случае с другими данными, токен сессии (или строка сессии) хранится локально на вашем устройстве в файлах куки и передаётся клиентом на сервер при каждом запросе. Если сервер решает, что токен сессии некорректен или скомпрометирован, вы можете получить ошибку 400 Bad Request.

В большинстве веб-приложений выход повторный вход приводит к перегенерации локального токена сессии.

Если вы используете на сервере распространённые пакеты программ, которые выдают ошибку 400 Bad Request, изучите стабильность и функциональность этих платформ. Наиболее распространённые системы управления контентом, такие как WordPress, Joomla! и Drupal, хорошо протестированы в своих базовых версиях. Но как только вы начинаете изменять используемые ими расширения PHP, очень легко спровоцировать непредвиденные проблемы, которые выльются в ошибку 400 Bad Request.

Если вы обновили систему управления контентом непосредственно перед появлением ошибки 400 Bad Request, рассмотрите возможность отката к предыдущей версии, которая была установлена, как самый быстрый и простой способ убрать ошибку 400 bad request.

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

Но в некоторых случаях CMS не предоставляют возможности отката к предыдущим версиям. Так обычно происходит с популярными платформами, поэтому не бойтесь, если вы не можете найти простой способ вернуться к использованию старой версии той или иной программной платформы.

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

При этом имейте в виду, что расширения могут так или иначе получать полный контроль над системой, вносить изменения в код PHP, HTML, CSS, JavaScript или базу данных. Поэтому мудрым решением может быть удаление любых новых расширений, которые были недавно добавлены.

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

Расширение может изменить записи в базе данных, которые «не принадлежат» ему, а созданы и управляются другими расширениями (или даже самой CMS). В подобных случаях модуль может не знать, как откатить назад изменения, внесенные в записи базы данных.

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

Если вы уверены, что ошибка 400 Bad Request не связана с CMS, вот некоторые дополнительные советы, которые могут помочь найти проблему на стороне сервера.

Ошибка, которую вы получаете от приложения, является результатом недостающих или некорректных специальных заголовков HTTP, которые ожидает получить приложение или сервер. В подобных случаях нужно проанализировать заголовки HTTP, которые отправляются на сторону сервера.

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

Логи сервера относятся к оборудованию, на котором выполняется приложение, и зачастую представляют собой детали о статусе подключённых сервисов или даже о самом сервере. Поищите в интернете “логи [ИМЯ_ПЛАТФОРМЫ]”, если вы используете CMS, или “логи [ЯЗЫК_ПРОГРАММИРОВАНИЯ]” и “логи [ОПЕРАЦИОННАЯ_СИСТЕМА]”, если у вас собственное приложение, чтобы получить подробную информацию по поиску логов.

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

Создайте копию всего приложения на локальном устройстве для разработки и пошагово повторите тот сценарий, который приводил к возникновению ошибки 400 Bad Request. А затем просмотрите код приложения в тот момент, когда что-то пойдёт не так.

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

Возможно, вам также будет интересно:

  • Стим ошибка подтверждения продажи
  • Стив джобс про ошибки
  • Стим код ошибки 130 не удалось загрузить веб страницу неизвестная ошибка
  • Стим ошибка подключения не удалось подключиться к сети steam
  • Стереть ошибку подушки безопасности ниссан х трейл т31

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии