Client
Ein Client (über englisch client aus lateinisch cliens wörtlich für „Klient“ oder „Kunde“)[1] – auch clientseitige Anwendung, Clientanwendung oder Clientprogramm – bezeichnet im Client-Server-Modell ein Computerprogramm, das auf dem Endgerät eines Netzwerks ausgeführt wird und mit einem Server kommuniziert. Man nennt auch ein Endgerät selbst, das Dienste von einem Server abruft, Client.
Das Gegenstück zum Client ist das jeweilige Serverprogramm bzw. der Server selbst, auch Host genannt.
Clientseitige Anwendungen
Eine wichtige Gruppe von clientseitigen Anwendungen sind die Webbrowser, wie z. B. Mozilla Firefox, Internet Explorer oder Apple Safari, welche das HTTP-Protokoll zur Datenkommunikation mit einem Webserver verwenden, um von diesem Daten abzufragen und sie anschließend dem Nutzer darzustellen.
Ein weiteres Beispiel sind E-Mail-Clients: Sie nehmen Kontakt zu einem E-Mail-Server auf, um E-Mails von ihm abzuholen und über ihn zu versenden. Der Client muss dazu nicht ständig in Betrieb oder mit einem Netzwerk verbunden sein, denn der Mailserver nimmt die eingehenden E-Mails entgegen.
Viele Clients werden nicht von Benutzern bedient, sondern arbeiten im Hintergrund als Systemdienst, wie zum Beispiel DNS-Clients. Sie nehmen automatisch Verbindung mit DNS-Servern auf, wenn zu einem Servernamen, wie de.wikipedia.org, die IP-Adresse benötigt wird.
Das Ajax-Konzept findet bei clientseitigen Anwendungen, die in Webseiten eingebettet sind, eine wachsende Bedeutung. Andere Clientanwendungen, welche über eigene proprietäre Client-Serverprotokolle verfügen, sind zum Beispiel der Citrix- oder der SAP-Client.
Zwischen einem Client und einem Server gibt es zur Datenübertragung und zur Interaktion ein definiertes Protokoll, welches in der Regel einem Request/Response-Schema folgt. Durch eine clientseitige Programmierung kann das Request/Response-Schema unterbrochen werden, indem man bestimmte Funktionen wie zum Beispiel kurzzeitige Reaktionen auf Benutzerinteraktionen direkt clientseitig durchführt, ohne einen Client-/Server-Rundlauf auszulösen. Oft handelt es sich dabei um ein rekursives Konzept. In einer Clientanwendung (z. B. Webbrowser) läuft eine zweite Anwendung (zum Beispiel ein JavaScript in der aktuellen HTML-Seite).
Meistens treten clientseitige Anwendungen in einer Mischform mit einer serverseitigen Anwendung auf.
Eine in diesem Bereich häufig verwendete Programmiersprache ist JavaScript. Der Quellcode wird in die HTML-Seite eingebaut und durch den Browser interpretiert. Eine Alternative dazu bietet beispielsweise die proprietäre Sprache VBScript des Softwareherstellers Microsoft.
Clientseitige vs. serverseitige Zustandspeicherung
Wichtig ist im Zusammenhang auch, wie der Kontext einer Benutzersitzung gespeichert werden kann. Zum Beispiel ist HTTP zustandslos (stateless), kann sich also serverseitig grundsätzlich keine Daten zwischen zwei Datenanforderungen merken. Eine clientseitige Anwendung kann das Cookie-Konzept verwenden, um Informationen auf der Clientseite zu speichern, welche von einem clientseitigen Folgescript zu einem späteren Zeitpunkt wieder ausgelesen werden. Cookies bieten allerdings keine Form der Datensicherheit und können z. B. auch von anwendungsfremder Spyware ausgelesen werden. Diese funktionale Lücke wird teilweise durch das Konzept eines serverseitigen Sessionmanagement geschlossen.
Die an sich zustandslose Client-/Server-Kommunikation wird dadurch zu einem System, in dem die Sitzungsdaten auf dem Server über mehrere Datenanforderungen aufrechterhalten werden können. Dadurch werden (z. B. durch ein Passwort geschützte) Sitzungen möglich.
Vorteile
- Zur Lösung einiger Probleme (Gültigkeit von Formulareingaben) kann auf die Mitwirkung des Webservers verzichtet werden.
- Es wird ein Dialog mit dem Benutzer ermöglicht.
- Die Ästhetik der Webseite kann verbessert werden (z. B. wechselnde Inhalte und Darstellung in Abhängigkeit von der Mausposition).
Nachteile
- Der Quellcode ist für den Nutzer sichtbar und zugänglich. Das kann unter Umständen unerwünscht sein.
Arten von Clients
Man unterscheidet konventionelle Fat Clients (auch rich- oder smart clients) und Thin Clients (auch lean- oder slim clients).
Hardware
Als Clients bezeichnet man auch all jene Computer in einem Netzwerk, die im Gegensatz zu den Servern keine Dienste bereitstellen.
Literatur
- Frank Geisler: Datenbanken – Grundlagen und Design. 5. aktualisierte und erweiterte Auflage, Verlagsgruppe Hüthig, München 2014, ISBN 978-3-8266-9707-4.
- Johann Anton Illik: Verteilte Systeme. Architekturen und Software-Technologien. Expert Verlag, Renningen 2007, ISBN 978-3-8169-2730-3.
Weblinks
Einzelnachweise
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.