Kurze Antwort
Was bedeutet 401 Unauthorized vs 407 bei einem Proxy?
Ein 401 Unauthorized kommt von der Website; ein 407 vom Proxy. Wenn Sie durch CrawlRelay residential Proxies scrapen und 401 erhalten, hat der Proxy Sie akzeptiert, und die Website verlangt ihre eigenen Login-Daten oder einen API-Schlüssel. Proxy-Zugangsdaten helfen hier nicht. Beheben Sie 407 in Ihrer Proxy-URL und behandeln Sie 401 gemäß den Regeln der Website für deren geschützte Inhalte.
401 Unauthorized vs 407 auf einen Blick
| Fehler | 401 Unauthorized vs 407 |
|---|---|
| Typ | HTTP-Statuscode (4xx, Client-Fehler) |
| Gesendet von | Die Zielwebsite, niemals der Proxy |
| Definiert in | RFC 9110, section 15.5.2 (compare 407: section 15.5.8) |
| Noch einmal versuchen? | Nein. Ein 401 fordert Zugangsdaten für die Website selbst an |
| Zuerst prüfen | Prüfen Sie, welcher Server die Antwort sendet: die Website (401) oder der Proxy (407) |
Was bedeutet 401 Unauthorized vs 407?
RFC 9110 koppelt die beiden Codes. Ein 401 hat einen WWW-Authenticate Header und fordert Zugangsdaten für den Ursprungsserver. Ein 407 hat einen Proxy-Authenticate Header und fordert Zugangsdaten für den Proxy. Die Antworten stehen in unterschiedlichen Headern: Authorization für die Seite und Proxy-Authorization für den Proxy.
Verwechslungen sind häufig, weil beide „Authentifizierung“ sagen. Der schnellste Test ist der Statuscode selbst: 401 bedeutet, Sie kamen durch den Proxy.
Wie sieht a 401 in Python, curl, Node.js und Browsern aus?
Der gleiche Fehler wird in jedem Tool anders angezeigt. Hier sind die Meldungen, nach denen Sie in Ihren Logs suchen sollten:
- Python requests:
status_code == 401mit einemWWW-AuthenticateHeader (Website) vs. einemProxyErrormit 407 (Proxy) - curl:
HTTP/2 401nach erfolgreichemCONNECT(Website) vs.CONNECT tunnel failed, response 407(Proxy) - APIs: ein JSON-Body wie
{"message": "Unauthorized"}oder eine Invalid-Token-Meldung
Was verursacht a 401?
Wahrscheinlich zuerst:
- Die Seite oder API benötigt Login oder Schlüssel. Die Seite, nicht der Proxy, verlangt das.
- Proxy-Zugangsdaten an falscher Stelle, etwa ein
AuthorizationHeader für den Proxy, den die Seite ablehnt. - Ein abgelaufenes Session-Cookie oder Token in einem mehrstufigen Ablauf.
- Ein an IP oder Region gebundenes Token, sodass ein neuer Exit es ungültig macht.
Wie diagnostiziere ich a 401 Schritt für Schritt?
- Bestätigen Sie den Code: 401 für die Seite, 407 für den Proxy.
- Führen Sie den untenstehenden curl-Test aus. Wenn Sie
HTTP/1.1 200 Connection establishedvor dem 401 sehen, ist der Proxy in Ordnung. - Prüfen Sie, ob dieselbe URL in einem normalen Browser eine Anmeldung verlangt.
- Bei mehrstufigem Ablauf prüfen Sie, ob 401 auftritt, wenn sich die Exit-IP ändert.
# 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_URLWie behebe ich a 401?
- Bei Proxy-Problemen (407) setzen Sie Zugangsdaten in die Proxy-URL oder die Proxy-Einstellungen des Clients, nie in einen
AuthorizationHeader. - Für öffentliche APIs mit Schlüssel registrieren Sie sich bei der Seite und senden den Schlüssel wie dokumentiert.
- Bei an eine IP gebundenen Sessions verwenden Sie eine Sticky-Session für den gesamten Ablauf.
- Bei Login-geschützten Inhalten prüfen Sie die Nutzungsbedingungen der Seite, bevor Sie automatisieren. Scrapen von fremden Accounts oder persönlichen Daten hinter Logins verstößt gegen unsere Nutzungsbedingungen.
Soll ich nach a 401 einen erneuten Versuch starten?
Versuchen Sie nicht blind, einen 401 erneut. Er fordert etwas, das Ihre Anfrage nicht hat. Aktualisieren Sie Token oder Session, falls vorhanden, und versuchen Sie es einmal. Wiederholte 401 zeigen an, dass der Inhalt nicht öffentlich ist oder Ihr Zugriff beendet wurde.
Wie wirkt sich 401 Unauthorized vs 407 auf CrawlRelay aus?
Ein HTTP-Proxy meldet eigene Anmeldeprobleme mit 407 oder fehlgeschlagenem Tunnel, nicht mit 401. Wenn Sie bei Nutzung des CrawlRelay-Gateways 401 sehen, hat Ihre Anfrage die Website erreicht, was den Fehler schnell eingrenzt.
Gateway: gw.crawlrelay.com, Port 7777 (HTTP, HTTPS über CONNECT) und Port 7778 (SOCKS5). Benutzername im Format: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Verwandt: 407 Proxy Authentication Required · 403 Forbidden · Sessions guide.
401 Unauthorized vs 407: Fragen, die Entwickler stellen
Warum erhalte ich 401, obwohl mein Proxy-Passwort stimmt?
Weil 401 die Website betrifft, nicht den Proxy. Ihr Proxy-Login funktionierte, und die Seite verlangt eigene Zugangsdaten wie API-Schlüssel, Login-Cookie oder Token. Prüfen Sie die Dokumentation der Website. Ist der Inhalt hinter einem Login, für den Sie keine Berechtigung haben, automatisieren Sie nicht.
Kann eine Sticky-Session 401-Fehler beheben?
Manchmal. Manche Seiten binden eine Session oder ein Token an die IP, die es erzeugte. Ein neuer Exit macht das Token ungültig und die Seite antwortet mit 401. Eine Sticky-Session für den gesamten Ablauf vermeidet das. Bei Inhalten, die eigene Anmeldedaten benötigen, hilft das nicht.
Wo gehören Proxy-Zugangsdaten in eine HTTP-Anfrage?
Im Proxy-Authorization Header, den Ihr Client aus dem user:password@ Teil der Proxy-URL erzeugt. Die Website sieht diesen Header nie, da der Proxy ihn entfernt. Website-Zugangsdaten gehören in den Authorization Header oder ein Cookie, das der Proxy unverändert weitergibt.
Weitere Proxy-Fehler in diesem Leitfaden
HTTP-Statuscodes
- 401 Unauthorized vs 407
- 403 Forbidden
- 407 Proxy Authentication Required
- 429 Too Many Requests
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
Browser- und Clientfehler
Verbindungs- und TLS-Fehler
Residential-Proxys mit Dokumentationen, die Fehlerfälle abdecken
CrawlRelay Residential-Proxys von 0,50 $/GB, Traffic, der nie abläuft.