Pubblica/Reindirizza/Ottieni

Il pattern Post/Redirect/Get impedisce l'invio di moduli duplicati su un sito Web quando un utente aggiorna una pagina o fa clic sulla freccia indietro nel browser.
del 07/12/21 -

Il pattern Post/Redirect/Get impedisce l'invio di moduli duplicati su un sito Web quando un utente aggiorna una pagina o fa clic sulla freccia indietro nel browser. Questo problema può verificarsi, ad esempio, con ordini in un negozio online o registrazioni su un sito web WordPress. Il seguente esempio illustra questa situazione:

Supponiamo che un utente completi un ordine in un negozio online e poi arrivi direttamente alla pagina di conferma. Se l'utente ora fa clic su "Aggiorna" o "Indietro" nel suo browser e non è implementato alcun Post/Redirect/Get, il modulo POST (ovvero l'ordine) viene inviato nuovamente al server, cosa che sicuramente non è desiderata dall'utente.

In pratica, i browser reagiscono aprendo una finestra e chiedendo agli utenti se vogliono davvero inviare nuovamente i dati in questi casi. Tuttavia, la maggior parte degli utenti che non dispongono di conoscenze tecniche approfondite non comprendono questa domanda e l' usabilità del sito Web ne risente. Questo è un altro motivo per cui il modello Post/Redirect/Get per i moduli dovrebbe essere implementato su un sito web WordPress.

Informazioni di base: richieste GET e POST
Fondamentalmente, entrambe le richieste GET e POST possono essere inviate a un server.

Una richiesta GET viene utilizzata per richiedere dati da un server , come file HTML, immagini, ecc. Tali moduli possono essere scansionati da Google.

POST, d'altra parte, è un metodo per trasferire dati a un server . A differenza del metodo GET, nella maggior parte dei casi Google non può seguire i moduli POST.

Come funziona Post/Reindirizza/Get
Per spiegare come funziona il modello Post/Redirect/Get, utilizzeremo nuovamente l'esempio sopra (ordinare in un negozio online). Il processo può essere suddiviso in tre fasi:

Passaggio 1 (POST): un utente completa il suo ordine e invia una richiesta POST al server utilizzando il suo browser. Il server, a sua volta, elabora questa richiesta e salva l'ordine in un database.
Passaggio 2 (REDIRECT): Invece di inviare la pagina di conferma direttamente all'utente, il server risponde al browser con un reindirizzamento (con codice di stato 3xx) a un nuovo URL, che porta alla pagina di conferma.
Passaggio 3 (GET): A causa del reindirizzamento, il browser invia quindi una nuova richiesta GET al server (poiché deve recuperare un nuovo URL), per richiedere la pagina di conferma.
Se l'utente ora aggiorna la pagina, il browser invia un'altra richiesta GET e il server risponde con la pagina di conferma. Senza il pattern PRG, l'utente invierebbe nuovamente la richiesta POST aggiornando la pagina e il server salverebbe l'ordine due volte.

Esempio di codice
Il seguente esempio di codice semplificato illustra come funziona il pattern PRG:

Se i dati vengono trasferiti allora
eseguire il codice (come gli aggiornamenti del database)
Finisci se

imposta l'intestazione della posizione con l'URL richiesto
Fine

Vantaggi per l'ottimizzazione per i motori di ricerca (SEO)
Il modello PRG non solo impedisce l'invio multiplo dei dati del modulo a un server web, ma può anche essere vantaggioso nel campo dell'ottimizzazione dei motori di ricerca (SEO), ad esempio per quanto riguarda la navigazione filtrata ( navigazione a faccette ) nei negozi online.

Tali navigazioni sono problematiche perché le varie funzioni di filtro (ad es. per colore, dimensione, ecc.) sono implementate da parametri URL e quindi generano un gran numero di nuovi URL. La massa di collegamenti interni associati a questo richiede una quantità elevata del budget di scansione limitato per un sito Web, che potrebbe essere necessario per altre sottopagine. Inoltre, possono sorgere problemi con contenuti (quasi) duplicati se i prodotti visualizzati nelle varie pagine dei filtri sono appena diversi.

Il pattern PRG fornisce una soluzione a questo problema: i collegamenti filtro sul sito Web sono integrati come un modulo POST. L'elemento del modulo è nascosto da display:none o visibilità:0. Quando si fa clic su tale collegamento di filtro, viene inviata una richiesta POST al server. Il server risponde con un reindirizzamento alla pagina dei risultati originale, che ora contiene i parametri corrispondenti nel suo URL. Poiché Google bot non segue il modulo POST, non riesce a trovare questo URL, il che evita contenuti duplicati e utilizza efficacemente il budget di scansione per il sito web WordPress. Allo stesso tempo, l'URL esiste e può, quindi, essere condiviso dagli utenti.

Un altro vantaggio di questo metodo è la capacità di controllare l'equità del collegamento che viene passato da una pagina. Il mascheramento dei link utilizzando i modelli PRG consente ai webmaster di controllare esattamente a quali link deve fluire questa equità di link e quali no (= link mascherati). Ciò consente di raggruppare l'equità del collegamento su pagine realmente pertinenti che dovrebbero apparire nei risultati di ricerca di Google.

Rilevanza pratica
Come puoi vedere dagli esempi sopra, il pattern Post/Redirect/Get è particolarmente rilevante per i negozi online per evitare ordini duplicati e per nascondere i link di filtro dal bot di Google.

Un possibile problema, tuttavia, è che il modello PRG non è supportato da tutti i sistemi di gestione dei contenuti e implementarlo da soli richiede una conoscenza approfondita della programmazione. Per questo motivo, nonostante i suoi vantaggi, il metodo non è utilizzato da molti gestori di negozi.

In sintesi: Posta/Reindirizza/Ottieni FAQ
Che cos'è il pattern Post/Redirect/Get?

Post/Redirect/Get sta per un modello utilizzato per evitare l'invio di moduli duplicati, ad esempio nei negozi online.

Qual è un esempio per l'utilizzo di Post/Redirect/Get?

Un esempio comune è l'e-commerce. Post/Redirect/Get può impedire ai clienti di effettuare un ordine più volte. Senza il pattern PRG, aggiornare la pagina di conferma dopo aver acquistato qualcosa potrebbe inviare nuovamente l'ordine.

Qual è la differenza tra POST e GET?
Le richieste GET vengono utilizzate per richiedere file mentre POST viene utilizzato per trasferire dati a un server.
Perché Pubblica/Reindirizza/Ottieni risultati positivi per la SEO?
Pubblica/Reindirizza/Ricevi può aiutarti a evitare problemi con contenuti duplicati, specialmente se utilizzi la navigazione a faccette.

Contatta il supporto WordPress per avere maggiori informazioni.



Licenza di distribuzione:
INFORMAZIONI SULLA PUBBLICAZIONE
Mister Sito
Responsabile account:
Carlo Alberto Bello (Direttore creativo)
Contatti e maggiori informazioni
Vedi altre pubblicazioni di questo utente
© Pensi che questo testo violi qualche norma sul copyright, contenga abusi di qualche tipo? Contatta il responsabile o Leggi come procedere
Stampa ID: 352557