307 Temporary Redirect significa che la risorsa di destinazione si trova temporaneamente all’URL indicato nell’intestazione Location e che il client non deve cambiare il metodo della richiesta quando segue il reindirizzamento. Un POST resta un POST con lo stesso corpo, e un PUT resta un PUT. Le richieste future dovrebbero comunque andare all’URL originale. Una risposta 307 non è memorizzabile in cache per impostazione predefinita.
HTTP/1.1 ha introdotto il 307 per eliminare l’ambiguità del 302 Found, che i browser seguono con un GET dopo un POST. Usalo per i reindirizzamenti temporanei di endpoint API, caricamenti e invii di moduli, o in qualsiasi caso in cui il metodo debba restare invariato.
Negli strumenti per sviluppatori del browser potresti vedere 307 Internal Redirect dopo aver digitato un indirizzo http:// di un sito che usa HSTS. Quel reindirizzamento viene generato dal browser stesso in base al suo elenco HSTS e non è mai arrivato al server; il reindirizzamento del server potrebbe benissimo essere un 301. Una verifica lato server come la Verifica redirect HTTPS di TrueURL mostra cosa invia davvero il server.
Esempio di risposta
HTTP/1.1 307 Temporary Redirect
Date: Fri, 06 Nov 2026 10:15:32 GMT
Location: https://eu.api.example.com/v1/upload
Cache-Control: no-store
Content-Length: 0 SEO e verifica dei redirect
Google tratta il 307 come il 302: un reindirizzamento temporaneo e un segnale canonico debole, quindi l’URL originale di solito resta indicizzato. È la scelta giusta per le situazioni temporanee; per gli spostamenti permanenti usa 308 o 301. Alcuni framework generano il 307 per impostazione predefinita. Next.js, per esempio, usa 307 per i redirect con permanent: false e 308 per quelli con permanent: true, quindi controlla quale codice genera la tua configurazione.
Cause comuni e casi d’uso
- Un endpoint API o di caricamento è stato spostato temporaneamente e i corpi delle richieste
POSTdevono sopravvivere al reindirizzamento. - Manutenzione, bilanciamento del carico o instradamento regionale inviano le richieste altrove per un certo periodo.
- Il reindirizzamento temporaneo predefinito di un framework, come Next.js con
permanent: falseoRedirectResponsein Starlette e FastAPI. - Il “307 Internal Redirect” per HSTS negli strumenti per sviluppatori del browser, che proviene dal browser e non dal server.