Senza KYC — niente documento, selfie o altri documenti. Paga in crypto: BTC, USDT, USDC, ETH, SOL, LTC
Lingua: Italiano
Inizia ora

Riferimento errori proxy · Errori di connessione e TLS

Read timeout tramite un proxy: cause e timeout sensati

Timeout client: il messaggio esatto in ogni strumento, le cause probabili in ordine e la soluzione che funziona.

Ultimo aggiornamento: · 4 minuti di lettura

Risposta rapida

Cosa significa Read timed out (ReadTimeout) con un proxy?

Read timeout significa che il client ha aspettato più del suo timeout di lettura i prossimi byte della risposta. Attraverso proxy residenziali CrawlRelay, il ritardo solitamente dipende da un target lento o da un'uscita domestica lenta. Imposta timeout separati di connessione e lettura, circa 10 e 30-60 secondi per pagine HTML, e ritenta una richiesta scaduta una volta con una nuova uscita.

Read timed out (ReadTimeout) a colpo d'occhio

ErroreRead timed out (ReadTimeout)
TipoTimeout client
Inviato daIl tuo client HTTP, quando non arrivano dati entro il timeout di lettura
Definito inClient setting, no protocol status
Riprovarlo?Sì, una o due volte su un nuovo exit
Prima verificaConfronta il tuo timeout di lettura con il normale tempo di risposta del target

Cosa significa Read timed out (ReadTimeout)?

I client hanno di solito due timer. Il timeout di connessione limita il tempo che il client attende per aprire la connessione al proxy. Il timeout di lettura limita il tempo che attende tra i byte una volta inviata la richiesta. Un read timeout significa che la connessione ha funzionato ma la risposta è stata troppo lenta.

Senza timeout espliciti, alcuni client aspettano indefinitamente. In Python requests il timeout non è impostato di default, quindi una singola richiesta bloccata può congelare un worker.

Com'è a read timeout 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: ReadTimeout: HTTPSConnectionPool(...): Read timed out. (read timeout=10)
  • httpx: httpx.ReadTimeout
  • Node.js: ETIMEDOUT, ESOCKETTIMEDOUT, o un AbortError dal tuo timer
  • Playwright: TimeoutError: page.goto: Timeout 30000ms exceeded

Cosa causa a read timeout?

Probabilmente prima:

  • Una pagina target lenta, come risultati di ricerca o pagine dinamiche pesanti.
  • Un'uscita lenta: velocità upload domestica, Wi-Fi o cella mobile congestionata.
  • Download grandi letti in un blocco unico invece che in streaming.
  • Timeout troppo stretti per il tipo di pagina.
  • Pagine browser che aspettano rete inattiva su siti che non smettono mai di caricare tracker.

Come diagnostico a read timeout passo dopo passo?

  1. Misura la richiesta senza proxy per avere un riferimento.
  2. Registra separatamente il tempo al primo byte e il tempo totale.
  3. Controlla la dimensione delle risposte per URL lenti.
  4. Nei browser, verifica quale condizione waitUntil stai usando.
Testa l'URL che fallisce con curl (porta HTTP, verbose)
# 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_URL

Come risolvo a read timeout?

  • Imposta entrambi i timeout: connessione circa 10 secondi, lettura 30-60 secondi per HTML, di più per file grandi.
  • Streamma risposte grandi e scrivile a pezzi su disco.
  • Usa domcontentloaded invece di rete inattiva in Playwright quando ti serve solo l'HTML.
  • Blocca risorse pesanti non necessarie sui browser, come video.
  • Ritenta una volta con nuova uscita, poi sposta l'URL in una coda lenta.
Python httpx: timeout espliciti per connect, read, write e pool
import httpx

proxy = "http://USERNAME:[email protected]:7777"
timeout = httpx.Timeout(connect=10.0, read=30.0, write=10.0, pool=10.0)

with httpx.Client(proxy=proxy, timeout=timeout) as client:
    try:
        r = client.get("https://api.ipify.org")
        print(r.status_code, r.text)
    except httpx.TimeoutException as exc:
        print("timed out:", type(exc).__name__)  # ConnectTimeout, ReadTimeout...

Devo riprovare dopo a read timeout?

Ritenta un read timeout una o due volte con nuova uscita. Se lo stesso URL continua a scadere, assegna un timeout più lungo in una coda lenta separata invece di estendere il timeout per tutto. Attenzione agli effetti collaterali duplicati: ritenta solo richieste sicure da ripetere, come GET.

Come si applica Read timed out (ReadTimeout) a CrawlRelay?

Ogni nuova connessione CrawlRelay senza ID sessione usa un'uscita residenziale diversa, quindi un ritentativo testa anche una connessione domestica diversa. Mantieni sessioni sticky brevi per target lenti: se l'uscita è lenta, ogni richiesta nella sessione sarà lenta.

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: 504 Gateway Timeout · Connessione ripristinata · Guida alla concorrenza.

Read timed out (ReadTimeout): domande frequenti dagli sviluppatori

Qual è il timeout consigliato per lo scraping con proxy?

Inizia con circa 10 secondi per la connessione e 30 secondi per la lettura per pagine HTML, poi adatta in base alle tue misure. Le API JSON sono spesso più veloci; file grandi e pagine di ricerca lente richiedono più tempo. Imposta i timeout esplicitamente: Python requests non ha timeout di default.

Un timeout consuma traffico?

Solo per i byte trasferiti prima del timeout. Una richiesta scaduta prima del primo byte ha trasferito quasi nulla. Un download grande che scade a metà ha trasferito dati. Streamma file grandi e riprendi quando possibile.

Perché i timeout capitano a raffica?

Spesso perché il target rallenta sotto carico, a volte il carico è causato da te. Raffiche simultanee su molte uscite indicano il target; timeout isolati indicano singole uscite lente. Riduci la concorrenza sull'host quando inizia una raffica.

Altri errori proxy in questo riferimento

Codici di stato HTTP

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.

Da 0,50 USD/GB · senza KYC

Inizia ora