# 401 Unauthorized vs 407 Proxy Authentication Required

> 401 Unauthorized viene dal sito, 407 dal proxy. Come distinguerli in Python, curl e Node, e come correggere ciascuno.

- URL: https://crawlrelay.com/it/docs/errors/401-unauthorized/
- Ultimo aggiornamento: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

Codice di stato HTTP (4xx, errore client): il messaggio esatto in ogni strumento, le cause probabili in ordine e la soluzione che funziona.

**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

| Attributo | Valore |
| --- | --- |
| 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 == 401` con header `WWW-Authenticate` (sito) contro `ProxyError` con 407 (proxy)
- **curl:** `HTTP/2 401` dopo un `CONNECT` riuscito (sito) contro `CONNECT 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 `Authorization` per 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?

1. Conferma il codice: 401 è del sito, 407 del proxy.
2. Fai il test curl qui sotto. Se vedi `HTTP/1.1 200 Connection established` prima del 401, il proxy va bene.
3. Controlla se lo stesso URL richiede login in un browser normale.
4. In un flusso multi-step, controlla se il 401 compare quando cambia l’IP exit.

*Testa l'URL che fallisce con curl (porta HTTP, verbose)*

```bash
# 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:PASSWORD@gw.crawlrelay.com: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_URL
```

## Come 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](https://crawlrelay.com/it/docs/errors/407-proxy-authentication-required/) · [403 Forbidden](https://crawlrelay.com/it/docs/errors/403-forbidden/) · [Sessions guide](https://crawlrelay.com/it/docs/sessions/).

## 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

- [401 Unauthorized vs 407](https://crawlrelay.com/it/docs/errors/401-unauthorized/)
- [403 Forbidden](https://crawlrelay.com/it/docs/errors/403-forbidden/)
- [407 Proxy Authentication Required](https://crawlrelay.com/it/docs/errors/407-proxy-authentication-required/)
- [429 Too Many Requests](https://crawlrelay.com/it/docs/errors/429-too-many-requests/)
- [502 Bad Gateway](https://crawlrelay.com/it/docs/errors/502-bad-gateway/)
- [503 Service Unavailable](https://crawlrelay.com/it/docs/errors/503-service-unavailable/)
- [504 Gateway Timeout](https://crawlrelay.com/it/docs/errors/504-gateway-timeout/)
- [Cannot connect to proxy (ProxyError)](https://crawlrelay.com/it/docs/errors/cannot-connect-to-proxy/)
- [Connection reset by peer (ECONNRESET)](https://crawlrelay.com/it/docs/errors/connection-reset/)
- [ERR_PROXY_CONNECTION_FAILED](https://crawlrelay.com/it/docs/errors/err-proxy-connection-failed/)
- [ERR_TUNNEL_CONNECTION_FAILED](https://crawlrelay.com/it/docs/errors/err-tunnel-connection-failed/)
- [Read timed out (ReadTimeout)](https://crawlrelay.com/it/docs/errors/read-timeout/)
- [SOCKS5 proxy errors](https://crawlrelay.com/it/docs/errors/socks5-proxy-errors/)
- [SSL: CERTIFICATE_VERIFY_FAILED](https://crawlrelay.com/it/docs/errors/ssl-certificate-verify-failed/)
- [SSL: WRONG_VERSION_NUMBER](https://crawlrelay.com/it/docs/errors/ssl-wrong-version-number/)

**Proxy residenziali con documentazione che copre i casi di errore** Proxy residenziali CrawlRelay da 0,50 USD/GB, traffico che non scade mai. [Vedi i prezzi](https://crawlrelay.com/it/pricing/) · [Avvio rapido](https://crawlrelay.com/it/docs/)

---

CrawlRelay: CrawlRelay è un servizio di proxy residenziali rotanti e proxy mobili 4G/5G primo per sviluppatori: traffico pay-as-you-go senza scadenza da 0,50 USD/GB, pagato in crypto, senza caricamento documenti. Senza KYC — niente documento, selfie o altri documenti. Paga in crypto.
