Réponse rapide
Que signifie 401 Unauthorized vs 407 avec un proxy ?
Un 401 Unauthorized vient du site ; un 407 vient du proxy. Si vous scrapez via les proxies résidentiels CrawlRelay et obtenez un 401, le proxy vous a accepté et le site demande sa propre connexion ou clé API. Les identifiants proxy ne servent pas là. Corrigez le 407 dans votre URL proxy, et gérez le 401 selon les règles du site pour son contenu protégé.
401 Unauthorized vs 407 en un coup d'œil
| Erreur | 401 Unauthorized vs 407 |
|---|---|
| Type | Code d'état HTTP (4xx, erreur client) |
| Envoyé par | Le site cible, jamais le proxy |
| Défini dans | RFC 9110, section 15.5.2 (compare 407: section 15.5.8) |
| Réessayer ? | Non. Un 401 demande des identifiants pour le site lui-même |
| Vérification initiale | Vérifiez quel serveur l'a envoyé : le site (401) ou le proxy (407) |
Que signifie 401 Unauthorized vs 407 ?
La RFC 9110 associe ces deux codes. Un 401 porte un en-tête WWW-Authenticate et demande des identifiants pour le serveur d'origine. Un 407 porte un en-tête Proxy-Authenticate et demande des identifiants pour le proxy. Les réponses vont dans des en-têtes différents aussi : Authorization pour le site et Proxy-Authorization pour le proxy.
Les confondre est courant car les deux parlent d'authentification. Le test le plus rapide est le code d'état lui-même: 401 signifie que vous êtes passé par le proxy.
À quoi ressemble a 401 en Python, curl, Node.js et navigateurs ?
La même erreur s'affiche différemment selon chaque outil. Voici les messages à rechercher dans vos logs :
- Python requests :
status_code == 401avec un en-têteWWW-Authenticate(site) contre unProxyErrormentionnant 407 (proxy) - curl :
HTTP/2 401après unCONNECTréussi (site) contre unCONNECT tunnel failed, response 407(proxy) - APIs : un corps JSON tel que
{"message": "Unauthorized"}ou un message de token invalide
Quelles sont les causes de a 401 ?
Probablement en premier lieu :
- La page ou l'API nécessitent une connexion ou une clé. C'est le site, pas le proxy, qui demande.
- Identifiants proxy au mauvais endroit, par exemple un en-tête
Authorizationdestiné au proxy, que le site rejette. - Un cookie de session ou token expiré dans un flux multi-étapes.
- Un token lié à une IP ou une région, donc une nouvelle sortie le rend invalide.
Comment diagnostiquer a 401 étape par étape ?
- Confirmez le code : 401 est le site, 407 est le proxy.
- Lancez le test curl ci-dessous. Si vous voyez
HTTP/1.1 200 Connection establishedavant le 401, le proxy est correct. - Vérifiez si la même URL demande une connexion dans un navigateur normal.
- Dans un flux multi-étapes, vérifiez si le 401 commence lorsque l'IP de sortie change.
# Use the URL that fails; with https://api.ipify.org instead, you test the gateway alone.
# "HTTP/1.1 200 Connection established" first, then the site's own status: the site answered.
curl -v -x http://USERNAME:[email protected]:7777 https://TARGET_URL
# Same test through the SOCKS5 port, with DNS resolved at the exit
curl -v --socks5-hostname gw.crawlrelay.com:7778 --proxy-user USERNAME:PASSWORD https://TARGET_URLComment résoudre a 401 ?
- Pour les problèmes de proxy (407), mettez les identifiants dans l'URL proxy ou les réglages proxy du client, jamais dans un en-tête
Authorization. - Pour une API publique nécessitant une clé, inscrivez-vous sur le site et envoyez sa clé comme documenté.
- Pour les sessions liées à une IP, utilisez une session sticky pour tout le flux.
- Pour le contenu derrière une connexion, vérifiez les conditions du site avant d'automatiser. Scraper des comptes qui ne vous appartiennent pas, ou des données personnelles derrière des connexions, est hors de notre politique d'utilisation acceptable.
Dois-je réessayer après a 401 ?
Ne retentez pas un 401 à l'aveugle. Il demande quelque chose que votre requête n'a pas. Rafraîchissez le token ou la session si votre flux en a une, puis essayez une fois. Plusieurs 401 répétés signifient que le contenu n'est pas public ou que votre accès est terminé.
Quelle est l'incidence de 401 Unauthorized vs 407 sur CrawlRelay ?
Un proxy HTTP signale ses propres problèmes d'identifiants avec 407 ou un tunnel raté, pas avec 401. Si vous voyez 401 en utilisant la gateway CrawlRelay, votre requête a atteint le site, ce qui restreint rapidement le problème.
Passerelle : gw.crawlrelay.com, port 7777 (HTTP, HTTPS via CONNECT) et port 7778 (SOCKS5). Format du nom d'utilisateur : USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Voir aussi : 407 Proxy Authentication Required · 403 Forbidden · Guide des sessions.
401 Unauthorized vs 407 : questions fréquentes des développeurs
Pourquoi ai-je un 401 alors que mon mot de passe proxy est correct ?
Parce qu'un 401 concerne le site, pas le proxy. Votre connexion proxy a fonctionné, et le site veut ses propres identifiants, comme une clé API, un cookie de connexion ou un token. Consultez la documentation du site. Si le contenu est derrière une connexion à laquelle vous n'avez pas droit, ne l'automatisez pas.
Une session sticky peut-elle corriger les erreurs 401 ?
Parfois. Certains sites lient une session ou un token à l'IP qui l'a créée, donc une nouvelle sortie invalide le token et le site répond 401. Garder une session sticky pour tout le flux évite cela. Cela ne sert pas si le contenu nécessite des identifiants que vous n'avez pas.
Où vont les identifiants proxy dans une requête HTTP ?
Dans l'en-tête Proxy-Authorization, que votre client construit à partir de la partie user:password@ de l'URL proxy. Le site ne voit jamais cet en-tête, car le proxy le supprime. Les identifiants pour le site vont dans l'en-tête Authorization ou un cookie, que le proxy laisse passer inchangé.
Autres erreurs de proxy dans cette référence
Codes d'état HTTP
- 401 Unauthorized vs 407
- 403 Forbidden
- 407 Proxy Authentication Required
- 429 Too Many Requests
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
Erreurs du navigateur et du client
Erreurs de connexion et TLS
Proxies résidentiels avec documentation couvrant les cas de défaillance
Proxies résidentiels CrawlRelay de 0,50 $US/GB, trafic sans expiration.