HTTPQUERY
Русский

407 Proxy Authentication Required

Применение

Когда приходит ошибка 407 Proxy Authentication Required, клиент понимает, что для доступа к запрошенному ресурсу через прокси нужны действительные учётные данные. Это похоже на ответ 401 Unauthorized, и клиент использует те же протоколы аутентификации.

Заголовок Proxy-Authenticate возвращается сервером, чтобы указать допустимые методы.

Влияние на SEO

Поисковые системы, такие как Google, не индексируют URL, возвращающий статус 407 Proxy Authentication Required. Ранее проиндексированные URL, которые возвращают этот код состояния, удаляются из результатов поиска.

Пример

Клиент запрашивает ресурс, и сервер отвечает 407 Proxy Authentication Required, указывая, что ресурс защищён прокси-сервером. Сервер сообщает о поддержке базовой авторизации. Клиент отвечает парой «имя пользователя:пароль» по протоколу базовой аутентификации, указанной в заголовке Proxy-Authorization. После этого сервер передаёт запрошенный ресурс.

Первоначальный запрос

GET /documents/tech-news HTTP/1.1
Host: example.com

Первоначальный ответ

HTTP/1.1 407 Proxy Authentication Required
Proxy-Authenticate: Basic realm="Documents"

Следующий запрос

GET /documents/tech-news HTTP/1.1
Host: example.com
Proxy-Authorization: Basic RXhhbXBsZTphaQ==

Итоговый ответ

HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Length: 25000

<PDF document included in message body>

Как исправить

Ответ 407 Proxy Authentication Required означает, что прокси-сервер требует действительные учётные данные, прежде чем переслать запрос.

Проверьте заголовок Proxy-Authenticate в ответе. Этот заголовок указывает требуемую схему аутентификации (Basic, Digest, NTLM, Negotiate). Приведите конфигурацию клиента в соответствие с ожидаемым методом. Изучите заголовок с помощью DevTools браузера или curl -v через прокси.

Настройте учётные данные прокси в клиенте. Задайте имя пользователя и пароль прокси в настройках прокси браузера, конфигурации приложения или переменных окружения. Для инструментов командной строки встройте учётные данные в URL прокси:

export HTTP_PROXY=http://user:pass@proxy:8080
export HTTPS_PROXY=http://user:pass@proxy:8080

Для программных HTTP-клиентов включайте учётные данные в заголовок Proxy-Authorization.

Проверьте имя пользователя и пароль прокси. Неверная или просроченная пара учётных данных вызывает эту ошибку. Уточните значения у сетевого администратора. Прокси с NTLM и Kerberos требуют учётных данных доменной учётной записи. Убедитесь, что включён префикс домена (например, DOMAIN\username).

Проверьте, нет ли перехвата прозрачным прокси. Некоторые корпоративные сети направляют весь трафик через прозрачный прокси без явной настройки клиента. Подключение к VPN или изменение сетевой политики вводит прокси-аутентификацию там, где её раньше не было. Проверьте системные настройки прокси (Windows: Internet Options, macOS: System Settings > Network > Proxies, Linux: /etc/environment или настройки прокси рабочего стола).

Очистите кэшированные учётные данные прокси. Браузеры и операционные системы кэшируют токены прокси-аутентификации. Устаревшие кэшированные учётные данные приводят к повторяющимся ответам 407 после смены пароля. Очистите кэш учётных данных (Credential Manager в Windows, Keychain Access в macOS).

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

Обратитесь к сетевому администратору за доступом к прокси. Корпоративные или ведомственные прокси требуют создания учётной записи. Запросите учётные данные доступа, подтвердите адрес и порт прокси и уточните используемую схему аутентификации.

Примеры кода

.NET

HttpStatusCode.ProxyAuthenticationRequired

Rust

http::StatusCode::PROXY_AUTHENTICATION_REQUIRED

Rails

:proxy_authentication_required

Go

http.StatusProxyAuthRequired

Symfony

Response::HTTP_PROXY_AUTHENTICATION_REQUIRED

Python3.5+

http.HTTPStatus.PROXY_AUTHENTICATION_REQUIRED

Java

java.net.HttpURLConnection.HTTP_PROXY_AUTH

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_PROXY_AUTHENTICATION_REQUIRED

Angular

@angular/common/http/HttpStatusCode.ProxyAuthenticationRequired