Eine Webseite besteht aus einem Code in Hypertext Markup Language (HTML), der von einem Browser interpretiert und dargestellt wird. Bei modernen Webseiten setzt sich dieser aus verschiedenen Quellen zusammen, die Einfluss auf den Inhalt, die Funktionalität, das Design oder alle drei Eigenschaften ausüben. Beim Server Side Rendering (SSR) übernimmt der Server die Verarbeitung aller Elemente und erzeugt auf Anfrage einen aktuellen und individualisierten HTML Code. Sein Gegenstück, bei dem der Browser den Quelltext selbst erstellt, ist das Client Side Rendering (CSR).
Welche Vorteile besitzt das Server Side Rendering?
Die ersten dynamischen Webseiten verwendeten reines Server Side Rendering und nutzten nahezu ausschließlich lokale Inhalte für die Einbettung veränderlicher Elemente. Ein typisches Beispiel dafür bildet der Aufstieg der Programmiersprache PHP, die lange Zeit als erste Wahl für attraktive Content Management Systeme (CMS) und Onlineshops galt. Ein entscheidender Grund für den Aufstieg von Server Side Rendering waren seine zahlreichen Vorteile gegenüber dem Client Side Rendering:
- Hohe Kompatibilität mit unterschiedlichen Browsern und Betriebssystemen
- Schnelles Laden der Startseite über eine einzige Verbindung
- Benötigt keine zusätzliche Software oder Plug-ins auf Seite des Anwenders
- Günstige SEO wegen rascher Ladezeiten der Seiten
- Flexible Integration externer Programmiersprachen wie Python, Perl, JavaScript und C/C++
- Keine Abhängigkeiten zu nicht installierten oder veralteten Bibliotheken
- Interne Verarbeitung bewirkt verbesserte Sicherheit gegenüber Cyberangriffen von außen
- Einfache, zentrale Kontrolle des Designs durch Anweisungen in CSS
Allerdings führt das relativ strenge Konzept der einseitigen Verarbeitung von Skripten zu Einschränkungen und Nachteilen, die für eine optimale Entscheidung zwischen Server Side Rendering und Client Side Rendering berücksichtigt werden müssen.
Worin liegen die Nachtteile von Server Side Rendering
Das Entstehen und die zunehmende Popularität von Frameworks haben das moderne Programmieren stark verändert. In Verbindung mit der zunehmenden Rechenleistung von Endgeräten führte dies zu einem starken Anstieg von Webseiten, die ein Client Side Rendering verwenden. Den wesentlichen Ausschlag gab die wachsende Komplexität von Inhalten, die neben interaktiven Elementen ebenfalls das Einbinden von fremdem Material einschließlich Video- oder Audiostreams einschließen. Unter diesen Voraussetzungen zeigt das Server Side Rendering starke Nachteile:
- Jede Aktualisierung einer Webseite erfordert ein vollständiges neues Laden
- Hoher Verbrauch von Ressourcen auf Seiten des Servers
- Eingeschränkte Interaktion zum Beispiel für Menüs oder Browserspiele
- Sinkende Performance und Effizienz bei steigender Zahl von Zugriffen
- Nicht für Applikationen mit wechselnden Informationen oder Chats in Echtzeit geeignet
Aus diesem Grund verwenden einige Webseiten mittlerweile eine Kombination aus Client Side und Server Side Rendering. Dieser Ansatz hat sich vor allem für sogenannte progressive Web-Apps durchgesetzt, die Grundfunktionen innerhalb eines begrenzten Rahmens erfüllen, dabei aber auf die Kommunikation mit anderen Programmen oder Informationsquellen angewiesen sind.
Welche Faktoren entscheiden die optimale Lösung zwischen CSR und SSR?
Aufgrund seiner langen Geschichte und kontinuierlichen Entwicklung gilt das Server Side Rendering nach wie vor als erste Wahl, wenn die Priorität auf Erreichbarkeit, Stabilität und einer leichten Integration von fremden Anbietern liegt. Allerdings zeigt es Schwächen, wenn die aktuellen Bedingungen für Webseiten berücksichtigt werden. Der Trend geht zu einer vielseitigen Integration von fremden Anbietern von Medien und sozialen Netzwerken. Hier bieten sich mittlerweile weit fortgeschrittene hybride Modelle an, die eine Webseite anhand klassischer Parameter wie CSS erstellen. Sie erlauben es gleichzeitig, einzelne Elemente lokal zu verarbeiten und fremde Quellen etwa durch JavaScript zu integrieren. Alternative Ansätze bilden zum Beispiel Server Side Includes.