Hostwinds Blog


307 Reindirizzamento temporaneo: cosa è e quando/come usarlo Immagine in primo piano

307 Reindirizzamento temporaneo: cosa è e quando/come usarlo

di: Hostwinds Team  /  marzo 29, 2024


Cos'è un codice di stato 307?

Il reindirizzamento temporaneo 307 è un codice di stato di risposta HTTP che indica che la risorsa richiesta (ad es. Pagina Web) è stata temporaneamente deviata in un URL diverso.Tuttavia, a differenza di simili codici di stato di reindirizzamento temporanei, come 302 (trovato) o 303 (vedi altri), il client (ad esempio browser Web) viene detto di continuare a utilizzare lo stesso metodo di richiesta HTTP per il nuovo URL che ha fatto per la richiesta originale.

In parole povere, quando un server invia un codice di stato 307 in risposta alla richiesta di un browser, significa che la risorsa richiesta è passata temporaneamente a un altro URL.Il browser dovrebbe seguire il reindirizzamento e utilizzare lo stesso metodo di richiesta HTTP (come GET o POST) utilizzato per l'URL originale quando si accede a quello nuovo.

Quando utilizzare il codice di stato 307

Ci sono una serie di ragioni per cui un server vorrebbe che il client (browser) continui a utilizzare lo stesso metodo di richiesta quando viene reindirizzato a un nuovo URL, la maggior parte dei quali ruota attorno alla sicurezza e al mantenimento di un'esperienza utente coerente.

Ecco alcuni scenari in cui il codice di stato 307 può essere effettivamente utilizzato:

Autenticazione e autorizzazione: Quando un client invia una richiesta a una risorsa che richiede autenticazione o autorizzazione, il server può rispondere con un codice di stato 307 insieme all'URL della pagina di accesso o autorizzazione.Ciò garantisce che il client reinsurrà la richiesta originale (ad es. Post) dopo l'autenticazione riuscita senza alterare il metodo.

Invio del modulo: Nelle applicazioni Web in cui sono coinvolte gli invii dei moduli, come e-commerce Processi di checkout o sondaggi online, se è necessario reindirizzare temporaneamente l'utente (ad esempio, a causa della scadenza della sessione o degli errori di convalida), un codice di stato 307 può essere utilizzato per mantenere l'integrità del metodo di invio del modulo.

Manutenzione temporanea del sito o tempi di inattività: Durante la manutenzione temporanea o i tempi di inattività di un sito Web, potrebbe essere necessario reindirizzare le richieste in arrivo a una pagina temporanea.Utilizzando un codice di stato 307, il server garantisce che il client segua il reindirizzamento senza modificare il metodo HTTP, consentendo una transizione senza soluzione di continuità alla risorsa originale una volta completata la manutenzione.

Gestione delle modifiche alla posizione delle risorse: Se una risorsa è stata temporaneamente spostata in una posizione diversa sul server o in un server completamente diverso, ma dovrebbe tornare nella sua posizione originale in futuro, un codice di stato 307 può essere utilizzato per informare i client sul trasferimento temporaneo preservando ilMetodo di richiesta originale.

Quando evitare di usare 307 reindirizzamenti

Mentre 307 codici di stato possono aiutare a mantenere la sicurezza e il beneficio dell'esperienza dell'utente, non è certamente un codice di risposta da utilizzare in tutto il sito.In effetti, se non utilizzato nello scenario giusto, 307 reindirizzamenti possono avere un impatto negativo sulla funzioni del sito e sull'esperienza dell'utente.

Ecco un paio di esempi di quando evitare un reindirizzamento 307:

Modifiche all'URL permanente: I motori di ricerca interpretano 307 reindirizzamenti come temporanei, quindi se si intende che il reindirizzamento abbia effetti a lungo termine su SEO, come il passaggio dell'equità del collegamento al nuovo URL, un reindirizzamento 307 potrebbe ostacolarlo.

301 Reindirizzamento è l'unico codice di stato che dovrebbe essere usato quando l'intenzione è di spostare permanentemente un URL su un altro.

Reindirizzamenti a livello del sito: L'uso di 307 codici di stato per reindirizzamenti a livello di sito o in blocco potrebbe influire sulle prestazioni del server, in particolare per i siti ad alto traffico.L'elaborazione di un gran numero di reindirizzamenti temporanei può imbottire le risorse del server e rallentare i tempi di risposta del sito, danneggiando la SEO e l'esperienza utente.

