Ein üblicher Redaktionssystem-Aufruf sieht so aus: Browser fragt an, PHP startet, Datenbank wird befragt, Vorlagen werden zusammengesetzt, HTML geht raus. Bei jedem Besucher, bei jeder Seite, jedes Mal.

Hier passiert davon nichts. Die Seite liegt als Datei auf der Platte, der Webserver schickt sie. Fertig.

Drei Probleme, eine Antwort

Geschwindigkeit: Die Auslieferung einer Datei ist die schnellste Form, eine Seite zuzustellen. Kein Anwendungscache kann schneller sein als nicht vorhandene Arbeit.

Angriffsfläche: Der überwiegende Teil aller Angriffe auf Websites zielt auf ausgeführten Code – Redaktionssysteme, Erweiterungen, Datenbankabfragen mit Nutzereingaben. Wo beim Seitenaufruf nichts ausgeführt wird, läuft das ins Leere. Die Verwaltung liegt hinter einer Anmeldung und ist von der ausgelieferten Website getrennt.

Nachvollziehbarkeit: Weil derselbe Datenstand dieselben Dateien ergibt, lässt sich jede Änderung vergleichen. Wenn eine Reihenfolge auf einer Fähigkeitsseite plötzlich anders ist, kann man zeigen, welche Bytes sich geändert haben – und warum.

Der dritte Punkt ist der Grund, warum die Bestätigungsgewichte nachts berechnet werden und nicht beim Klick. Würde beim Bauen gerechnet, hinge die Reihenfolge davon ab, wann zufällig gebaut wurde.

Was es kostet

Änderungen sind nicht sofort sichtbar. Wer sein Profil bearbeitet, sieht die neue Fassung erst nach dem nächsten Lauf. Das steht so im Mitgliederbereich, und es ist der ehrliche Preis.

Zweiter Preis: Alles, was tatsächlich dynamisch sein muss, braucht eine eigene Lösung. Hier sind das genau zwei Dateien – das Formular zum Anlegen eines Profils und der Mitgliederbereich. Beide zeigen personenbezogene Daten und dürfen deshalb ohnehin nirgends als Datei liegen.