Was bedeutet clientseitig und serverseitig? | Clientseitig vs. serverseitig

Die Begriffe clientseitig und serverseitig geben an, wo der Code der Webanwendung ausgeführt wird.

Lernziele

Nach Lektüre dieses Artikels können Sie Folgendes:

  • Das Client-Server-Modell verstehen
  • Die Prozesstypen kennen, die auf Clients und Servern stattfinden
  • Die Beziehung von Clients und Servern mit dem Front-End und Back-End von Anwendungen verstehen
  • Die Beeinträchtigung serverseitiger Prozesse durch Verwendung einer serverlosen Architektur verstehen

Link zum Artikel kopieren

Was sind Clientseite und Serverseite?

Clientseite und Serverseite sind Begriffe aus der Webentwicklung, durch die angegeben wird, wo der Anwendungscode ausgeführt wird. Webentwickler sprechen bei dieser Unterscheidung auch von Front-End und Back-End, obwohl Clientseite/Serverseite und Front-End/Back-End nicht völlig das Gleiche sind. In einer serverlosen Architektur hostet der serverlose Anbieter Ressourcen für alle serverseitigen Prozesse und weist sie ihnen zu, und die Prozesse nehmen mit zunehmender Anwendungsnutzung an Größe zu.

Was ist das Client-Server-Modell?

Ein großer Teil des Internets basiert auf dem Client-Server-Modell. In diesem Modell kommunizieren Benutzergeräte über ein Netzwerk mit zentral positionierten Servern, um die nötigen Daten zu erhalten, anstatt direkt miteinander zu kommunizieren. Endbenutzergeräte wie Laptops, Smartphones und Desktop-Computer werden als Clients (Kunden) der Server (Zusteller) betrachtet, als ob es sich um Kunden handelte, die Dienstleistungen von einem Unternehmen beziehen. Clientgeräte senden Anfragen nach Webseiten oder Anwendungen an die Server, und die Server geben Antworten.

Das Client-Server-Modell wird verwendet, weil Server gewöhnlich leistungsstärker und zuverlässiger sind als Benutzergeräte. Sie werden auch kontinuierlich gewartet und in kontrollierten Umgebungen gehalten, damit sichergestellt wird, dass sie immer eingeschaltet und verfügbar sind. Obwohl einzelne Server ausfallen können, gibt es gewöhnlich andere Server zu ihrer Sicherung. Indessen können Benutzer ihre Geräte ein- und ausschalten, sie verlieren oder beschädigen, und der Internetdienst für andere Benutzer sollte dadurch nicht beeinträchtigt werden.

Server können mehrere Clientgeräte auf einmal bedienen, und jedes Clientgerät sendet beim Zugriff auf Websites und beim Browsen im Internet Anfragen an mehrere Server.

Mehrere Clients und Server interagieren:

Many-to-many-Beziehung innerhalb des Client-Server-Modells

Jeder Client kommuniziert mit mehreren Servern und umgekehrt.

Nehmen wir einmal an, dass ein Benutzer im Internet browst und „netflix.com“ in seine Browsersuchleiste eingibt. Dieser Vorgang führt zu einer Anfrage an DNS-Server für die IP-Adresse von netflix.com, und die DNS-Server antworten auf diese Anfrage, indem sie die IP-Adresse an den Browser senden. Als Nächstes stellt der Browser des Benutzers eine Anfrage an Netflix-Server (mit der IP-Adresse) für den Inhalt, der auf der Seite erscheint, z. B. die Film-Miniaturbilder, das Netflix-Logo und die Suchleiste. Netflix-Server liefern diesen Inhalt an den Browser, und der Browser lädt die Seite auf dem Clientgerät.

Was bedeutet „Clientseite“?

Bei der Webentwicklung bezieht sich der Begriff „Clientseite“ auf alles in einer Webanwendung, was auf dem Client (Endbenutzergerät) dargestellt wird oder stattfindet. Dazu gehört das, was der Benutzer sieht – Text, Bilder und der Rest der Benutzeroberfläche – sowie alle Aktionen, die eine Anwendung im Browser des Benutzers ausführt.

Auszeichnungssprachen wie HTML und CSS werden vom Browser auf der Clientseite interpretiert. Darüber hinaus schließen viele Entwickler heute clientseitige Prozesse in ihre Anwendungsarchitektur ein und lassen nicht mehr alles auf der Serverseite ausführen. Zum Beispiel wird Geschäftslogik für dynamische Webseiten* in einer modernen Webanwendung gewöhnlich auf der Clientseite ausgeführt. Clientseitige Prozesse werden fast immer in JavaScript geschrieben.