Siti Web che potrebbero trarre vantaggio dall'utilizzo di 307 reindirizzamenti

Mentre la maggior parte dei siti Web potrebbe utilizzare il codice di stato 307 per un motivo o per l'altro, ci sono pochi che si distinguono:

Piattaforme di e-commerce: I siti Web che coinvolgono carrelli della spesa, processi di pagamento e account utente possono beneficiare di 307 reindirizzamenti durante l'autenticazione, l'elaborazione dei pagamenti o la manutenzione temporanea.

Applicazioni Web: I siti che offrono servizi online, strumenti di produttività o piattaforme di collaborazione possono utilizzare 307 reindirizzamenti per mantenere le sessioni degli utenti, preservare le comunicazioni in forma o gestire il trasferimento temporaneo delle risorse.

Servizi di abbonamento o abbonamento: I siti Web che richiedono l'autenticazione o l'autorizzazione dell'utente, come siti di abbonamento, piattaforme basate su abbonamenti o sistemi di gestione dei contenuti, possono utilizzare 307 reindirizzamenti per gestire le sessioni degli utenti e garantire l'accesso senza soluzione di continuità alle risorse protette.

Moduli e sondaggi online: Siti Web Moduli di hosting o sondaggi che richiedono l'input e l'invio dell'utente possono utilizzare 307 reindirizzamenti per gestire errori di convalida, requisiti di autenticazione o interruzioni temporanee preservando i dati inviati dagli utenti.

Piattaforme di social media: Le piattaforme con contenuti generati dagli utenti, funzionalità di messaggistica o elementi interattivi possono beneficiare di 307 reindirizzamenti per mantenere il contesto della sessione, gestire le modifiche temporanee delle risorse o gestire i processi di autenticazione senza interrompere l'esperienza dell'utente.

307 Reindirizzamento temporaneo contro 307 Reindirizzamento interno

Il termine "307 reindirizzamento interno" è spuntato come un altro tipo di reindirizzamento 307, specificamente legato al processo di dirigere i browser dalla versione HTTP di un sito alla versione HTTPS.

Mentre browser come Chrome possono segnalare il reindirizzamento di HTTP a HTTPS come "reindirizzamento interno 307", l'azione suggerita semplicemente non esiste.

Il termine "reindirizzamento interno" si riferisce in genere a un processo lato server in cui a server web Reindirizza internamente una richiesta a un'altra risorsa o posizione all'interno dello stesso server, senza che il client (browser) sia a conoscenza del reindirizzamento.Tuttavia, questo concetto non è legato specificamente al codice di stato 307;Può applicarsi a vari codici di stato HTTP, di cui 307.

In poche parole, "307 reindirizzamento temporaneo" e "307 reindirizzamento interno" si riferiscono alla stessa cosa, ma non sono associati al reindirizzamento di HTTP a HTTPS.

I reindirizzamenti da HTTP a HTTPS sono in genere implementati utilizzando codici di stato come 301 (spostati permanentemente) o 302 (trovati), se appropriato.

301 Reindirizzamento è il codice di stato standard utilizzato per reindirizzare permanentemente il traffico HTTP a HTTPS.

Differenza tra 302, 303 e 307 reindirizzamenti

302, 303 e 307 sono i tre tipi di reindirizzamenti temporanei all'interno dell'intervallo di codice di stato 3xx, ciascuno eseguendo una funzione distinta durante l'elaborazione e pubblicare richieste HTTP dal client (browser).

Questa sezione si concentrerà su come un cliente tipico risponderebbe a ciascun tipo di risposta di reindirizzamento temporanea, in particolare dopo aver inizialmente fatto una richiesta post.

get-post-request-temporary-redirect-process.webp
Cos'è una richiesta Get?

Una richiesta GET viene utilizzata dai browser per richiedere/recuperare una pagina Web da un server Web.Se un utente desidera visitare una pagina Web, tramite un collegamento Click o immettere un URL nella barra degli indirizzi, il browser invia una richiesta GET al server Web, chiedendole di fornire la pagina Web specificata.

Qual è una richiesta post?

Una richiesta di post si verifica quando l'utente interagisce con una pagina Web inviando dati, come l'invio del modulo o il caricamento dei file, sul server Web.Questi dati vengono quindi elaborati o archiviati dal server, consentendo alla pagina Web di eseguire un'azione specifica in base all'ingresso dell'utente.

