Auch wenn ich beruflich fast ausschließlich mit nicht statischen (also dynamischen) Seiten zu tun habe, will ich hier eine Lanze für statische Seiten brechen. Aber zunächst mal zu dem was ich unter statischen bzw. dynamischen Seiten verstehe:
Eine dynamische Seite ist jede Seite, die ein Backend hat das Inhalte dynamisch erzeugt und meistens ist dabei eine Datenbank involviert. In der Regel gibt es also eine Persistenzebene neben dem reinen HTML-Dokument.
Eine statische Seite kommt ohne diese zusätzliche Persistenzebene aus. Kurz gesagt: Eine statische Seite ist ein Dokument das von einem Autor geschrieben und bereitgestellt wird.
Mir ist klar, dass an statische Seiten nicht die gleichen Anforderungen gestellt werden dürfen wie an dynamische Seiten und jeder muss für sich selber herausfinden, ob für seine spezifischen Zwecke eine statische Seite ausreicht. Mir geht es vor allem darum, vor der Erstellung einer Webseite zu überlegen, welche Funktionalität benötigt wird und ob nicht eine statische Seite ausreichend sein könnte.
Ich habe bei vielen kleineren (meist privaten) Projekten die Erfahrung gemacht, dass statische Seiten eine echte Alternative zu dynamischen Seiten sein können. Diese Vorteile will ich im Folgeden durchgehen und im Anschluss auch die Nachteile nicht verschweigen. Die hier getroffenen Einschätzungen sind höchst subjektiv.
Vorteile
Sicherheit
Da statische Seiten ohne Backend auskommen sind die Angriffsmöglichkeiten beschränkt. Sofern die Seite öffentlich zugänglich ist, gibt es wenig Grund dafür einen Angriff auf die Seite zu unternehmen der über eine DOS-Attacke hinausgeht. SQL- und Script-Injection sind ausgeschlossen und Daten können auch keine geleakt werden.
Außerdem gibt es kein Backend welches regelmäßig aktualisiert werden müsste. Natürlich sollte die Infrastruktur (zu der ich den bereitstellenden Webserver zähle) auf einem aktuellen und gut konfigurierten Stand sein. Aber es müssen keine DBMS, Runtimes oder Frameworks gepflegt werden.
Fehlerfreiheit
Statische Seiten bieten wenig Gelegenheit für Fehler. Klar, Rechtschreibfehler wird man auch hier finden und vielleicht gibt es den einen oder anderen toten Link. Das alles ist aber nichts im Vergleich zum Fehlerpotential das dynamische Seiten in aller Regel aufweisen. Vielleicht ist Fehlerfreiheit hier also die falsche Überschrift, in jedem Fall haben Fehler aber deutlich unkritischere Auswirkungen als es bei dynamischen Seiten der Fall ist. Natürlich ist dieser Vorteil durch fehlende Funktionalität erkauft.
Schnelligkeit
Sofern nicht große Dateien Teil der statischen Seite sind, werden die Ladezeiten gering ausfallen. Da sich statische Seiten auch nur selten verändern, können Browser sie auch sehr gut cachen. Dieser Vorteil kann allerdings durch die Einbindung von Scripten auch schnell wieder verspielt werden.
Einfach zu erstellen
In der Regel sollte die Erstellung einer statischen Seite leicht von der Hand gehen. Selbst wenn man sich keiner Helferchen bedient. Auch hier gilt aber wieder: Wenn Funktionalität eingebaut wird oder das Design besonders hübsch ausfallen soll, dann kann dieser Vorteil schnell verloren gehen. Allerdings gilt das auch für dynamische Seiten.
In vielen Fällen ausreichend
Für rein informative Seiten die nicht den Anspruch haben mit dem Benutzer in Interaktion zu treten reichen statische Seiten in aller Regel aus. Eine Seite auf der sich z.B. ein Unternehmen vorstellt benötigt nicht zwingend ein CMS, da sich die Inhalte hier nicht häufig ändern werden.
Datenschutzrechtlich unbedenklich
Vorausgesetzt der Webserver ist entsprechend konfiguriert (Stichowrt IP-Adressen in Log Files) und es werden keine Fremdinhalte eingebunden oder Dinge wie Reichweitenmessung unternommen, reicht bei einer statischen Webseite eine entsprechende Datenschutzerklärung um alle DSGVO-Ängste zu zerstreuen.
Nachteile
Keine Interaktion mit Nutzern
Es liegt in der Natur statischer Seiten, dass eine Interaktion mit dem Betrachter einer statischen Seite ohne Umwege nicht möglich ist. Kommentare zu diesem Artikel hier können nur auf Fremdplattformen abgegeben werden. Das ist der Reichweite dieses Artikels sicher nicht zuträglich.
Unflexibel bei Anpassungen
Nachdem der Artikel morgen online gegangen ist und ich ihn mir das erste mal unterwegs mit dem Handy ansehe, werde ich zahlreiche Rechtschreibfehler feststellen. Diese dann zu korrigieren ist mit dem Handy zwar möglich, aber keine Freude (Quelldatei mit dem VIM direkt auf dem Server editieren, etc.). An dieser Stelle werde ich mir die Möglichkeit wünschen den Artikel mit Hilfe eines Formulars zu bearbeiten.
Fazit
Statische Seiten sollten immer dann verwendet werden, wenn keine Interaktion mit dem Anwender nötig ist oder Daten gespeichert werden sollen. Hier können Seiten mit speziellen Aufgaben besonders in betracht kommen. Ein Beispiel für eine solche Seite könnten Dokumentationsseiten für Software sein. Hier ist in der Regel keine Interaktion mit dem Nutzer nötig.
Statische Seiten sind eine gutes Beispiel für das gelebte KISS-Prinzip. Wenn eine statische Seite ausreicht um ihren Zweck zu erfüllen, gibt es keinen Grund sie mit einem Backend und dynamischen Inhalten aufzublasen.
Helferchen
Nur weil eine Seite für den Nutzer statisch ist, heißt das nicht, dass die Erzeugung der Seite nicht dynamisch sein kann. Diese Seite hier wurde mit einem Satz von Scripten Anvil erzeugt, die auf Jinja und Less zurückgreifen um die Vorteile von Templating und dynamisch erzeugtem CSS zu nutzen. Das Resultat ist zwar eine Reihe von HTML- und CSS-Dateien, während der Erstellung kann aber z.B. Coderedundanz vermieden werden.