Il codice di stato HTTP 307 Temporary Redirect indica che la risorsa richiesta è stata temporaneamente spostata in un’altra posizione.
Quando un server risponde con questo codice, fornisce il nuovo URL nell’intestazione “Location” della risposta.
A differenza del 302 Found, il 307 mantiene rigorosamente il metodo di richiesta originale (GET, POST, ecc.) quando il browser effettua la nuova richiesta.
Questo è particolarmente importante per preservare la funzionalità di form e altri elementi interattivi.
Il 307 segnala ai motori di ricerca che la risorsa tornerà all’URL originale in futuro, evitando il trasferimento del valore SEO alla nuova posizione temporanea.
Viene comunemente utilizzato durante manutenzioni, test A/B o aggiornamenti temporanei di pagine web.
In quali situazioni è più utile utilizzare il 307 rispetto al 302
Il reindirizzamento 307 è generalmente più utile del 302 in alcune situazioni specifiche:
Preservazione del metodo HTTP
La principale differenza tra 307 e 302 sta nel fatto che il 307 mantiene rigorosamente il metodo di richiesta HTTP originale (GET, POST, ecc.) quando il browser effettua la nuova richiesta.
Questo è particolarmente importante nei seguenti casi:
- Gestione di form e elementi interattivi: Quando si reindirizzano pagine contenenti moduli o altri elementi che utilizzano metodi HTTP specifici come POST.
- Migrazioni di siti con API complesse: Per garantire che le chiamate API mantengano il metodo di richiesta corretto dopo il reindirizzamento.
Sicurezza
Il 307 è preferibile al 302 in termini di sicurezza, poiché non consente al client di modificare il metodo sulla richiesta reindirizzata.
Questo può essere cruciale per:
- Protezione di dati sensibili: Evitando che richieste POST vengano convertite in GET, riducendo il rischio di esporre informazioni sensibili nell’URL.
Scenari tecnici specifici
- Reindirizzamenti interni del browser: Il 307 è utilizzato come reindirizzamento interno quando l’HTTP Strict Transport Security (HSTS) è attivato, forzando la connessione HTTPS per aumentare la sicurezza.
- Manutenzione del sito con funzionalità complesse: Durante aggiornamenti o manutenzioni che coinvolgono pagine con funzionalità avanzate che richiedono metodi HTTP specifici.
Compatibilità con HTTP/1.1
Il 307 è specifico per HTTP/1.1 e garantisce un comportamento coerente nei browser moderni, mentre il 302 può essere interpretato in modo diverso da client più vecchi.
In generale, il 307 è preferibile quando è essenziale mantenere l’integrità del metodo di richiesta HTTP e si desidera un comportamento più prevedibile e sicuro durante i reindirizzamenti temporanei.