# Délai de lecture via un proxy : causes et délais adaptés

> Délai de lecture atteint via un proxy résidentiel : pourquoi cela arrive, délais de connexion et lecture adaptés pour les scrapers, et comment réessayer sans s’accumuler.

- URL: https://crawlrelay.com/fr/docs/errors/read-timeout/
- Dernière mise à jour: 2026-10-13
- Publisher: CrawlRelay (https://crawlrelay.com)

Erreur de timeout client : message exact dans chaque outil, causes probables par ordre, et solution efficace.

**Réponse rapide — Que signifie Read timed out (ReadTimeout) avec un proxy ?**

**Délai de lecture atteint** signifie que votre client a attendu plus longtemps que son délai de lecture pour les prochains octets de la réponse. Via les proxies résidentiels CrawlRelay, le retard vient généralement d’une cible lente ou d’une sortie domestique lente. Définissez séparément les délais de connexion et de lecture, environ 10 et 30 à 60 secondes pour les pages HTML, et réessayez une requête expirée une fois sur une nouvelle sortie.

## Read timed out (ReadTimeout) en un coup d'œil

| Attribut | Valeur |
| --- | --- |
| Erreur | Read timed out (ReadTimeout) |
| Type | Erreur de timeout client |
| Envoyé par | Votre client HTTP, lorsqu’aucune donnée n’arrive dans le délai de lecture |
| Défini dans | Client setting, no protocol status |
| Réessayer ? | Oui, une ou deux fois sur une nouvelle sortie |
| Vérification initiale | Comparez votre délai de lecture au temps de réponse normal de la cible |

## Que signifie Read timed out (ReadTimeout) ?

Les clients ont généralement deux minuteurs. Le délai de connexion limite le temps d’attente pour ouvrir la connexion au proxy. Le délai de lecture limite le temps d’attente entre octets une fois la requête envoyée. Un délai de lecture indique que la connexion a marché mais que la réponse était trop lente.

Sans délais explicites, certains clients attendent indéfiniment. Dans Python requests, aucun délai n’est défini par défaut, donc une requête bloquée peut geler un worker.

## À quoi ressemble a read timeout en Python, curl, Node.js et navigateurs ?

La même erreur s'affiche différemment selon chaque outil. Voici les messages à rechercher dans vos logs :

- **Python requests :** `ReadTimeout: HTTPSConnectionPool(...): Read timed out. (read timeout=10)`
- **httpx :** `httpx.ReadTimeout`
- **Node.js :** `ETIMEDOUT`, `ESOCKETTIMEDOUT`, ou un `AbortError` de votre propre minuterie
- **Playwright :** `TimeoutError: page.goto: Timeout 30000ms exceeded`

## Quelles sont les causes de a read timeout ?

Probablement en premier lieu :

- **Une page ciblée lente**, comme les résultats de recherche ou les pages dynamiques lourdes.
- **Une sortie lente** : débit montant domestique, Wi-Fi ou une cellule mobile occupée.
- **Des téléchargements volumineux** lus en un bloc au lieu d’être streamés.
- **Des délais trop courts** pour le type de page.
- **Pages dans le navigateur** qui attendent l’inactivité réseau sur des sites qui ne cessent jamais de charger des trackers.

## Comment diagnostiquer a read timeout étape par étape ?

1. Mesurez la requête sans proxy pour avoir une base de référence.
2. Enregistrez séparément le temps jusqu’au premier octet et le temps total.
3. Vérifiez la taille de réponse des URL lentes.
4. Dans les navigateurs, vérifiez quelle condition `waitUntil` vous utilisez.

*Tester l'URL en échec avec curl (port HTTP, mode verbeux)*

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

## Comment résoudre a read timeout ?

- **Définissez les deux délais** : connexion environ 10 secondes, lecture 30 à 60 secondes pour le HTML, plus pour les gros fichiers.
- **Streammez les grosses réponses** et écrivez-les en morceaux sur disque.
- **Utilisez `domcontentloaded`** au lieu de network idle dans Playwright quand vous n’avez besoin que du HTML.
- **Bloquez les ressources lourdes** inutiles dans les navigateurs, comme la vidéo.
- **Réessayez une fois sur une nouvelle sortie**, puis placez l’URL en file lente.

*Python httpx : timeouts explicites de connexion, lecture, écriture et pool*

```python
import httpx

proxy = "http://USERNAME:PASSWORD@gw.crawlrelay.com: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...
```

## Dois-je réessayer après a read timeout ?

Réessayez un délai de lecture une ou deux fois sur une nouvelle sortie. Si la même URL continue de faire timeout, donnez-lui un délai plus long dans une file lente distincte plutôt que d’augmenter le délai pour tout. Attention aux effets secondaires en double : ne réessayez que les requêtes sûres à répéter, comme GET.

## Quelle est l'incidence de Read timed out (ReadTimeout) sur CrawlRelay ?

Chaque nouvelle connexion CrawlRelay sans ID de session utilise une sortie résidentielle différente, donc une réessai teste aussi une connexion domestique différente. Gardez les sessions collantes courtes pour les cibles lentes : si la sortie est lente, chaque requête dans la session est lente.

Passerelle : `gw.crawlrelay.com`, port 7777 (HTTP, HTTPS via CONNECT) et port 7778 (SOCKS5). Format du nom d'utilisateur : `USERNAME-country-{cc}-state-{state}-city-{city}-zip-{zip}-asn-{asn}-session-{id}-ttl-{minutes}`. Voir aussi : [504 Gateway Timeout](https://crawlrelay.com/fr/docs/errors/504-gateway-timeout/) · [Connection reset](https://crawlrelay.com/fr/docs/errors/connection-reset/) · [Guide de concurrence](https://crawlrelay.com/fr/docs/concurrency/).

## Read timed out (ReadTimeout) : questions fréquentes des développeurs

### Quel délai devrais-je utiliser pour scraper avec des proxies ?

Commencez avec environ 10 secondes pour la connexion et 30 secondes pour la lecture pour les pages HTML, puis ajustez selon vos mesures. Les API JSON sont souvent plus rapides ; les gros fichiers et pages de recherche lentes nécessitent plus. Définissez-les explicitement : Python requests n’a pas de délai par défaut.

### Un timeout me coûte-t-il du trafic ?

Seulement pour les octets transférés avant le timeout. Une requête expirée avant le premier octet a presque rien transféré. Un gros téléchargement bloqué à mi-chemin a transféré des données. Streammez les gros fichiers et reprenez-les là où possible.

### Pourquoi les délais arrivent-ils par rafales ?

Souvent parce que la cible ralentit sous charge, parfois c'est votre propre charge. Des pics sur plusieurs sorties à la fois indiquent la cible ; des délais d'attente isolés concernent des sorties lentes uniques. Réduisez la concurrence sur l'hôte quand un pic démarre.

## Autres erreurs de proxy dans cette référence

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

**Proxies résidentiels avec documentation couvrant les cas de défaillance** Proxies résidentiels CrawlRelay de 0,50 $US/GB, trafic sans expiration. [Voir les tarifs](https://crawlrelay.com/fr/pricing/) · [Démarrage rapide](https://crawlrelay.com/fr/docs/)

---

CrawlRelay: CrawlRelay est un service de proxy résidentiel rotatif et proxy mobile 4G/5G pour développeurs, adapté aux scrapers et pipelines de données IA : trafic prépayé sans expiration à partir de 0,50 $US/GB, paiement en crypto, sans téléchargement d’ID. Sans KYC — pas d’ID, pas de selfie, pas de documents. Payer en crypto.
