- kommt von "to serve" = dienen
- stellt Dienste für Client Programme (z. B. Browser) zur Verfügung, meist in einem Netzwerk
- Hardware Server (auch Host): Gerät, auf dem die Server Software läuft; oft dafür optimierte Hardware; meist 24h in Betrieb
- Software Server: Software, die Dienste zur Verfügung stellt (ggf. auch mehrere), z. B.
- Webserver: Abruf von Inhalten in Form von Dateien; statischer Content (z. B. HTML Seiten, Bilder, CSS Dateien) oder dynamischer Content (wird je Anfrage erzeugt)
- Fileserver: Zugriff auf Dateien
- Mailserver: Senden von Emails
- Nameserver: Domainnamen in IPs übersetzen
- Datenbankserver: Daten verwalten
Server kann theoretisch auch lokal betrieben werden (localhost, vor allem für Entwicklung)
Webserver Funktionsweisen
- Thread basiert:
- eigener Thread/Prozess für die Bearbeitung eines Requests
- mehrere Threads parallel und unabhängig voneinander
- Apache HTTP Server (1995), Open-Source, plattformübergreifend; IIS Internet Information Service von Microsoft (1994), nur auf Windows Servern
- Event basiert:
- ein Thread (oder wenige) für tausende Anfragen
- Event Loop die nacheinander die Warteschlange mit Ereignisse abarbeitet (asynchron)
- Bearbeitung vieler Anfragen gleichzeitig bei geringem Resourcenverbrauch
- es muss darauf geachtet werden keine blockierenden Berechnungen durchzuführen, da sich alle einen Thread teilen -> alles zeitaufwändiges asynchron ausführen
- Nginx (2004), Open-Source, plattformübergreifend; Node.js (2009), Open-Source, plattformübergreifend
- auch kombinierbar (z. B. Nginx Apache vorschalten)
Entwicklung: Immer mehr Traffic, immer mehr/größere Ressourcen pro Webseite
Popularität: https://w3techs.com/technologies/overview/web_server