Zum Hauptinhalt springen

Post-Redirect-Get

Das Artikel / Weiterleiten / Muster abrufen oder Muster PRG ist ein Entwicklungsansatz, der das Duplizieren von Inhalten beim Senden von Formularen vermeidet und eine intuitivere Benutzeroberfläche bietet. Mit dem Post-Redirect-Get-Muster können Sie Lesezeichen setzen, URLs freigeben und ein Webportal neu laden, das Formulardaten abfragt und übermittelt, ohne doppelten oder nahezu doppelten Inhalt zu erstellen.

Das PRG-Muster Es wird häufig von großen Online-Shops verwendet, um die Begrenzung von Produkten und Produktkategorien mit facettierter Navigation zu ermöglichen und das Crawling-Budget zu reduzieren. Aus Sicht des Webdesigns und der Suchmaschinenoptimierung ist die PRG-Muster Um doppelte Inhalte zu vermeiden, geben Sie geteilte URLs an und schonen Sie Crawler-Ressourcen. Die Implementierung dieses Entwicklungsansatzes erfordert Kenntnisse des Artikels und das Abrufen von Abfragen zu Version 1.1 des HTTP-Protokolls. Möglicherweise sind kanonische Tags und Noindex-Markups erforderlich.

Allgemeine Information

Der Grund für die Verwendung der PRG-Muster ist der nächste Schritt: Wenn Formulardaten über eine HTTP-Mail-Anfrage gesendet werden, kann diese Anfrage mehrmals an den Server gesendet werden, wenn der Benutzer, der die Anfrage sendet, das Formular mit der Schaltfläche F5 neu lädt oder neu lädt. Infolgedessen werden Webformulare oder Bestellungen möglicherweise zweimal gesendet. Du kannst den ... benutzen PRG-Muster um diesen doppelten Inhalt zu vermeiden. Anstelle eines Webportals mit doppeltem Inhalt wird das Webportal angezeigt, das über eine Post-Anfrage und Weiterleitung bereitgestellt wird.

Wie funktioniert es

Wenn ein Kunde ein Webformular anruft und ausfüllt, wird es normalerweise per E-Mail-Anfrage an den Server übermittelt. Der Server nimmt eine Änderung an der Datenbank vor und gibt die Informationen aus dem Webformular ein. Normalerweise sendet der Server eine Bestätigungsseite an den Client. Wenn Fehler oder ungültige Einträge vorliegen, wird ein Webformular angezeigt, das dem Benutzer diese Fehler anzeigt. Der Benutzer korrigiert dann die Daten und klickt auf Senden. Die richtigen Daten werden an den Server gesendet. Wenn der Benutzer das Webformular jetzt neu lädt, wird eine weitere unerwünschte Datenübertragung mit zwei Eingaben aus der Datenbank erstellt.

Hier ist die PRG-Muster. Nach dem Eingeben der Datenbank wird eine Umleitung an den Client gesendet. Der Client initiiert dann eine Abrufanforderung an den Server, der wiederum eine Bestätigungsseite sendet. Wenn der Benutzer das Webportal neu lädt, wird nur eine weitere Abrufanforderung an den Server gesendet. Anstelle einer Datenbankänderung mit der Nachanforderung wird dem Benutzer die Bestätigungsseite angezeigt. Ihre Anfrage wurde bereits erfüllt und das erneute Laden des Webformulars führt nicht zu doppelten Inhalten.

Das PRG-Muster Dies sind zwei HTTP-Anforderungen und eine Umleitung, die auf die geänderten Ergebnisse verweist. Das Muster ermöglicht die semantisch korrekte Verarbeitung von Nachrichten und das Abrufen von Anforderungen im HTTP 1.1-Protokoll:

  • POST: Ein Formular wird mit einer Nachanforderung an den Server gesendet und ein Eintrag in der Datenbank wird geändert.
  • Weiterleitung: Nach einer Sendeanforderung wird die richtige Webseite mit den geänderten Daten mittels der Umleitungsanweisung (HTTP 303) an den Client übermittelt.
  • GET: Der Client fordert eine Bestätigungsseite an. Beim erneuten Laden erfolgt dies auch ohne Änderung der Datenbank und ohne Duplizieren des resultierenden Inhalts.

Praktische Relevanz

In der Praxis ist die Umsetzung der PRG-Muster Dies hängt von der auf der Serverseite verwendeten Programmiersprache und dem Content-Management-System ab. Eine Lösung in PHP könnte folgendermaßen aussehen: Das Webformular heißt echo.php, es muss verursacht werden und der Rendering-Server muss PHP-Parsing unterstützen oder PHP als serverseitige Sprache verwenden. Im Beispiel wird der erste Upload der Datei von einem Benutzer gestartet, der zum Webportal www.example.com/dated.php navigiert. Der HTML-Code der Datei wird angezeigt. Der Benutzer gibt die Daten ein und drückt die Eingabetaste. Die Eingabe wird als Datenbankänderung an den Server gesendet und über eine Abrufanforderung an den Client übermittelt. Auch bei einer anderen Abrufanforderung bleibt der Eintrag aktuell, da der geänderte Inhalt während der gesamten Sitzung beibehalten wird. Das Ergebnis ist ein HTML-Webportal, das die Eingaben enthält, jedoch über eine Abrufanforderung eingeht und aufgrund einer anderen Veröffentlichungsanforderung keinen doppelten Inhalt erstellt.

<?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="/de/echo.php/" method="POST" data-trp-original-action="echo.php">
        <input type="text" name="shout" value="" />
    <input type="hidden" name="trp-form-language" value="de"/></form>
</body>
</html>

[1]

Relevanz für die Suchmaschinenoptimierung

Das PRG-Muster Es wird in bestimmten Fällen von Webdesignern und SEOs empfohlen. Im Detail hängt die Implementierung von vielen verschiedenen Faktoren ab, die mit der Servertechnologie zusammenhängen. CMS, serverseitige Programmiersprachen und verschiedene Versionen von PHP oder ASP.NET können Fehler verursachen und die Implementierung erschweren. Insbesondere bei Apps wie dem Durchsuchen von Filtern muss darauf geachtet werden, welche Ressourcen Benutzern und Suchmaschinen angezeigt werden. In Einzelfällen können kanonische Tags, No-Index-Anweisungen und SEO-Argumente wie gesprochene URLs für eine fehlerfreie Implementierung des PRG-Musters verwendet werden. Beim Durchsuchen von Filtern kann das Crawling-Budget in gewissem Umfang auch gesteuert werden.

Web-Links