Что такое код ошибки HTTP 505 и как его исправить в 2026 году?
Краткая информация
Ошибка 505 означает "Версия HTTP не поддерживается" — сервер отклонил версию HTTP, указанную в строке запроса, что обычно не связано с конкретной страницей, которую вы пытались загрузить.
Документированные технические причины — это некорректная строка запроса, строка запроса, завершенная неправильным окончанием строки, или промежуточный узел (прокси или балансировщик нагрузки), который неправильно обрабатывает пересылаемый запрос перед его достижением исходного сервера.
В качестве посетителя обновление или смена браузера и очистка его кэша решает большинство ошибок 505 на стороне клиента, поскольку устаревший клиент может отправлять версию, которую современные серверы больше не принимают.
В качестве администратора сервера решение обычно заключается в конфигурации вашего обратного прокси или веб-сервера — директива proxy_http_version в nginx и настройка force-proxy-request-1.0 в Apache обе контролируют, какая версия HTTP достигает вашей серверной части.
Прокси или балансировщик нагрузки, находящийся между клиентом и вашим исходным сервером, является документированной причиной возникновения ошибок 505, поэтому исключение этого уровня перед изменением кода приложения экономит время на отладку.
Ошибка 505 отличается от ошибок шлюза 502, 503 или 504 и от ответа 426 Требуется обновление, хотя все они происходят со стороны сервера.
Что означает ошибка HTTP 505
Ответ HTTP 505 означает, что сервер отказался обрабатывать запрос, потому что не поддерживает версию HTTP, объявленную в запросе. Это более узкая ошибка, чем большинство кодов состояния, которые браузер или HTTP-прокси могут выдать, поскольку она касается самого протокольного оболочки, а не аутентификации, пределов частоты или запрашиваемого ресурса. Согласно справочнику кодов состояния HTTP MDN, "код состояния ошибки сервера HTTP 505 Версия HTTP не поддерживается указывает на то, что версия HTTP, используемая в запросе, не поддерживается сервером." Это формулировка важна: 505 — это утверждение о протокольной оболочке запроса, а не о URL, содержимом страницы или (обычно) вашей учетной записи или разрешениях. Видеть 505 не означает, что сайт недоступен, как это может подразумевать ошибка 404 или 500 — это означает, что что-то на пути между вашим клиентом и сервером отправило запрос, который сервер не смог распознать как версию, которую он принимает.
Попробуйте Nstproxy - Начните бесплатный тест сегодня
Почему серверы действительно возвращают 505?
Три технические ситуации вызывают этот ответ, и MDN документирует все три напрямую. Некорректная строка запроса — например, не закодированное пробел, где должен быть URL %20 — может запутать, как сервер разбирает токен версии HTTP, который следует за ним. Строка запроса, завершающаяся простым \n, вместо требуемого \r\n, может иметь тот же эффект, поскольку анализатор сервера ищет конкретное окончание строки перед тем, как прочитать версию. Третья причина — это то, что часто пропускается: промежуточный узел, такой как балансировщик нагрузки или прокси, который неправильно передает информацию о версии в строке запроса, которую он передает, оставляя исходный сервер, читающим версию, которая на самом деле никогда не была отправлена клиентом.
Общие причины, которые стоит сначала исключить
На практике несколько повседневных ситуаций составляют большинство ошибок 505, о которых сообщают посетители сайтов и разработчики. Устаревший браузер или библиотека HTTP-клиента, которые все еще отправляют запросы в устаревшем формате — один из более распространенных триггеров, особенно с автоматизированными сценариями или старыми SDK, которые не обновлялись годами. Неправильно настроенный веб-сервер — тот, который полностью отклоняет HTTP/1.0, или с виртуальным хостом, указывающим на неправильный обработчик протокола — это еще один пример. Устаревшее серверное программное обеспечение, предшествующее широкому поддерживанию HTTP/1.1 или HTTP/2, также может это вызывать. Четвертое, и на чем этот справочник уделяет больше всего внимания, — это прокси или промежуточный узел, изменяющий версию HTTP во время передачи, что точно совпадает с третьей причиной, изложенной в MDN.
Быстрый взгляд
Если вы получаете несогласованные ошибки 505 во время отправки запросов через ротационный прокси-пул, сам прокси может быть тем, кто портит вашу строку запроса — шлюз Nstproxy использует стандартный HTTP(S) и SOCKS5, а не реализацию пользовательского протокола, так что это не переменная, которую вам нужно отлаживать.
Начните с вашего браузера, так как это самое быстрое, что можно изменить и исключить. Обновите его до последней версии, так как производители браузеров периодически прекращают поддержку или изменяют способ, которым они обрабатывают более старое поведение HTTP, и устаревшая версия является одним из задокументированных триггеров. Если обновление не помогает, попробуйте тот же URL в совершенно другом браузере — если второй браузер загружает страницу нормально, проблема специфична для конфигурации вашего оригинального браузера или расширения, а не для сайта. Затем очистите кэш браузера, так как кэшированная, искаженная версия запроса или устаревший сервис-воркер могут случайно повторно отправить поврежденную строку запроса при повторных посещениях. Наконец, дважды проверьте сам URL на наличие лишних символов, особенно не закодированных пробелов или необычной пунктуации, вставленной откуда-то еще, поскольку искаженная строка запроса является одной из трех причин, которые документирует MDN.
Как исправить ошибку 505 на вашем сервере
Если вы администрируете сервер, исправление почти всегда заключается в настройке конфигурации, а не в коде приложения. В nginx проверьте директиву proxy_http_version в любом блоке location или server, который проксирует на бэкенд — собственная документация nginx указывает синтаксис как proxy_http_version 1.0 | 1.1 | 2;, с установившимся значением по умолчанию 1.1 с версии nginx 1.29.7 (версии до этого по умолчанию использовали 1.0). Если ваш бэкенд говорит только на HTTP/1.1, а ваша сборка nginx устарела, явное proxy_http_version 1.1; в соответствующем блоке убирает двусмысленность:
В Apache соответствующими контрольными точками являются две переменные окружения mod_proxy, установленные с помощью SetEnv. Собственная документация mod_proxy Apache описывает force-proxy-request-1.0, которая "заставляет прокси использовать HTTP/1.0 без keepalive" к бэкенду и предназначена для бэкендов, которые неправильно реализуют HTTP/1.1 или keepalive, а также proxy-nokeepalive, которая отключает keepalive-соединения с бэкендом без принуждения к HTTP/1.0. Документация Apache показывает их вместе следующим образом:
Если у вас есть балансировщик нагрузки или CDN перед основным сервером, проверьте его настройки версии HTTP — ошибка 505, которая появляется только через балансировщик нагрузки и не возникает, когда вы обращаетесь к хосту напрямую, однозначно указывает на то, что этот посредник переписывает или неправильно сообщает строку запроса.
505 против других кодов ошибок HTTP
Ошибка 505 легко спутать с другими серверными ошибками, но каждая из них указывает на что-то другое. Ошибки 502 Bad Gateway или 504 Gateway Timeout означают, что промежуточный сервер достиг бэкенда и получил либо недействительный ответ, либо не успел ответить — версия протокола не была проблемой, проблемы с подключением или обработкой ответа были основными. Ошибка 503 Service Unavailable обычно сигнализирует, что сервер намеренно отказывает в запросах, часто по причинам обслуживания или из-за перегрузки, при этом несоответствие версии вообще отсутствует. Ошибка 429 Too Many Requests отличается: это ограничение по количеству запросов, а не несогласие по протоколу, и исправление (распределение или разрежение запросов) не имеет ничего общего с исправлением 505. Ошибка 426 Upgrade Required является ближе: она также касается согласования версий HTTP, но это сервер просит клиента переключиться на более новую версию, а не отказывает в запросе вовсе, и обычно сопровождается Upgrade заголовком, указывающим нужную версию. Знание того, с чем вы на самом деле имеете дело, помогает сузить исправления, прежде чем вы коснетесь какой-либо конфигурации.
Когда прокси является истинной причиной
Если ошибка 505 возникает конкретно, когда запросы проходят через прокси, VPN или балансировщик нагрузки — а не когда тот же запрос идет напрямую к источнику — очень вероятно, что промежуточный сервер искажает строку запроса, точно так же, как описывает третья задокументированная причина MDN. Изолируйте это, выполнив один и тот же запрос дважды: один раз через прокси и один раз напрямую, или воспользуйтесь инструментом проверки прокси, чтобы подтвердить, что сам прокси отвечает и перенаправляет правильно, прежде чем предполагать, что ответственный сервер виноват. Это особенно важно для тех, кто выполняет автоматические запросы в больших объемах, где ненадежный или плохо построенный прокси может вводить ошибки несоответствия версий, которые выглядят так, будто они исходят от целевого сайта.
Линия Residential Lite от Nstproxy — это один из вариантов для данной конкретной ситуации. Это сервис резидентских прокси, который поддерживает стандартные HTTP(S) и SOCKS5 протоколы, а не специализированную или частичную реализацию, поэтому запросы, направляемые через него, следуют той же версии переговоров, которую ожидает любой современный клиент или обратный прокси. Он нацелен на разработчиков и небольшие команды, занимающиеся скрапингом, мониторингом или автоматизацией, которым необходимо исключить прокси как переменную, когда в конвейере запросов возникают неполадки, такие как непостоянные 505 или подобные ошибки. Доступ продается в предоплаченных пакетах данных, а не по фиксированной месячной подписке, что лучше подходит для короткого отладочного сеанса или умеренного использования, чем для непрерывного высокообъемного трафика. Стоит знать, что Residential Lite — это одна из нескольких продуктовых линий, предлагаемых Nstproxy, поэтому рабочая нагрузка, требующая выделенного статического IP или IP адресов мобильных операторов, должна рассмотреть другую линейку.
Поддержка стандартных HTTP(S) и SOCKS5 — те же два семейства протоколов, которые уже ожидает ChromeOS, большинство библиотек HTTP-клиентов и обратные прокси, такие как nginx, так что нет необходимости отлаживать слой преобразования нестандартных протоколов.
50M+ резидентских IP адресов в более чем 200 странах и регионах — полезно, когда основная задача заключается в распределении большого числа запросов, а не только в совместимости протоколов.
Предоплаченные пакеты от 10GB до 10TB — рассчитаны на тестирование исправлений на небольшом пакете перед тем, как переходить к постоянным объемам.
Шлюз, генерируемый для каждой учетной записи — вы получаете единую, стабильную точку подключения для направленных запросов, что упрощает изоляцию источника ошибки — ваш код, прокси или сервер назначения; шаги по настройке документированы для указания HTTP-клиента или браузера на этот шлюз.
Ошибка 505 уже несколько ограниченная, чем кажется: это конкретно несогласие по версии протокола HTTP между клиентом, любым промежуточным узлом и сервером, а не общий сигнал "что-то сломалось". Посетители обычно могут устранить её, обновив или сменив браузеры и проверив URL на наличие лишних символов. Администраторы серверов должны проверить proxy_http_version на nginx или переменные окружения force-proxy-request-1.0/proxy-nokeepalive на Apache до того, как предположить, что проблема в коде приложения, и любой, кто отправляет запросы через прокси или балансировщик нагрузки, должен протестировать прямой запрос к источнику, чтобы выяснить, является ли промежуточный узел реальным источником проблемы.
Нет, ошибка 505 конкретно означает, что сервер отклонил версию HTTP, указанную в запросе, что является более узкой проблемой, чем недоступность или перегруженность сервера, и не обязательно указывает на то, что сайт недоступен для других посетителей.
В: Является ли ошибка 505 следствием проблем с моим компьютером или с сайтом?
Это может быть с любой стороны: MDN документирует некорректные строки запроса и неправильное завершение строки (обычно проблема на стороне клиента) вместе с неправильной обработкой промежуточным узлом перенаправленного запроса (проблема на стороне сервера или сети), поэтому решение зависит от того, с чем из двух вы имеете дело.
В: В чем разница между ошибками 505 и 502 или 503?
Ошибка 505 касается совместимости версий HTTP, в то время как ошибка 502 означает, что промежуточный узел получил недопустимый ответ от бэкенда, а 503 означает, что сервер целенаправленно отказывается обрабатывать запросы, как правило, для обслуживания или перегрузки, без задействования несоответствия версий в обоих случаях.
В: Может ли прокси или VPN вызвать ошибку 505?
Да — MDN перечисляет промежуточный узел, который неправильно обрабатывает перенаправленную строку запроса, как одну из трех документированных причин, поэтому если ошибка 505 возникает только тогда, когда трафик проходит через прокси, балансировщик нагрузки или VPN, а не при прямом запросе, то этот промежуточный узел является наиболее вероятным источником.
В: Нужно ли изменять код сервера для исправления ошибки 505?
Обычно нет; решение, как правило, заключается в изменении конфигурации — директива proxy_http_version в nginx или настройки force-proxy-request-1.0/proxy-nokeepalive в Apache — а не в изменении кода приложения.
Marcus Chen
Aug. 6th 2026
110M+ реальных IP с 99.9% успешных доступов
Средний отклик ~0.5с для задач высокой конкуренции
Всего от $0.1/GB
Мгновенный доступ к премиальным residential, datacenter, IPv6 и ISP пулам.