•  
  •  
  •  
  •  
  •  
Web Development

Statisch statt dynamisch: Was bringen statische Website-Generatoren?

Webentwickler schwärmen von Static Site Generators. Worum handelt es sich, was können diese Tools und wofür sind sie weniger geeignet? Eine aktuelle Standortbestimmung.

16.07.2019Text: bbv0 Kommentare
static site generators
  •  
  •  
  •  
  •  

In den Urzeiten des World Wide Web wurden Webseiten als statische HTML-Dokumente vom Webserver an den Browser ausgeliefert. Dann wurde das Web dynamisch: Die meisten Webauftritte setzen bis heute auf Content-Management-Systeme wie Typo3, Drupal oder WordPress. Dies ermöglicht dynamische Interaktionen und die bequeme Redaktion der Inhalte durch den Nutzer ohne HTML-Kenntnisse – aber es bringt einen entscheidenden Nachteil mit sich: Bei jedem Aufruf einer Seite laufen auf dem Webserver zahlreiche Prozesse ab. Datenbankverbindungen werden aufgebaut und geschlossen, Daten werden abgerufen, HTML wird dynamisch erzeugt. Darunter leidet die Performance, und die Leistungsansprüche an den Webserver steigen.

Back to the Roots

In den letzten Jahren geniessen Static Site Generators in der Webentwicklerszene zunehmende Beliebtheit. In gewisser Weise kommt man damit wieder auf die Anfänge des Web zurück: Ein Static Site Generator generiert aus den Inhalten und einem Template ein fixfertiges HTML-Dokument und legt es auf dem Webserver ab. Beim Aufruf der Seite wird dieses vorgefertigte, statische Dokument dann an den Browser übermittelt. Die ganzen Prozesse, die bei dynamisch ausgelieferten Seiten nötig sind, fallen weg. Tests zeigen, dass statische Webseiten bis zu sechsmal schneller angezeigt werden als dynamische, selbst wenn die dynamische Version stark optimiert wurde.

Dass das statische Web erneut in den Fokus gerät, kommt nicht von ungefähr. Erstens werden die Browser immer leistungsfähiger. Viele rechenaufwändige Vorgänge lassen sich per Javascript im Browser erledigen, ohne den Webserver zu bemühen. Zweitens wird der Performance-Aspekt mit immer mehr mobilen Nutzern besonders wichtig. Und drittens – wir leben ja im Zeitalter der Cyberkriminalität – sind statische Webseiten sicherer. Es gibt keine Schwachstellen, in die sich Hacker zum Beispiel durch SQL-Injection in die Datenbankzugriffe einklinken können.

Static Site Generators sind Entwicklertools

Der Grossteil der aktuellen Static Site Generators haben jedoch einen «Nachteil». Es sind Entwicklertools, die offensichtlich nicht auf den Endnutzer ausgelegt sind. Sie werden meist über die Kommandozeile bedient. Die für die Inhalte zuständigen Web-Redaktoren liefern typischerweise nur die Markdown-Dokumente an. Markdown ist eine ziemlich einfache Markup-Syntax, einfacher zu erlernen als die Verwaltung eines CMS. Die Generierung der HTML-Seiten übernimmt dann der Webentwickler oder Webmaster. Es gibt jedoch bereits erste Content-Management-Systeme und sogar E-Commerce-Systeme, die statische Seiten erzeugen. Ein Überblick über die mehr als 250 aktuellen Static Site Generators findet sich unter www.staticgen.com.

Und für welchen Fall eignen sich die Static Site Generators? Naturgemäss eignen sich statische Webseiten weniger für Webapplikationen mit vielen User-Interaktionen und Datenabfragen. Ein Beispiel: Ein Blog mit neuen Posts alle paar Tage lässt sich bestens mit einem Static Site Generator bewirtschaften, eine News-Site mit Updates im Sekundentakt ist ein Kandidat für ein dynamisches CMS.

Der Experte

Thorsten Meister

Thorsten Meister ist Software-Ingenieur bei bbv. Als Full-Stack .NET Entwickler ist er ein Befürworter pragmatischer Lösungen. Dazu gehört, sich vor jeder Herausforderung Gedanken zu machen, wie man diese mit möglichst geringer Komplexität lösen kann. Ganz nach dem Motto: Weniger ist mehr.

Unser Wissen im Abo

Diese Technologien sollten Sie im Auge behalten

Technologie-Trends 2019/2020

Digitalisierung
Software modernisieren

5 Wege, Software zu modernisieren

Innovation
User Centered Design

UCD: Der Schlüssel für erfolgreiche Software

Softwareentwicklung

Artikel kommentieren

Die E-Mail-Adresse wird nicht publiziert. Notwendige Felder sind mit einem * versehen.