El servidor no se arriesga a procesar una solicitud que podría repetirse.
Cuándo usarlo
Datos anticipados de TLS (0-RTT).
Causas habituales y soluciones
425 está relacionado con los early data de TLS 1.3, también llamados 0-RTT: un cliente que vuelve a conectarse puede enviar su solicitud junto con el primer paquete del handshake, pero un atacante puede volver a enviar esos datos. Un servidor o una CDN que recibe en early data una solicitud con efectos secundarios puede responder 425, y el cliente la reenvía cuando termina el handshake. Los proxies marcan esas solicitudes con la cabecera Early-Data: 1.
Rara vez lo gestionas tú, porque los navegadores reintentan automáticamente. Importa cuando activas 0-RTT, por ejemplo ssl_early_data on en nginx: reenvía el indicador con proxy_set_header Early-Data $ssl_early_data, y haz que la aplicación devuelva 425 para las solicitudes POST o cualquier GET que cambie el estado. Si no puedes garantizarlo, mantén 0-RTT desactivado.
Error del cliente (4xx)
Los códigos 4xx son errores del cliente: la solicitud en sí es incorrecta, no está autorizada o apunta a algo que no existe. Repetir la misma solicitud no servirá de nada.
Cómo se ve
HTTP/1.1 425 Too EarlyCómo enviarlo
| Node.js / Express | res.status(425).end() |
|---|---|
| Python / Flask | return '', 425 |
| nginx | return 425; |
Cómo comprobarlo
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/