Le serveur refuse de risquer le traitement d’une requête qui pourrait être rejouée.
Quand l’utiliser
Données anticipées TLS (0-RTT).
Causes courantes et solutions
425 concerne les early data de TLS 1.3, aussi appelées 0-RTT : un client qui revient peut envoyer sa requête avec le premier paquet de la négociation, mais un attaquant peut rejouer ces données. Un serveur ou un CDN qui reçoit en early data une requête ayant des effets de bord peut répondre 425, et le client la renvoie une fois la négociation terminée. Les proxys marquent ces requêtes avec l’en-tête Early-Data: 1.
Vous le gérez rarement vous-même, car les navigateurs réessaient automatiquement. Il compte quand vous activez le 0-RTT, par exemple ssl_early_data on dans nginx : transmettez l’indicateur avec proxy_set_header Early-Data $ssl_early_data, et faites renvoyer 425 par l’application pour les requêtes POST ou tout GET qui modifie l’état. Si vous ne pouvez pas le garantir, laissez le 0-RTT désactivé.
Erreur client (4xx)
Les codes 4xx sont des erreurs client : la requête elle-même est incorrecte, non autorisée ou vise quelque chose qui n’existe pas. Renvoyer la même requête ne servira à rien.
À quoi ça ressemble
HTTP/1.1 425 Too EarlyComment l’envoyer
| Node.js / Express | res.status(425).end() |
|---|---|
| Python / Flask | return '', 425 |
| nginx | return 425; |
Comment le vérifier
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/