HTTP 307 Temporary Redirect
Un reindirizzamento temporaneo rigoroso: vai all'altro URL e ripeti la richiesta esattamente come l'hai inviata.
Cosa significa HTTP 307
HTTP 307 Temporary Redirect funziona come 302 con una garanzia in più: il client deve ripetere la richiesta al nuovo URL con lo stesso metodo e corpo. Una POST reindirizzata resta una POST — nulla viene convertito silenziosamente in GET.
I browser generano anche 307 internamente: quando un sito è nell'elenco di preload HSTS, il browser aggiorna http:// a https:// da solo e mostra “307 Internal Redirect” negli strumenti per sviluppatori senza alcuna richiesta di rete.
Cause comuni delle risposte 307
- Un'API reindirizza temporaneamente una richiesta POST/PUT a un altro endpoint.
- HSTS: il browser aggiorna http:// a https:// internamente (mostrato come 307 negli strumenti per sviluppatori).
- Riduzione del carico o finestre di manutenzione che instradano le scritture verso un endpoint di riserva.
Buone pratiche per gli sviluppatori
- Usa 307 ogni volta che una richiesta reindirizzata ha un corpo che deve sopravvivere al passaggio.
- Per gli spostamenti permanenti che preservano il metodo, usa invece 308.
- Ricorda che i client reinviano l'intero corpo — evita 307 per upload molto grandi se puoi indirizzare i client all'URL corretto fin dall'inizio.
Esempio di risposta
HTTP/1.1 307 Temporary Redirect Location: https://api.example.com/v2/orders Retry-After: 0
FAQ
Qual è la differenza tra 302 e 307?
Entrambi sono temporanei, ma 307 vieta di cambiare il metodo di richiesta — una POST viene ripetuta come POST. Con 302, i browser storicamente passano a GET.
Perché gli strumenti per sviluppatori mostrano “307 Internal Redirect”?
Il browser ha aggiornato la richiesta a HTTPS da solo (HSTS) senza contattare il server. Viene mostrato come un 307 sintetico.
Esiste una versione permanente del 307?
Sì — 308 Permanent Redirect: stessa regola di preservazione del metodo, ma cache e motori di ricerca trattano lo spostamento come permanente.