Ce que signifie 503 Service Unavailable
Un 503 indique une indisponibilité temporaire. Ce n’est pas un substitut général à une erreur d’application, à une page absente, à un contrôle d’accès ou à une décision de retrait définitif. L’en-tête Retry-After peut indiquer à partir de quand une nouvelle tentative paraît raisonnable, mais il ne garantit ni le comportement des crawlers ni la conservation dans l’index.
Règle de décision et preuves
Utilisez le 503 uniquement pour une contrainte opérationnelle bornée dans le temps, et rétablissez des réponses normales dès que cette contrainte est levée. Une suppression définitive relève d’une décision distincte, traduite par un 404 ou un 410. Un défaut à corriger ne doit pas être présenté, pour la forme, comme une maintenance planifiée.
Procédure pratique
HTTP/1.1 503 Service Unavailable
Retry-After: 3600
Cache-Control: no-storeLa réponse de maintenance doit être testée par le chemin que suivent visiteurs et crawlers, c’est-à-dire la couche périphérique du site. Vérifiez une route courante, une ressource statique et la route de reprise après la fenêtre de maintenance : sinon, un proxy inverse ou un cache peut continuer à servir la réponse temporaire alors que l’application fonctionne de nouveau.
- Définissez la fenêtre de maintenance et les routes réellement indisponibles.
- Servez une réponse simple, destinée à l’utilisateur, avec le statut 503.
- Ajoutez une valeur Retry-After réaliste uniquement si la durée estimée de reprise est connue.
- Surveillez une URL représentative, les ressources critiques et la réponse une fois la maintenance terminée.
- Notez l’heure de début et de fin, puis confirmez que la réponse normale (2xx) ou la redirection prévue revient.
Vérification et erreurs fréquentes
Utilisez un client HTTP extérieur à l’interface de l’application pour relever le statut et l’en-tête Retry-After. Vérifiez ensuite une route publique représentative après la reprise : une page de maintenance qui reste en cache avec le statut 503 est un défaut d’exploitation.