Post/Redirect/Get

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Post/Redirect/Get (PRG) oder Redirect After Post (deutsch Umleitung nach dem Versand) ist ein Verhaltensmuster in der Entwicklung von Webanwendungen. Das Muster verhindert, dass Formulare durch den Anwender mehrfach gesendet werden.[1] PRG wird zudem in der Suchmaschinenoptimierung (SEO), insbesondere bei Filter-Navigationen in Online-Shops, eingesetzt[2].

Hintergrund[Bearbeiten | Quelltext bearbeiten]

Diagramm des Doppel-POST-Problems.

Wenn ein Webformular beim Klicken des Knopfes zum Abschicken des Formulars (z. B. „Kaufen“, „Bezahlen“, „Senden“ etc.) die Daten mittels der HTTP-Anfragemethode POST übermittelt und keine Weiterleitung vorgesehen ist, erscheint die Ergebnisseite unter derselben URL. Wenn die Seite nun neu geladen wird, wird entweder der Browser in einer Meldung nachfragen, ob Inhalte erneut per POST übermittelt werden sollen oder schlicht direkt das Formular einfach neu laden.

Funktionsweise[Bearbeiten | Quelltext bearbeiten]

Diagramm von Post/Redirect/Get

Um das Problem des erneuten Ladens des Formulars und des potenziell folgenden doppelten POST zu verhindern, wird der Benutzer mittels des HTTP-Statuscode „303: See Other“ auf eine Seite umgeleitet, welche mittels der GET-Methode geladen wird.

Lädt der Benutzer diese Seite erneut, kommt er wieder bei den Ergebnissen seiner Anfrage an.

Einsatz in der Suchmaschinenoptimierung[Bearbeiten | Quelltext bearbeiten]

Filter Navigationen in Online-Shops (häufig auch als Layered- oder facettierte Navigation bezeichnet) erlauben dem Nutzer das Sortiment nach verschiedenen Produktmerkmalen wie Farbe, Größe, Material usw. zu filtern. Aus Sicht der Suchmaschinenoptimierung ist diese Funktion jedoch problematisch, da hierbei (Near-) Duplicate Content sowie nahezu unendliche viele zusätzliche URLs entstehen, was wiederum zu einer Verschwendung von Crawling-Budget führt.

Die PRG Methode ist ein Ansatz, um diese SEO-Probleme im Zusammenhang mit Filter-Navigationen zu beheben[3] und ist dabei anderen im Bereich SEO üblichen Lösungsansätzen, die die Probleme nur unzureichend adressieren, überlegen[4]. Die PRG Methode wird jedoch von gängigen CMS und Online-Shop-Systemen in der Regel standardmäßig nicht unterstützt und muss individuell ergänzt werden (Beispiel-Implementierung für WordPress[5]).

Alternativen[Bearbeiten | Quelltext bearbeiten]

Grundsätzlich besteht die Möglichkeit, bereits in die ursprüngliche Seite einen eindeutigen Bezeichner einzubauen, der beim Absenden der Daten über POST mitgesendet wird. Wenn der Server eine weitere Anfrage mit demselben eindeutigen Bezeichner erhält, kann dieser den erneuten POST, etwa mit dem Statuscode „405: Method Not Allowed“ oder „409: Conflict“, ablehnen.

Quellen[Bearbeiten | Quelltext bearbeiten]

  1. Ward Cunningham: Redirect After Post. In: Portland Pattern Repository. 12. September 2014, abgerufen am 7. Mai 2017 (englisch).
  2. Post-Redirect-Get. Abgerufen am 19. Mai 2018.
  3. POST, GET & PRG-Pattern, Faceted Navigation und der Einsatz im SEO. In: Catbird Seat - Agentur für Digitales Marketing. 11. Februar 2016 (catbirdseat.de [abgerufen am 19. Mai 2018]).
  4. l▷ SEO Optimierung für Layered Navigations mit PRG Pattern ✔ | JaJuMa-Blog. Abgerufen am 19. Mai 2018 (deutsch).
  5. Tobias Keller: PRG Pattern in WordPress implementieren. 26. August 2018, abgerufen am 28. August 2018 (deutsch).