Im obigen netflix.com-Beispiel werden HTML, CSS und JavaScript, die dafür verantwortlich sind, wie die Netflix-Hauptseite dem Benutzer dargestellt wird, vom Browser auf der Clientseite interpretiert. Die Seite kann auch auf „Ereignisse“ reagieren: Wenn zum Beispiel die Maus des Benutzers auf eines der Film-Miniaturbilder zeigt, wird das Bild erweitert, und benachbarte Miniaturbilder bewegen sich etwas zur Seite, um Platz für das größere Bild zu schaffen. Das ist ein Beispiel eines clientseitigen Prozesses. Der Code in der Webseite selbst reagiert auf die Maus des Benutzers und initiiert diese Aktion, ohne mit dem Server zu kommunizieren.

Die Clientseite ist auch als Front-End bekannt, obwohl diese beiden Begriffe nicht genau dasselbe bedeuten. Der Begriff „Clientseite“ bezieht sich ausschließlich auf den Ort, an dem Prozesse ausgeführt werden, während sich der Begriff „Front-End“ auf die Arten von Prozessen bezieht, die an der Clientseite laufen.

*Eine dynamische Webseite ist eine Webseite, die nicht denselben Inhalt für alle Benutzer darstellt und sich abhängig von Benutzereingaben ändert. Die Facebook-Homepage ist eine dynamische Seite, die Facebook-Anmeldeseite ist größtenteils statisch.

Was bedeutet „Serverseite“?

Ähnlich wie Clientseite bedeutet „Serverseite“ alles, was auf dem Server stattfindet, anstatt auf dem Client. In der Vergangenheit wurde fast die gesamte Geschäftslogik auf der Serverseite ausgeführt. Dazu gehörten die Wiedergabe dynamischer Webseiten, Interaktionen mit Datenbanken, Authentifizierungen von Identitäten und Pushbenachrichtigungen.

Das Problem dabei, alle diese Prozesse an der Serverseite unterzubringen, besteht darin, dass jede Anfrage zu einem dieser Prozesse jedes Mal den ganzen Weg vom Client zum Server zurücklegen muss, wodurch ein hohes Maß an Latenz verursacht wird. Aus diesem Grund führen neue Anwendungen mehr Code auf der Clientseite aus. Ein Anwendungsfall wäre die Wiedergabe von dynamischen Webseiten in Echtzeit durch Ausführung von Skripts im Browser, durch die Änderungen an dem Inhalt vorgenommen werden, die ein Benutzer zu sehen bekommt.

Ähnlich wie bei den Begriffen „Front-End“ und „Clientseite“ ist auch „Back-End“ eine Bezeichnung für die Prozesse, die auf dem Server stattfinden, obwohl sich „Back-End“ nur auf die Prozesstypen und „Serverseite“ auf den Ort bezieht, an dem die Prozesse ausgeführt werden.

Was ist clientseitiges Skripting? Was ist serverseitiges Skripting?

Clientseitiges Skripting bedeutet einfach, das Skripts wie z. B. JavaScript auf dem Clientgerät ausgeführt werden – gewöhnlich in einem Browser. Alle Arten von Skripts können auf der Clientseite laufen, wenn sie in JavaScript geschrieben sind, weil JavaScript universell unterstützt wird. Andere Skriptsprachen können nur verwendet werden, wenn der Browser des Benutzers sie unterstützt.

Serverseitige Skripts laufen auf dem Server, anstatt auf dem Client – oft, um dynamischen Inhalt als Reaktion auf Benutzeraktionen an Webseiten zu liefern. Serverseitige Skripts brauchen nicht in JavaScript geschrieben zu werden, weil der Server eine Vielzahl von Sprachen unterstützen kann.

Skripts werden clientseitig und serverseitig ausgeführt:

Clientseitiges Scripting und serverseitiges Scripting

Daten gehen zwischen Client und Server hin und her, und Skripts können auf beiden Seiten ausgeführt werden.

Wie funktionieren serverseitige Prozesse in einer serverlosen Architektur?

Bei der serverlosen Datenverarbeitung werden alle serverseitigen bzw. Back-End-Prozesse immer noch auf Servern anstatt auf Clientgeräten ausgeführt, aber sie werden nicht auf einem spezifischen Server oder einer Gruppe von Servern bereitgestellt. Back-End-Prozesse werden in Funktionen unterteilt, die auf Anfrage ausgeführt und automatisch skaliert werden. Entwickler können in einer serverlosen Architektur immer noch die gesamte Funktionalität erstellen, die gewöhnlich auf der Serverseite läuft.

Laufen Cloudflare Workers serverseitig oder clientseitig?

Cloudflare Workers sind serverlose JavaScript-Funktionen, die auf Anfrage ausgeführt werden und die im Edge-Netzwerk laufen, das Cloudflare für CDN-Caching verwendet – zwischen dem Client und dem Ursprungsserver. So werden Entwickler in die Lage gesetzt, serverlose Back-Ends zu erstellen, die zwar technisch gesehen an der Serverseite sind, sich aber so nahe wie möglich am Clientgerät befinden, wodurch Latenz reduziert wird und Anwendungen schneller auf Interaktionen mit Benutzern reagieren können.

Um mit Cloudflare Workers zu beginnen, lesen Sie unsere Dokumentation für Entwickler.