425 Too Early

Serwer nie zaryzykuje przetworzenia żądania, które mogło zostać powtórzone.

Kiedy go używać

Wczesne dane TLS (0-RTT).

Typowe przyczyny i rozwiązania

425 dotyczy early data w TLS 1.3, zwanych też 0-RTT: powracający klient może wysłać żądanie razem z pierwszym pakietem handshake'u, ale atakujący może te dane odtworzyć. Serwer lub CDN, który otrzyma w early data żądanie z efektami ubocznymi, może odpowiedzieć 425, a klient wyśle je ponownie po zakończeniu handshake'u. Proxy oznaczają takie żądania nagłówkiem Early-Data: 1.

Rzadko obsługujesz go sam, bo przeglądarki ponawiają żądanie automatycznie. Ma znaczenie, gdy włączysz 0-RTT, np. ssl_early_data on w nginx: przekaż flagę przez proxy_set_header Early-Data $ssl_early_data i niech aplikacja zwraca 425 dla żądań POST lub każdego GET, który zmienia stan. Jeśli nie możesz tego zagwarantować, zostaw 0-RTT wyłączone.

Błąd klienta (4xx)

Kody 4xx to błędy klienta: samo żądanie jest błędne, nieautoryzowane albo wskazuje na coś, czego nie ma. Ponowienie tego samego żądania nic nie da.

Jak to wygląda

HTTP/1.1 425 Too Early

Jak go wysłać

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

Jak go sprawdzić

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

Otwórz narzędzie Kody statusu HTTP