425 Too Early

O servidor não vai arriscar processar uma requisição que pode ser repetida.

Quando usar

Dados antecipados do TLS (0-RTT).

Causas comuns e soluções

O 425 está ligado aos early data do TLS 1.3, também chamados de 0-RTT: um cliente que retorna pode enviar a requisição junto com o primeiro pacote do handshake, mas um atacante pode reproduzir esses dados. Um servidor ou CDN que recebe em early data uma requisição com efeitos colaterais pode responder 425, e o cliente a reenvia depois que o handshake termina. Proxies marcam essas requisições com o cabeçalho Early-Data: 1.

Você raramente lida com ele diretamente, porque os navegadores tentam de novo automaticamente. Ele importa quando você ativa o 0-RTT, por exemplo ssl_early_data on no nginx: repasse a flag com proxy_set_header Early-Data $ssl_early_data e faça a aplicação retornar 425 para requisições POST ou qualquer GET que altere estado. Se não puder garantir isso, mantenha o 0-RTT desligado.

Erro do cliente (4xx)

Os códigos 4xx são erros do cliente: a própria requisição está errada, não está autorizada ou aponta para algo que não existe. Repetir a mesma requisição não vai adiantar.

Como fica

HTTP/1.1 425 Too Early

Como enviar

Node.js / Expressres.status(425).end()
Python / Flaskreturn '', 425
nginxreturn 425;

Como verificar

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/

Abrir Códigos de status HTTP