Was Datenhaltung bei einer Webanwendung besonders macht
Eine Web-Anwendung hat vier Orte, an denen etwas liegen kann — und der Ort, an dem der Code läuft, ist ausdrücklich keiner davon.
Wer vorher Software gebaut hat, die auf einem Rechner lief, bringt eine Annahme mit, die im Netz nicht mehr stimmt: dass das Programm und seine Daten am selben Ort wohnen. Eine Web-Anwendung läuft in einem Behälter, der jederzeit weggeworfen und neu gestartet wird — beim Veröffentlichen, beim Neustart, beim Umzug auf einen anderen Server.
Die vier Orte
| Ort | Was dorthin gehört | Was ihn ausmacht |
|---|---|---|
| Der Browser | zuletzt gewählter Filter, offene Klappe, ungesendeter Entwurf | Er gehört dem Nutzer. Nie etwas Geheimes, nie etwas, das gelten soll |
| Der Behälter | nichts, was bleiben muss | Wird ersetzt, nicht gepflegt — er hält nur den laufenden Code |
| Die Datenbank | alles Strukturierte, das gelten soll | Der Ort, der recht behält |
| Der Dateispeicher | Bilder, PDFs, Anhänge, Sicherungen | Groß, unstrukturiert, mit eigenen Zugangsschlüsseln |
Was hier liegt — localStorage, ein Cookie, der Zustand einer Oberfläche —, ist eine Bequemlichkeit für genau diesen Menschen an genau diesem Gerät. Es ist morgen vielleicht weg, weil er den Browser gewechselt oder die Daten gelöscht hat, und das darf nichts kosten.
Nie hierher: Schlüssel, Zugangsdaten, Preise, Berechtigungen. Alles, was im Browser steht, kann der Nutzer sehen und ändern — auch der, der es nicht soll.
Hier läuft der Code, und hier entscheidet die Anwendung, wer was sehen darf. Das ist ihre eigentliche Aufgabe — nicht das Speichern.
Der leere Boden im Bild ist wörtlich gemeint: Schreiben Sie eine Datei in den Behälter, ist sie beim nächsten Veröffentlichen fort. Wenn Sie eine SQLite-Datei benutzen, muss sie in einem dauerhaften Verzeichnis liegen, das über den Behälter hinaus besteht.
Hier liegt alles, was Struktur hat und gelten soll. Sie ist der einzige Ort, an dem mehrere Nutzer gleichzeitig ändern können, ohne sich zu überschreiben — das ist ihr eigentlicher Wert, nicht die Geschwindigkeit.
Die Anwendung kommt mit einer eigenen Rolle herein, die weniger darf als Sie. Warum, steht in Station 06.
Dateien gehören weder in den Behälter noch in die Datenbank. In der Datenbank blähen sie die Sicherung auf und machen jede Abfrage langsamer; im Behälter sind sie beim nächsten Mal weg.
Der Objektspeicher hat eigene Zugangsschlüssel — und die reichen in der Praxis fast immer weiter als nötig. Das ist Tür 5 aus Station 05.