Post/Redirect/Get (PRG) – Pattern

Veröffentlicht von Marcel - 3. Oktober 2016

PRG ist ein Webentwicklungs-Design-Pattern welches doppelte Formular-Submissions durch Neu-Laden der Seite verhindert und ermöglicht, dass Bestätigungsseiten als Bookmark gespeichert werden können.

prg-1050x700

.Das Problem

Ein Kunde ist in einem Online-Shop und kauft etwas ein, dazu füllt er am Ende seiner Bestellung ein Bestellformular mit seinen Daten aus. Diese Daten werden über einen HTTP POST request an der Server gesendet, dieser Verarbeitet die Daten und stößt die entsprechenden Verfahren an, Buchungsbestätigung, Geld einziehen, Warenwirtschaft, etc.. Letztendlich erhält der Kunde eine Bestätigungsseite angezeigt und freut sich auf die bestellte Waschmaschine. Allerdings möchte der Kunde diese Bestellung später seiner Frau zeigen, dazu möchte er die URL als Bookmark speichern – leider ist das aber nicht möglich, da der POST-Request keine individuelle erstellt. Sollte der Benutzer die Seite nun auch noch aus einem beliebigen Grund neu laden, wird der POST request erneut an den Server gesendet und der Kunde kann sich über eine weitere Waschmaschine freuen. prg1

Die Lösung

Um das Problem zu verhindern ist ein zwischenschritt zwischen der serverseiten Datenverarbeitung und dem Senden der Bestätigungsseite nötig. Anstatt direkt eine Webseite zurückzuschicken, sendet der POST lediglich einen 302 -Redirect an den Browser zurück. Dadurch landet der Benutzer über einen GET-Request auf einer „sicheren“ Seite, mit eigener URL, die er ohne Probleme neu laden oder als Browser-Bookmark speichern kann. prg2

Das könnte Dich auch interessieren

Urlaubsplanung mit ChatGPT – Ab in den Urlaub #2 – Jetzt erst recht!

Die Reise mit dem Hovercraft nach Island war ja schön und gut, aber Island ist mir etwas zu klein, um mit meinem Hovercraft hinüberweg zu düsen. Also…. auf...

Speedforce – Pt. II: Performance Analyse

Was bisher geschah: In der letzten Folge haben wir einen Überblick bekommen, was hinter dem Begriff "Performance" eigentlich steckt. Nun wollen wir uns angucke...

Fachfremd in Praktikum: Wie kann ich das bloß schaffen?

Ich grüße dich, mein Halunken-Freund! Schön, dass du auf meine Erzählung gestoßen bist. Ich verfasse diesen Artikel im Rahmen meines Pflichtpraktikums bei ...