# Server (Software)

Ein Server (englisch to serve ‚bedienen‘) ist ein Programm, das auf die Kontaktaufnahme eines Clients wartet, um eine bestimmte Dienstleistung für ihn zu erfüllen. Die Kommunikation erfolgt nach dem Client-Server-Modell. Die Dienstleistung des Servers ist spezifisch für den Server, so dass für jede Dienstleistung ein eigener Server existiert. Die Dienstleistung des Servers nennt man Dienst, und der Datenaustausch zwischen Client und Server ist durch ein dienstspezifisches Protokoll festgelegt.
Rechner, auf denen Server-Software ausgeführt wird, werden als Host bezeichnet. Die hier behandelte Bedeutung von Server als eine Software, die einen Dienst für Nutzer anbietet, ist die ursprüngliche korrekte Definition in der Informatik. Dass auch der Host-Rechner und somit die Hardware als Server bezeichnet wird, ist eine durch den Sprachgebrauch später hinzugekommene sekundäre Bedeutung, die jedoch in der Alltagssprache mittlerweile geläufiger ist als die originale, korrekte Definition.

## Beispiele

* Das World Wide Web besteht aus Webseiten, die mittels des Hypertext Transfer Protocols (HTTP) von Servern an den Webbrowser übertragen werden. Server, die HTTP implementieren, d. h. die es beherrschen, werden als HTTP-Server oder Web-Server bezeichnet. Ein Zugriff erfolgt über HTTP-Clients (Web-Browser). Mit einer Variante des HTTP, dem HTTPS, werden ebenfalls Webseiten übertragen, wobei der Übertragungsweg durch eine Verschlüsselung geschützt ist.
* Server, die ein Protokoll zur Dateiübertragung implementieren, werden allgemein als Datei-, Daten- oder File-Server bezeichnet. Die dazu im Internet am häufigsten verwendeten Datenübertragungsprotokolle sind FTP und SFTP. In lokalen Computernetzwerken (LAN), etwa innerhalb von Unternehmen, kommt dagegen meist SMB oder NFS als Protokoll zur Anwendung.
* Außerdem gibt es noch Anwendungsserver. Es handelt sich dabei um eine Software, die spezielle Dienste zur Verfügung stellt, wie beispielsweise Transaktionen, Authentifizierung oder den Zugriff auf Verzeichnisdienste, Webservices und Datenbanken über definierte Schnittstellen.

## Verfügbarkeit und Clustering

Ein Server läuft entweder permanent oder wird auf Anfrage eines Clients gestartet (Unix: siehe daemon mode, inetd). Um die Ausfallsicherheit und Leistungsfähigkeit zu erhöhen, können mehrere Server als Cluster zusammengeschaltet werden. Diese können sowohl auf einem als auch auf mehreren Hosts verteilt sein. Fällt ein oder fallen mehrere Server aus, so übernehmen die noch vorhandenen Server die Anfrage der Clients.

## Bekannte Server-Typen

| Server-Typ | Protokolle | Erklärung |
| Authentifizierungsserver | RADIUS | enthält eine Datenbank mit Benutzer-IDs, Kennwörtern, IP-Adressen und anderen Informationen. |
| Chat-Server | IRC, XMPP | vermittelt die Daten unter Chatteilnehmern. |
| Dateiserver | FTP, SFTP, WebDAV | ermöglichen die Übertragung von Dateien. |
| Dateiserver | NFS, SMB | erlauben das Bearbeiten von entfernten Dateien über einen Client. Im Allgemeinen sind auch konkurrierende Zugriffe möglich. Im Gegensatz zu einem Dateitransferdienst werden nicht die gesamten Dateien, sondern nur die auf den Dateien angewendeten Operationen und die speziell dazugehörenden Daten übertragen. |
| Datenbankserver | CLI (ODBC, JDBC), DBI | verwalten eine oder mehrere Datenbanksysteme. |
| Digital Media Server | DMS | stellen Medieninhalte (z. B. Filme, Bilder, Musik) zur Verfügung. |
| Druckerserver | LPDP | vermitteln Zugriff auf Drucker. |
| DHCP-Server | DHCP | weisen Rechnern im Netzwerk u. a. dynamisch IP-Adressen zu. |
| Gameserver | diverse | werden für Onlinespiele genutzt. |
| Mailserver | SMTP, POP3, IMAP | dienen zum Versenden und Empfangen von E-Mails. |
| Mapserver | | stellen auf Geodaten spezialisierte Webservices (Geodienste) bereit. |
| Name-Server | DNS | Die DNS Root Nameserver sind die wichtigsten Nameserver des Domain Name Systems. |
| Newsserver | NNTP | NNTP ist ein Protokoll zum Austausch von Textnachrichten im Usenet. |
| Proxyserver | | stellen zwischengespeicherte Informationen anderen Computern zur Verfügung. |
| Streaming-Server | diverse | können beispielsweise Internetradio ausstrahlen (z. B. VLC). |
| Terminalserver | RDP, VNC | stellen anderen Computern (meist Thin Clients) eine emulierte Arbeitsumgebung zur Verfügung. |
| Webserver | HTTP/HTTPS | liefern Websites an Webclients aus. |
| Zeitserver | NTP | dienen zur Synchronisierung von Rechneruhren. |
Server erwarten Kontaktaufnahmen von Clients auf bestimmten Ports. Jedem Server wird mindestens ein Port zugeordnet. Ein bestimmter Server wird mit einer seiner Portnummern in Verbindung mit einer Adresse seines Hosts angesprochen. Die Kommunikation erfolgt über Sockets.