Szybka odpowiedź
Co oznacza 401 Unauthorized vs 407 w kontekście proxy?
401 Unauthorized pochodzi ze strony; 407 z proxy. Jeśli scrapujesz przez CrawlRelay residential proxies i dostajesz 401, znaczy że proxy Cię zaakceptowało, a strona żąda logowania lub klucza API. Dane proxy tu nie pomogą. Napraw 407 w URL proxy i obsłuż 401 wg zasad strony.
401 Unauthorized vs 407 w skrócie
| Błąd | 401 Unauthorized vs 407 |
|---|---|
| Typ | Kod statusu HTTP (4xx, błąd klienta) |
| Wysłane przez | Celowa strona, nigdy proxy |
| Zdefiniowano w | RFC 9110, section 15.5.2 (compare 407: section 15.5.8) |
| Spróbować ponownie? | Nie. 401 żąda danych uwierzytelniających do samej strony |
| Najpierw sprawdź | Sprawdź, który serwer ją wysłał: strona (401) czy proxy (407) |
Co oznacza 401 Unauthorized vs 407?
RFC 9110 łączy te kody. 401 ma nagłówek WWW-Authenticate i wymaga danych uwierzytelniających dla serwera źródłowego. 407 ma nagłówek Proxy-Authenticate i wymaga danych proxy. Odpowiedzi są w różnych nagłówkach: Authorization dla strony i Proxy-Authorization dla proxy.
Często się mylą, bo oba dotyczą 'uwierzytelniania'. Najszybszym testem jest sam kod statusu: 401 oznacza przejście przez proxy.
Jak wygląda a 401 w Python, curl, Node.js i przeglądarkach?
Ten sam błąd wyświetla się inaczej w każdym narzędziu. Oto komunikaty, które warto wyszukać w logach:
- Python requests:
status_code == 401z nagłówkiemWWW-Authenticate(strona) kontraProxyErrorpokazujący 407 (proxy) - curl:
HTTP/2 401po poprawnymCONNECT(strona) kontraCONNECT tunnel failed, response 407(proxy) - API: JSON typu
{"message": "Unauthorized"}lub komunikat invalid-token
Co powoduje a 401?
Najczęściej na początku:
- Strona/API potrzebuje logowania lub klucza. To strona, nie proxy żąda.
- Dane proxy w niewłaściwym nagłówku, np. nagłówek
Authorizationdla proxy, który strona odrzuca. - Wygasłe ciasteczko sesji lub token w kilkuetapowym procesie.
- Token powiązany z IP lub regionem, więc nowe wyjście go unieważnia.
Jak krok po kroku zdiagnozować a 401?
- Potwierdź kod: 401 to strona, 407 to proxy.
- Wykonaj test curl poniżej. Jeśli przed 401 zobaczysz
HTTP/1.1 200 Connection established, proxy jest OK. - Sprawdź, czy ten sam URL wymaga logowania w normalnej przeglądarce.
- W kilkuetapowym procesie sprawdź, czy 401 zaczyna się od zmiany IP wyjścia.
# 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_URLJak naprawić a 401?
- W przypadku problemów z proxy (407), podaj dane uwierzytelniające w URL proxy lub ustawieniach klienta, nigdy w nagłówku
Authorization. - Dla publicznego API wymagającego klucza, zarejestruj się na stronie i wyślij klucz zgodnie z dokumentacją.
- Dla sesji powiązanych z IP, używaj sticky session dla całego przebiegu.
- Dla treści za logowaniem, sprawdź regulamin strony przed automatyzacją. Scrapowanie kont, których nie posiadasz, lub danych osobowych za logowaniami jest poza naszą polityką użytkowania.
Czy warto ponawiać próbę po a 401?
Nie ponawiaj 401 na ślepo. Żąda czegoś, czego Twoje zapytanie nie ma. Odśwież token lub sesję, jeśli przepływ ją wymaga, i spróbuj jeszcze raz. Powtarzające się 401 oznaczają brak dostępu lub zakończenie dostępu.
Jak 401 Unauthorized vs 407 odnosi się do CrawlRelay?
Proxy HTTP zgłasza własne problemy z danymi uwierzytelniającymi kodem 407 lub błędnym tunelem, nie 401. Jeśli widzisz 401 przez CrawlRelay, Twoje zapytanie doszło do strony, co szybko zawęża problem.
Gateway: gw.crawlrelay.com, port 7777 (HTTP, HTTPS przez CONNECT) i port 7778 (SOCKS5). Format nazwy użytkownika: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Powiązane: 407 Proxy Authentication Required · 403 Forbidden · Sessions guide.
401 Unauthorized vs 407: pytania, które zadają deweloperzy
Dlaczego mam 401 mimo prawidłowego hasła proxy?
Bo 401 dotyczy strony, nie proxy. Logowanie do proxy zadziałało, a strona żąda własnych danych, np. klucza API, ciasteczka lub tokenu. Zerknij w dokumentację strony. Jeśli treść jest chroniona, której nie masz prawa oglądać, nie automatyzuj.
Czy sticky session może naprawić błędy 401?
Czasami. Niektóre strony wiążą sesję lub token z IP, które go utworzyło, więc nowe wyjście unieważnia token i pojawia się 401. Sticky session dla całego procesu zapobiega temu. Nie pomaga, jeśli wymagana jest autoryzacja, której nie masz.
Gdzie podać dane proxy w żądaniu HTTP?
W nagłówku Proxy-Authorization, który klient wygeneruje z części user:password@ URL proxy. Strona nigdy tego nie widzi, bo proxy usuwa ten nagłówek. Dane strony idą w nagłówku Authorization lub ciasteczku, które proxy przekazuje bez zmian.
Inne błędy proxy w tym odniesieniu
Kody statusu HTTP
- 401 Unauthorized vs 407
- 403 Forbidden
- 407 Proxy Authentication Required
- 429 Too Many Requests
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
Błędy w przeglądarce i kliencie
Błędy połączenia i TLS
Proxy rezydencjalne z dokumentacją opisującą przypadki błędów
CrawlRelay proxy rezydencjalne od 0,50 USD/GB, ruch, który nigdy nie wygasa.