Server

  • 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