Passer au contenu principal

Post-redirection-obtenir

le article / rediriger / obtenir un modèle ou motif PRG est une approche de développement qui évite la duplication de contenu lors de la soumission de formulaires et fournit une interface utilisateur plus intuitive. Le modèle post-redirection-get vous permet de définir des signets, de partager des URL et de recharger un portail Web qui interroge et soumet des données de formulaire, sans créer de contenu dupliqué ou quasi-dupliqué.

le Modèle PRG Il est fréquemment utilisé par les grands magasins en ligne pour permettre la limitation des produits et des catégories de produits avec une navigation à facettes et réduire le budget d'exploration. Du point de vue de la conception Web et du référencement, le Modèle PRG pour éviter la duplication du contenu, fournir des URL fractionnées et conserver les ressources d'analyse. La mise en œuvre de cette approche de développement nécessite la connaissance de l'article et l'obtention de requêtes sur la version 1.1 du protocole HTTP, et peut nécessiter des balises canoniques et un balisage Noindex.

Informations générales

La raison de l'utilisation du Modèle PRG est le suivant: lorsque les données du formulaire sont soumises à l'aide d'une demande de courrier HTTP, cette demande peut être envoyée au serveur plusieurs fois si l'utilisateur qui soumet la demande recharge le formulaire avec le bouton F5 ou recharge. En conséquence, les formulaires Web ou les commandes peuvent finir par être soumis deux fois. Vous pouvez utiliser le Modèle PRG pour éviter ce contenu dupliqué. Au lieu d'un portail Web avec du contenu en double, le portail Web fourni via une demande de publication et une redirection s'affiche.

Comment ça marche

Lorsqu'un client appelle et remplit un formulaire Web, il est généralement remis au serveur via une demande par courrier électronique. Le serveur modifie la base de données et entre les informations du formulaire Web. En règle générale, le serveur envoie une page de confirmation au client. S'il y a des erreurs ou des entrées invalides, un formulaire Web sera affiché, indiquant ces erreurs à l'utilisateur. L'utilisateur corrige ensuite les données et clique sur Soumettre. Les données correctes sont envoyées au serveur. Si l'utilisateur recharge maintenant le formulaire Web, un autre transfert de données indésirable à deux entrées sera créé à partir de la base de données.

C'est là que le Modèle PRG. Après être entré dans la base de données, une redirection est envoyée au client. Le client lance alors une demande d'obtention au serveur, qui à son tour envoie une page de confirmation. Si l'utilisateur recharge le portail Web, seule une autre demande d'obtention sera envoyée au serveur. Au lieu d'un changement de base de données avec la post-demande, l'utilisateur verra la page de confirmation. Votre demande a déjà été traitée et le rechargement du formulaire Web n'entraîne pas de duplication du contenu.

le Modèle PRG ce sont deux requêtes HTTP et une redirection qui fait référence aux résultats modifiés. Le modèle permet le traitement sémantiquement correct des messages et d'obtenir des requêtes dans le protocole HTTP 1.1:

  • POST: Un formulaire est envoyé au serveur avec une post-demande et une entrée dans la base de données est modifiée.
  • Redirection: après une demande d'envoi, la page Web correcte avec les données modifiées est livrée au client au moyen de l'instruction de redirection (HTTP 303).
  • GET: Le client demande une page de confirmation. Une fois rechargé, cela se fait également sans modification de la base de données, et certainement sans duplication du contenu résultant.

Pertinence pratique

En pratique, la mise en œuvre du Modèle PRG cela dépend du langage de programmation utilisé côté serveur et du système de gestion de contenu. Une solution en PHP peut ressembler à ceci: Le formulaire Web est appelé echo.php, il doit être provoqué et le serveur de rendu doit prendre en charge l'analyse PHP ou utiliser PHP comme langage côté serveur. Dans l'exemple, le premier téléchargement du fichier est lancé par un utilisateur qui accède au portail Web www.example.com/dated.php. Le HTML du fichier s'affiche. L'utilisateur entre les données et appuie sur Entrée. L'entrée est envoyée au serveur en tant que changement de base de données et livrée au client via une requête get. Même avec une autre demande d'obtention, l'entrée reste actuelle, car le contenu modifié est conservé tout au long de la session. Le résultat est un portail Web HTML qui contient les entrées, mais qui arrive via une demande d'obtention et ne crée pas de contenu en double en raison d'une autre demande de publication.

<?php
    session_start();

    $echoedShout = "";

    if(count($_POST) > 0) {
        $_SESSION['shout'] = $_POST['shout'];

        header("HTTP/1.1 303 See Other");
        header("Location: http://$_SERVER[HTTP_HOST]/echo.php");
        die();
    }
    else if (isset($_SESSION['shout'])){
        $echoedShout = $_SESSION['shout'];

        /*
            The source code which changes the database goes here.
        */

        session_unset();
        session_destroy();
    }
?>

<!DOCTYPE html>
<html>
<head><title>PRG pattern example in PHP</title>

<body>
    <?php echo "<p>$echoedShout</p>" ?>
    <form action="/fr/echo.php/" method="POST" data-trp-original-action="echo.php">
        <input type="text" name="shout" value="" />
    <input type="hidden" name="trp-form-language" value="fr"/></form>
</body>
</html>

[1]

Pertinence pour l'optimisation des moteurs de recherche

le Modèle PRG il est recommandé par les concepteurs de sites Web et les référenceurs dans certains cas. En détail, la mise en œuvre dépend de nombreux facteurs différents liés à la technologie du serveur. Le CMS, les langages de programmation côté serveur et différentes versions de PHP ou ASP.NET peuvent provoquer des erreurs et compliquer la mise en œuvre. En particulier dans le cas d'applications telles que la navigation par filtrage, il faut faire attention aux ressources présentées aux utilisateurs et aux moteurs de recherche. Dans des cas individuels, les balises canoniques, les instructions noindex et les arguments SEO, tels que les URL parlées, peuvent être utilisés pour une implémentation sans faille du modèle PRG. Dans le cas de la navigation par filtrage, le budget d'exploration peut également être contrôlé dans une certaine mesure.

Liens web