Im Jahr 1994 bedeutete eine dynamische Website, ein C-Programm zu schreiben, es in ein cgi-bin-Verzeichnis zu legen und Apache es bei jeder Anfrage per fork ausführen zu lassen. Zweiunddreißig Jahre später hat der Autor mit marketyour.games ein kommerzielles Web-Produkt veröffentlicht, das im Grunde auf derselben Technologie beruht. Das Produkt umfasst Benutzerkonten, ein Suchdashboard für Content-Creator, Ordner zu deren Organisation, Zahlungen über Stripe und transaktionale E-Mails über Postmark. Es folgt dem Prinzip der progressiven Verbesserung und benötigt kein JavaScript.
Der Stack heißt BCHS: OpenBSD, C, httpd und SQLite. Es gibt kein Framework, keine Template-Sprache und keinen separaten Datenbankserver. Das C-Programm liest CGI-Umgebungsvariablen und gibt HTML direkt aus. Das Binary ist statisch gelinkt und wird durch Austausch einer einzigen Datei bereitgestellt, sodass neue Anfragen die neue Version ohne Serverneustart und Ausfallzeit verwenden. Die OpenBSD-Funktionen pledge und unveil helfen, das Programm abzusichern, und httpd liefert aus einem chroot aus. Abhängigkeiten sind auf libcurl für ausgehende Anfragen, libsodium für Identifikatoren, Passwort-Hashing und die Verifizierung von Stripe-Webhooks sowie libcjson für die JSON-Verarbeitung beschränkt. Ein sauberer Build dauert wenige Sekunden.
Der Autor schätzt CGI wegen seiner Grundlagen statt wegen Frameworks. Die 2004 veröffentlichte Spezifikation 1.1 hat sich nicht verändert, und wer HTTP versteht, versteht auch CGI. Es ist sprach- und plattformunabhängig und bewahrt eine klare Trennung der Zuständigkeiten: Ein einzelner Webserver ruft die Geschäftslogik direkt auf, statt per Reverse-Proxy an einen separaten Anwendungsserver weiterzuleiten. Anwendungen sind gewöhnliche Programme, die sich aus einer Shell starten und mit gdb debuggen lassen.
Dieser Ansatz bietet außerdem ein minimales Risiko in der Lieferkette, ein wichtiger Vorteil angesichts aktueller Angriffe auf Paket-Repositories. Mit so wenigen Abhängigkeiten ist die Gefahr durch kompromittierte Pakete geringer. Der Autor argumentiert, dass der Niedergang von CGI 2004 gerechtfertigt war, sich 2026 aber nicht mehr halten lässt und eine moderne Web-Anwendung tatsächlich in C geschrieben werden kann.
Quelle: Hacker News · Zusammengefasst von HeadlinesBriefing