302 Reindirizzamento

Quando un client (browser) incontra una risposta 302 da un server Web, segue una richiesta GET per accedere al nuovo URL fornito dal server.Ciò accadrà indipendentemente dal fatto che la richiesta originale del cliente fosse o pubblica.

Ciò potrebbe causare problemi se il cliente inizialmente inviasse una richiesta post.

Ad esempio, se un utente presenta informazioni, come un modulo di acquisto, utilizzando una richiesta post e il server risponde con un reindirizzamento 302, il browser invierà automaticamente una richiesta GET.Di conseguenza, le informazioni dalla richiesta di post originale potrebbero non raggiungere il server per l'elaborazione.

303 Reindirizzamento

Un reindirizzamento 303 funziona in modo simile a un reindirizzamento 302 spingendo il client a seguire il metodo GET indipendentemente dal metodo di richiesta originale.

Tuttavia, se la richiesta originale è una richiesta di post, una risposta di reindirizzamento 303 richiede al client di richiedere all'utente di confermare la richiesta di ottenere il follow-up prima di inviarla al server.

Inoltre, come 302 reindirizzamenti, utilizzando 303 reindirizzamenti per le pagine Web di invio dei dati (ad es. I riempimenti di modulo e carichi di file) potrebbero comportare dati frammentati o persi.

307 Reindirizzamento

A differenza di 302 e 303 reindirizzamenti, 307 reindirizzamenti conservano il metodo di richiesta originale (Get o Post) dopo il reindirizzamento.In poche parole, una richiesta di post rimane come richiesta post e una richiesta di GET rimane come richiesta OTTIENE dopo il reindirizzamento.

Ciò rende 307 reindirizzazioni la scelta migliore per l'invio dei dati ai server Web, in quanto garantisce sia il trasferimento sicuro che la consegna accurata di informazioni dal client al server.

4 modi per implementare 307 reindirizzamento

Esistono diversi metodi per implementare un reindirizzamento 307 sul tuo sito.Quello che funziona meglio per te dipenderà dal tuo livello di comfort con la codifica e se stai eseguendo o meno un CMS (WordPress, Drupal, Joomla, ecc.).

Indipendentemente dal metodo che scegli, assicurati di creare prima un backup del tuo sito o almeno il file su cui stai lavorando.Non possiamo sottolineare il Importanza del backup dei dati, soprattutto quando si lavora all'interno del file .htaccess.

Utilizzando il file .htaccess

1. Accedi al file .htaccess nella directory root del tuo sito Web.

2. Aggiungi la seguente riga al file .htaccess:

Redirect 307 /old-page.html http://example.com/new-page.html

3. Sostituire /old-page.html con il vecchio URL e http://example.com/new-page.html con il nuovo URL.

4. Salvare le modifiche al file .htaccess e testare il reindirizzamento.

Utilizzo di script sul lato server (PHP)

1. Creare un nuovo file PHP (ad es. Redirect.php) sul tuo server.

2. Aggiungere il seguente codice PHP al file:

<?php

header("HTTP/1.1 307 Temporary Redirect");

header("Location: http://example.com/new-page.html");

exit();

?>

3. Sostituire http://example.com/new-page.html con l'URL a cui si desidera reindirizzare.

4. Salva il file e caricalo sul tuo server.

5. Accedi al file nel browser per garantire che il reindirizzamento funzioni.

Utilizzo della configurazione del server (host virtuale Apache)

1. Accedi al file di configurazione del server (ad es. Httpd.conf o apache2.conf).

2. Aggiungi le seguenti righe all'interno del blocco appropriato <strualHost> o <Ectory>:

Redirect 307 /old-page.html http://example.com/new-page.html

3. Salvare le modifiche al file di configurazione e riavviare il server Apache per applicare le modifiche.

4. Testare il reindirizzamento accedendo al vecchio URL nel browser.

Usando i plugin

Per i siti che utilizzano un CMS (sistema di gestione dei contenuti), come WordPress o Weebly, implementare 307 reindirizzamenti è facile come farlo attraverso un plug -in.

Trova un plug -in che ti piace, scaricalo e semplicemente segui le istruzioni su come implementare il reindirizzamento 307.

Scritto da Hostwinds Team  /  marzo 29, 2024