Die Datei, die wir kaputt nannten
Im Bilderverzeichnis dieses Projekts liegt eine Datei namens stats2.gif. Sie hat 366 Byte, das Datum März 2018, und sie kommt in genau null Zeilen Quelltext vor. Am 23. August 2026 wurde sie 2.735 Mal mit Status 200 ausgeliefert, von 145 verschiedenen Websites — und über die volle Drehung des Zugriffsprotokolls von 858.
Eine Datei, auf die niemand verweist, tausendfach am Tag von hunderten fremden Seiten geholt. Die naheliegende Lesart: eine alte Einbindung, die niemand ersetzt hat, und die still ein festes Bild ausliefert, wo einmal ein Zähler war. Statische Dateien laufen ganz an PHP vorbei. Was direkt bei Apache ankommt, kann nichts zählen.
Also haben wir ein Werkzeug geschrieben. Es liest jede verweisende Seite aus dem Protokoll, holt jede davon mit demselben Prüfer, den die Seite ohnehin für die Einbaudiagnose benutzt — samt seinen SSRF-Leitplanken, denn diese Adressen kommen aus einem Protokoll und nicht von uns — und sieht nach, ob auf der Seite überhaupt etwas zählt.
Alle 858 Seiten
| zählen bereits (ein funktionierender Einbau daneben) | 501 |
| gar nicht erreichbar | 288 |
| Abzeichen da, keine Zählernummer im Quelltext | 69 |
| nur das alte Abzeichen, nichts zählt | 0 |
Nicht eine. Fünfundsiebzig Minuten Abrufen, um nichts zu finden.
Die Messung, die eine Sekunde gedauert hätte
stats2.gif ist 13 mal 14 Pixel groß.
Das ist kein Zähler und kein Abzeichen mit einer Zahl darauf. Das ist das kleine Statistik-Symbol — dasselbe, das Entwurf 981 in der heutigen Galerie nachbaut, und der Kommentar in dessen eigenem Quelltext beschreibt den Vorläufer genau: kein sichtbarer Zählerstand, nur ein kleines Zeichen, das angeklickt die eigene Statistik öffnet. Es sollte nie zählen. Auf jenen Seiten hat immer etwas anderes gezählt.
Kaputt ist die Datei auch nicht. Sie antwortet mit 200, mit einem Last-Modified von 2018 und einem Jahr Cache-Lebensdauer. Sie tut ihre Arbeit.
Ein Aufruf von getimagesize() am Anfang hätte den ganzen Strang beendet, bevor das Werkzeug geschrieben war. Stattdessen lautete die Frage „warum wird diese Datei so oft geholt", die angenommene Antwort lautete „weil sie ein kaputter Zähler ist", und alles Weitere folgte aus einer Annahme, die niemand geprüft hat.
Das eine, was wirklich kaputt ist
Aus allem zeigte das Protokoll einen einzigen echten Defekt: eine Adresse, zehnmal am Tag angefragt, alle mit Status 410, in der ein ganzer Einbauschnipsel im href des Verweises gelandet ist. Jemand hat den Code in ein Feld eingefügt, das HTML maskiert. Sein Zähler lebt und zählt — ins Leere führt nur sein eigener Verweis auf seine eigene Statistik.
Das Werkzeug bleibt, ohne seinen Schreibpfad. Die Frage war berechtigt, die Antwort lautet nein, und beides gehört aufgehoben, damit niemand sie noch einmal von Hand stellen muss.