Browsercaching wie zu alten Zeiten

Hallo miteinander…

Wenn man mit einem aktuellen Browser auf eine Seite zurücksurft, die per Formular geladen wurde, wird einem anstatt der erwarteten Seite sofort sowas wie „Webseite abgelaufen“ angeworfen. Dem Nutzer bleibt dann nichts anderes übrig, als die Seite zu aktualisieren und zu bestätigen, dass die Formulardaten nochmals verschickt werden dürfen.

Mein Projekt beinhaltet sehr viele Seiten, welche per POST-Formular bestimmte Daten anfordern müssen. Und da sieht es einfach sehr unprofessionell aus, wenn bei jedem 2. Zurück-Click wieder so eine unnötige Fehlermeldung erscheint. Sowas nervt ungemein und senkt die Akzeptanz der Webseite.

Also habe ich versucht, in der php.ini session.cache_limiter auf public zu stellen. Damit war das Problem mit der Fehlermeldung behoben, doch ergab sich nach und nach ein Fehlerverhalten. Denn die Webseites werden nicht nur bei Back/Forward aus dem Cache geladen, sondern auch beim direktem Aufruf. Wegen der Anzeige von falschen Daten, musste session.cache_limiter wieder auf nocache stellen.

Nun frage ich mich, ob es eine andere Cache-Einstellung gibt, welche dem Browser die Cachebenützung für Seitenaufrufe mittels Back/Forward explizit aufzwingt, ansonsten aber verbietet? Das wäre dann quasi ein Browserverhalten, wie es noch vor wenigen Jahren üblich war. In Zeiten von hohen Datenübertragungsraten gingen die Browser (mit Ausnahme von Opera) dazu über, die Seiten schon bei einem simplen Back/Forward aufwändig neuzuladen (was mich übrigens vorallem beim iPhone extrem nervt).
Welche Möglichkeiten habe ich, die Browser wieder wie gewohnt agieren zu lassen? Die Webseite läuft auf meinem eigenen Server (Apache), ich habe also vollen Zugriff.

Gruss
Nooooooooooooooos

Ich bezweifel, dass sich jeder Browser so etwas unterschieben lässt. Aber schau dir mal die Caching-Mods von Apache an, da gibt es einige Möglichkeiten. Du müsstest damit eigentlich „nur“ die Optimierungstipps von Google PageSpeed ins Gegenteil verkehren.

Danke für deine Antwort. Sie hat mich auf die richtige Spur gebracht…

Das ganze ist so einfach, dass man gar nicht daran denkt: Wenn man einfach nur session.cache_limiter= in die php.ini schreibt, werden gar keine Header betreffend des Caches geschickt und die Browser reagieren genau so wie ich es haben wollte. Da in den Dokumentationen nur public/private/private_no_expire/nocache als mögliche Werte beschrieben (und die Voreinstellung meiner php-Installation nocache war) sind, muss man erst einmal darauf kommen, dass es noch eine zusätzliche Einstellung (nämlich gar kein Wert hinter dem Gleichzeichen) gibt.

Gruss Noooooooooooos