# 503 Service Unavailable lors du scraping : signification et solution

> 503 Service Unavailable via un proxy : surcharge cible, maintenance, page de défi ou ciblage trop restrictif. Comment identifier la cause et la corriger.

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

Code HTTP (5xx, erreur serveur) : message exact dans chaque outil, causes probables par ordre, et solution efficace.

**Réponse rapide — Que signifie 503 Service Unavailable avec un proxy ?**

**503 Service Unavailable** signifie que le serveur ne peut pas traiter la requête pour l’instant, à cause d’une surcharge, maintenance ou règle de protection. Avec les proxies résidentiels CrawlRelay, lisez l’en-tête `Retry-After` et le corps de la réponse : un 503 pour maintenance ou surcharge s’arrange avec le temps, tandis qu’une page de défi signifie que le site filtre le trafic automatisé et vous devriez ralentir.

## 503 Service Unavailable en un coup d'œil

| Attribut | Valeur |
| --- | --- |
| Erreur | 503 Service Unavailable |
| Type | Code HTTP (5xx, erreur serveur) |
| Envoyé par | Le site ciblé, son CDN ou le proxy quand il n’a pas de sortie à offrir |
| Défini dans | RFC 9110, section 15.6.4 (Retry-After: section 10.2.3) |
| Réessayer ? | Oui, après un Retry-After ou un délai progressif |
| Vérification initiale | Vérifiez la présence d’un en-tête Retry-After et si le corps est une page de défi CDN |

## Que signifie 503 Service Unavailable ?

La RFC 9110 définit le 503 comme une situation temporaire. Le serveur est opérationnel mais refuse ou ne peut pas traiter la requête maintenant, et peut indiquer quand revenir via `Retry-After`.

En pratique, trois situations sont couvertes par ce code : un site vraiment surchargé ou en maintenance, un CDN qui propose une page de défi au trafic jugé automatisé, et une passerelle proxy sans sortie disponible pour un ciblage très restreint. Le corps et les en-têtes permettent de les distinguer.

## À quoi ressemble a 503 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 / httpx :** `status_code == 503`, parfois avec `Retry-After`
- **Scrapy :** retente automatiquement (503 est dans `RETRY_HTTP_CODES`)
- **curl :** `HTTP/2 503`, souvent avec un en-tête `server:` nommant le CDN
- **Navigateurs :** une page de maintenance ou interstitielle

## Quelles sont les causes de a 503 ?

Probablement en premier lieu :

- **Surcharge ou maintenance** côté cible, souvent avec `Retry-After`.
- **Page de défi** servie par un CDN à une clientèle qu’il souhaite vérifier, avec statut 503 ou 403.
- **Votre propre charge**, quand votre crawler représente une grosse part du trafic.
- **Ciblage trop restreint**, par exemple une petite ville, sans sortie correspondante disponible.
- **Panne en amont** au niveau du CDN ou de la région cloud utilisée par le site.

## Comment diagnostiquer a 503 étape par étape ?

1. Lisez `Retry-After` et l’en-tête `server`, puis regardez le titre HTML du corps.
2. Chargez la page dans un navigateur depuis le même pays pour voir ce qu’un utilisateur voit.
3. Mettez en pause votre crawler quelques minutes et testez une requête : si elle réussit, votre charge était la cause.
4. Élargissez le ciblage au niveau pays et comparez.

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

- **Attendez et réessayez** avec le délai `Retry-After` ou un backoff exponentiel.
- **Réduisez votre charge** sur cet hôte : moins de requêtes parallèles, délais plus longs, mise en cache.
- **Considérez une page de défi comme un signal d’arrêt** pour ce rythme. N’utilisez pas de solutions de contournement comme la résolution CAPTCHA ou déguisement navigateur ; réduisez le rythme et contactez le site si nécessaire.
- **Élargissez le ciblage** si le 503 accompagne un filtre ville trop restrictif.

*Python : réessayer avec Retry-After, backoff exponentiel et jitter*

```python
import random
import time

import requests

PROXY = "http://USERNAME:PASSWORD@gw.crawlrelay.com:7777"
PROXIES = {"http": PROXY, "https": PROXY}
RETRY_STATUSES = {429, 502, 503, 504}


def fetch(url, attempts=5, timeout=(10, 30)):
    for attempt in range(attempts):
        try:
            r = requests.get(url, proxies=PROXIES, timeout=timeout)
        except (requests.exceptions.ConnectionError, requests.exceptions.Timeout):
            r = None  # dropped exit, reset or timeout: a new connection gets a new exit
        if r is not None and r.status_code not in RETRY_STATUSES:
            return r
        retry_after = r.headers.get("Retry-After", "") if r is not None else ""
        if retry_after.isdigit():
            wait = int(retry_after)
        else:
            wait = min(60, 2 ** attempt) + random.uniform(0, 1)
        time.sleep(wait)
    raise RuntimeError("giving up on %s after %d attempts" % (url, attempts))
```

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

Réessayez un 503, mais avec patience. Utilisez `Retry-After` quand présent ; sinon appliquez un délai exponentiel allant de quelques secondes à une ou deux minutes. Si un hôte retourne un 503 à la plupart des requêtes pendant plus de quelques minutes, mettez-le entièrement en pause et revenez plus tard. Comptez séparément les pages de défi et les pannes réelles dans vos logs.

## Quelle est l'incidence de 503 Service Unavailable sur CrawlRelay ?

CrawlRelay envoie votre requête via une IP résidentielle choisie pour correspondre à votre ciblage. Un ciblage au niveau pays utilise le plus large éventail de sorties ; un ciblage ville est plus restreint. Si des 503 n’apparaissent qu’avec un filtre ville, testez la même requête au niveau pays avant de modifier autre chose.

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 : [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/) · [504 Gateway Timeout](https://crawlrelay.com/fr/docs/errors/504-gateway-timeout/).

## 503 Service Unavailable : questions fréquentes des développeurs

### Pourquoi ai-je un 503 uniquement via le proxy et pas chez moi ?

Soit le site traite votre trafic proxy différemment, souvent via une page de défi, soit votre ciblage est tellement restreint que les sorties sont rares. Comparez le corps de réponse dans les deux cas. Une page de défi signifie ralentissez ; un message proxy bref avec ciblage étroit signifie élargissez le filtre de localisation.

### Un 503 correspond-il à un blocage ?

Non. Un vrai 503 est temporaire et s’efface avec le temps. Une page de défi servie avec un 503 est un filtre, indiquant généralement que votre rythme ou modèle semble automatisé. Réduisez la concurrence et ajoutez des délais. Si le site refuse tout accès automatisé, respectez-le et cherchez une API ou des données sous licence.

### Combien de fois dois-je réessayer un 503 ?

Trois à cinq tentatives avec backoff exponentiel constituent un plafond raisonnable pour une URL. Au-delà, mettez l’hôte en pause au lieu de réessayer chaque URL, car un site en difficulté ne se rétablira pas plus vite avec des tentatives répétées. Enregistrez l’hôte et l’heure pour reprendre plus tard.

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