Risposta rapida
Cosa significa 401 Unauthorized vs 407 con un proxy?
Un 401 Unauthorized viene dal sito; un 407 dal proxy. Se fai scraping con proxy residenziali CrawlRelay e ottieni 401, il proxy ti ha accettato e il sito chiede il suo login o API key. Le credenziali proxy lì non servono. Correggi 407 nella URL del proxy e gestisci 401 secondo le regole del sito per i contenuti protetti.
401 Unauthorized vs 407 a colpo d'occhio
| Errore | 401 Unauthorized vs 407 |
|---|---|
| Tipo | Codice di stato HTTP (4xx, errore client) |
| Inviato da | Il sito target, mai il proxy |
| Definito in | RFC 9110, section 15.5.2 (compare 407: section 15.5.8) |
| Riprovarlo? | No. Un 401 richiede le credenziali per il sito stesso |
| Prima verifica | Controlla quale server lo ha inviato: il sito (401) o il proxy (407) |
Cosa significa 401 Unauthorized vs 407?
RFC 9110 accoppia questi codici. Un 401 porta un header WWW-Authenticate e chiede credenziali per il server originario. Un 407 porta un header Proxy-Authenticate e chiede credenziali per il proxy. Le risposte vanno in header diversi: Authorization per il sito e Proxy-Authorization per il proxy.
Confonderli è comune perché entrambi parlano di "autenticazione". Il modo più rapido è guardare il codice stato: 401 significa che sei passato dal proxy.
Com'è a 401 in Python, curl, Node.js e browser?
Lo stesso errore si presenta in modo diverso in ogni strumento. Questi sono i messaggi da cercare nei log:
- Python requests:
status_code == 401con headerWWW-Authenticate(sito) controProxyErrorcon 407 (proxy) - curl:
HTTP/2 401dopo unCONNECTriuscito (sito) controCONNECT tunnel failed, response 407(proxy) - API: un JSON come
{"message": "Unauthorized"}o un messaggio token invalido
Cosa causa a 401?
Probabilmente prima:
- La pagina o API richiede login o key. Lo chiede il sito, non il proxy.
- Credenziali proxy nel posto sbagliato, ad esempio un header
Authorizationper il proxy che il sito rifiuta. - Cookie o token di sessione scaduti in un flusso multi-step.
- Token legato a IP o regione, quindi un’exit nuova lo invalida.
Come diagnostico a 401 passo dopo passo?
- Conferma il codice: 401 è del sito, 407 del proxy.
- Fai il test curl qui sotto. Se vedi
HTTP/1.1 200 Connection establishedprima del 401, il proxy va bene. - Controlla se lo stesso URL richiede login in un browser normale.
- In un flusso multi-step, controlla se il 401 compare quando cambia l’IP exit.
# 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_URLCome risolvo a 401?
- Per problemi proxy (407) metti le credenziali nella URL proxy o nelle impostazioni proxy client, mai in un header
Authorization. - Per API pubbliche con key, registrati sul sito e invia la key come indicato.
- Per sessioni legate a IP, usa sessioni sticky per tutto il flusso.
- Per contenuti dietro login, rispetta i termini del sito prima di automatizzare. Fare scraping di account non tuoi o dati personali protetti è fuori dalla nostra Acceptable Use Policy.
Devo riprovare dopo a 401?
Non riprovare un 401 a occhi chiusi. Chiede qualcosa che la tua richiesta non ha. Aggiorna token o sessione se il tuo flusso ne ha uno, poi prova una volta. Ripetuti 401 significano contenuto non pubblico o accesso terminato.
Come si applica 401 Unauthorized vs 407 a CrawlRelay?
Un proxy HTTP segnala i problemi di credenziali suoi con 407 o tunnel fallito, non con 401. Se vedi 401 usando il gateway CrawlRelay, la richiesta ha raggiunto il sito, focalizzando il problema rapidamente.
Gateway: gw.crawlrelay.com, porta 7777 (HTTP, HTTPS tramite CONNECT) e porta 7778 (SOCKS5). Formato username: USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}. Correlato: 407 Proxy Authentication Required · 403 Forbidden · Sessions guide.
401 Unauthorized vs 407: domande frequenti dagli sviluppatori
Perché ricevo un 401 se la password proxy è corretta?
Perché 401 riguarda il sito, non il proxy. Il login proxy è andato a buon fine, e il sito vuole sue credenziali, tipo API key, cookie di login o token. Controlla la documentazione del sito. Se il contenuto è protetto da login non autorizzato, non automatizzarlo.
Una sessione sticky può risolvere errori 401?
A volte. Alcuni siti legano sessioni o token all’IP che li ha creati, quindi un’exit nuova invalida il token e il sito risponde 401. Tenere una sessione sticky per tutto il flusso evita questo. Non aiuta se servono credenziali che non hai.
Dove vanno le credenziali proxy in una richiesta HTTP?
Nell’header Proxy-Authorization che il client costruisce dalla parte user:password@ della URL proxy. Il sito non vede mai quell’header, perché il proxy lo rimuove. Le credenziali sito vanno nell’header Authorization o nel cookie che il proxy lascia passare senza modifiche.
Altri errori proxy in questo riferimento
Codici di stato HTTP
- 401 Unauthorized vs 407
- 403 Forbidden
- 407 Proxy Authentication Required
- 429 Too Many Requests
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
Errori del browser e client
Errori di connessione e TLS
Proxy residenziali con documentazione che copre i casi di errore
Proxy residenziali CrawlRelay da 0,50 USD/GB, traffico che non scade mai.