Support kontaktieren

Wir melden uns per E-Mail. Meist innerhalb von zwei Tagen.

Zum Schutz vor Missbrauch prüft Google reCAPTCHA diese Einsendung. Dabei werden Daten an Google übertragen. Das Skript wird erst beim Öffnen dieses Formulars geladen.

← Alle Beiträge

Ein Zähler für statische Seiten

Statisches Hosting ist still und leise zur vernünftigen Art geworden, eine kleine Seite ins Internet zu stellen. GitHub Pages, Codeberg Pages, Neocities, oder einfach ein Ordner voller Dateien bei irgendeinem billigen Hoster: keine Datenbank, keine serverseitige Sprache, nichts zu aktualisieren, nichts, das kompromittiert werden kann.

Es hat genau eine Lücke. Es gibt kein Server-Log zum Nachlesen und keine Möglichkeit, irgendetwas laufen zu lassen, das die Zählung übernimmt. Eine Seite geht online, und danach sagt nichts, ob überhaupt jemand vorbeigekommen ist.

Genau für diese Situation wurde der Besucherzähler erfunden, und deshalb ist er auch nicht wirklich veraltet.

Was dazu nötig ist

Das Snippet von der Statistikseite kommt ins HTML, und zwar an die Stelle, an der der Zähler erscheinen soll. Das ist das ganze Verfahren. Es funktioniert, weil der Zähler ein Bild und ein kleines Skript ist – zwei Dinge, die jeder statische Hoster ausliefert, ohne zu wissen oder sich dafür zu interessieren, was sie sind.

ein statischer Hosterein Ordner voller Dateien<img> · <script>unser ServerZählen, Ablegen, Diagrammenichts zu installieren, keine Datenbank zu pflegen, kein Cron-Auftrag zu vergessen

Das Zählen geschieht auf unserem Server. Der Hoster bleibt ein Ordner voller Dateien.

Das Skript gehört nicht ins eigene Repository

Das ist der eine Ratschlag, für den sich der ganze Beitrag lohnt, denn die Gewohnheiten bei statischen Seiten drängen stark in die andere Richtung. Abhängigkeiten per Vendoring ins eigene Repository zu holen, ist normalerweise gute Praxis – es ist reproduzierbar, übersteht es, wenn die Quelle verschwindet, und spart eine Anfrage.

Hier ist das falsch.

Ein kopiertes Skript ist in dem Moment eingefroren, in dem die Kopie entstand. Es tut bei jedem Aufruf für immer weiter, was immer es an jenem Tag getan hat, und nichts, was jemand upstream tut, erreicht es noch. Das ist keine Hypothese: Als dieses Jahr die Bildschirmauflösung aus dem Zähler entfernt wurde, schickten Kopien des alten Skripts sie weiterhin, und der einzige Weg, diese Erfassung zu beenden, war, den Server dazu zu bringen, den Wert von wirklich jedem abzulehnen.

Dasselbe gilt für Sicherheitskorrekturen, für Änderungen an dem, was gesendet wird, und für alles andere, was die Besucher einer Seite eigentlich erreichen sollte. Das Skript gehört verlinkt. Es ist eine Anfrage, es wird zwischengespeichert, und es bleibt aktuell.

Was dabei herauskommt, und was nicht

Heraus kommen Besucherzahlen, Tage, Länder, Browser, verweisende Domains, die meistbesuchten Seiten und eine Live-Ansicht, wer gerade auf der Seite ist. Für eine private Website, eine Projektseite oder ein kleines Schaufenster im Netz ist das in der Regel der gesamte Fragenkatalog.

Nicht heraus kommt eine Log-Analyse, weil es kein Log gibt. Ebenso wenig etwas über fehlgeschlagene Anfragen, Dateien mit 404 oder Bandbreite. Wo das wichtig ist, war statisches Hosting für dieses Problem ohnehin die falsche Form.

Noch etwas, das zu statischen Seiten passt

Für nichts davon ist ein Konto nötig. Es gibt keine Registrierung, kein Passwort, das in einem Repository landen könnte, und keinen Schlüssel, der in einen öffentlichen Commit durchsickern könnte – eine Art von Unfall, die statischen Projekten ungewöhnlich häufig passiert.

Anzeige