Webserver
Ein Webserver (lateinisch servire ‚dienen‘; englisch server ‚Diener‘, ‚Dienst‘) ist ein Server, der Dokumente an Clients wie z. B. Webbrowser überträgt. Als Webserver bezeichnet man den Computer mit Webserver-Software oder nur die Webserver-Software selbst. Webserver werden lokal, in Firmennetzwerken und überwiegend als WWW-Dienst im Internet eingesetzt. Dokumente können somit dem geforderten Zweck lokal, firmenintern und weltweit zur Verfügung gestellt werden.
Inhaltsverzeichnis
Technik
Die Hauptaufgabe eines Webservers ist die Auslieferung von statischen Dateien, z. B. unveränderlichen HTML- oder Bild-Dateien, oder dynamisch erzeugten Dateien, z. B. Seiten, deren Inhalte stets individuell gemäß dem Profil eines eingeloggten Benutzers erstellt werden.
Für eine komplette Webseite werden in der Regel die HTML-Seite inklusive verknüpfter Designbeschreibungen (CSS) und Bilddateien (JPG, PNG, GIF, Flash) jeweils als einzelne Dateien übertragen. Für jede benötigte Datei muss der Webbrowser eine eigene Anfrage an den Webserver senden, d. h. zur Darstellung einer komplexen Webseite sind manchmal hunderte Anfragen und Serverantworten nötig.
Als Übertragungsmethoden dienen standardisierte Übertragungsprotokolle (HTTP, HTTPS) und Netzwerkprotokolle wie IP und TCP, üblicherweise über Port 80 (HTTP) und Port 443 (HTTPS). HTTP ist dabei das meist eingesetzte Protokoll, Alternativen wie SPDY sind erst in der Erprobungsphase.
Dynamische Dokumente
Die meisten Webseiten stellen ihre Inhalte erst beim Aufruf aus unterschiedlichen Quellen zusammen.
Skriptsprachen wie ASP, PHP oder JSP parsen und interpretieren ein HTML-Dokument während des Aufrufs serverseitig und lassen es vom Webserver an den Webbrowser übertragen. Dabei wird der zuvor getrennte Inhalt und die Struktur aus Dateien und Datenbanken mit Content-Management-System zu einem Dokument verarbeitet. Webseiten und Applikationen wie Blogs, Onlineforen, Onlineshops etc. nutzen diese Technik.
Schnittstellen
Protokolle | <div/> |
APIs | <div/>
C NSAPI | C ASAPI | C ISAPI | Java Servlet | CIL System.Web | Python WSGI | Ruby Rack | JavaScript JSGI | Perl PSGI | Lua WSAPI |
Apache-Module | <div/>
mod_jk | mod_lisp | mod_parrot | mod_perl | mod_php | mod_python | mod_wsgi | mod_ruby | Phusion Passenger |
Web APIs | <div/> |
Weitere Funktionen
Neben dem Ausliefern von statischen oder dynamischen Dokumenten können Webserver noch weitere Funktionen erfüllen:
- Zugriffsbeschränkung
- wird die Authentifizierung nicht durch das CMS verwaltet, können Webserver auch die HTTP-Authentifizierung einsetzen.
- Sicherheit
- Zur Verschlüsselung der Server-Client-Kommunikation wird ggf. das HTTPS-Verfahren eingesetzt.
- Cookieverwaltung
- Webserver können auch HTTP-Cookies verwalten.
- Weiterleitung
- soll gar kein Dokument ausgeliefert werden, sondern der Aufruf auf ein anderes Dokument weitergeleitet werden, wird die Anfrage mit einer Rewrite-Engine umgeleitet.
- Fehler
- etwaige Fehler oder Erfolge werden dem Browser mit HTTP-Statuscodes und einer Fehlerseite mitgeteilt.
- Protokollierung
- Auf einem Webserver werden üblicherweise alle Anfragen in einer Logdatei protokolliert, aus der mittels Logdateianalyse Statistiken über Anzahl der Zugriffe pro Seite generiert werden können. HTTP ist ein verbindungs- und zustandsloses Protokoll. Damit ist die Zuordnung einer Anforderung zu einem Nutzer über die IP-Adresse grundsätzlich möglich. Die Zuordnung ist jedoch z. B. bei Web-Zugängen über LAN nicht immer eindeutig. Die Angabe von Visits, Hits, Benutzer o. Ä. ist daher nur eingeschränkt aussagekräftig. Zwischengeschaltete Proxyserver, die gegenüber dem Webserver als Client auftreten, erschweren diese Zuordnung zusätzlich.
- Caching
- bei großen Zugriffszahlen kann vor allem die aufwändige dynamische Inhaltsauslieferung gepuffert werden und mit HTTP Caching der Webserver, Scripte und Datenbanken geschont werden.
Konfiguriert werden Webserver durch spezifische Konfigurationsdateien oder Interfaces global konfiguriert oder auch durch standardisierte Formate wie .htaccess.
Beispiel
Ist ein Nutzer mit dem Internet verbunden und gibt in die Adresszeile seines Webbrowsers eine Webadresse ein, z. B. „http://de.wikipedia.org/wiki/Webserver“, wird dem Webbrowser der darin enthaltene Domain-Bestandteil „de.wikipedia.org“ vom Betriebssystem mittels Abfrage eines DNS-Servers in eine IP-Adresse umgesetzt, z. B. 145.168.145.25 (IPv4) oder 2a00:1450:8007::63 (IPv6). Der Webbrowser sendet dann die vollständige Adresse (URL) an diese IP-Adresse auf Port 80. Von dort antwortet der Webserver und sendet die entsprechende Ergebnisseite der Homepage an den Webbrowser.
Geschichte
1989 schlug Tim Berners-Lee seinem Arbeitgeber CERN, der Europäischen Organisation für Kernforschung, ein Projekt vor, das den Austausch von Informationen unter den mehreren tausend Mitarbeitern sichern sollte. Er führte unter anderem aus, dass ein „Web“ miteinander verbundener Informationen nützlicher als eine festgelegte Hierarchie sei und die Speichersoftware von der Anzeigesoftware getrennt sein müsse. Er konnte dieses Projekt verwirklichen und entwickelte in dessen Verlauf den ersten Webserver CERN httpd und den ersten Webbrowser WorldWideWeb, beide unter NeXTStep. Der CERN httpd wurde auf Unix und VMS portiert und bis 1996 weiterentwickelt.<ref>CERN httpd. World Wide Web Consortium. Abgerufen am 25. April 2009.</ref>
1994 entschied sich Tim Berners-Lee, das World Wide Web Consortium zu gründen, um die weitere Entwicklung der verwendeten Technologien (Protokolle, Darstellungssprachen, Unicode usw.) zu regulieren.
Software
Der Apache HTTP Server, nginx, Microsoft IIS und Google Web Server sind die am meisten benutzten Webserver.<ref name="netcraft">[1]</ref>
Produkt | Hersteller | Dezember 2014 | Prozent | Januar 2015 | Prozent | Veränderung |
---|---|---|---|---|---|---|
Apache | Apache | 358.159.405 | 39,11 % | 348.460.753 | 39,74 % | +0,63 % |
IIS | Microsoft | 272.967.294 | 29,81 % | 241.276.347 | 27,52 % | -2,29 % |
nginx | NGINX, Inc. | 132.467.763 | 14,47 % | 128.083.920 | 14,61 % | +0,14 % |
GWS | 20.011.260 | 2,19 % | 20.209.649 | 2,30 % | +0,12 % |
Produkt | Hersteller | Dezember 2014 | Prozent | Januar 2015 | Prozent | Veränderung |
---|---|---|---|---|---|---|
Apache | Apache | 90.846.940 | 50,57 % | 89.831.550 | 50,72 % | +0,15 % |
nginx | NGINX, Inc. | 26.466.559 | 14,73 % | 26.255.870 | 14,82 % | +0,09 % |
IIS | Microsoft | 21.057.292 | 11,72 % | 18.684.665 | 10,55 % | -1,17 % |
GWS | 14.184.320 | 7,90 % | 14.378.260 | 8,12 % | +0,22 % |
Weitere Webserver:
- Abyss Web Server (Aprelium Technologies; Freeware)
- Ada Web Server AWS (Ada Core, Webserver in Ada)
- AIDeX Webserver (AIDeX Softwareentwicklung, Freeware)
- AOLserver (America Online; freie Software)
- Apache Tomcat (Apache Software Foundation; freie Software)
- Boa (Webserver) (GNU General Public License)
- Bozohttpd (BSD-Lizenz)
- CaddyLink
- CERN httpd (Open Source)
- Elserv für Emacs
- Fnord (GNU General Public License)
- G-WAN (für Webapplikationen in Java, ASM, C, C++, C#, D, Objective-C und Objective-C++)
- Gatling HTTP-, FTP- und SMB-Server (GNU General Public License)
- Goron (GNU General Public License)
- Hiawatha (GNU General Public License)
- Hunchentoot (Webserver in Common Lisp, BSD-artige Lizenz)
- iPlanet (Sun Microsystems)
- Jetty (für Webapplikationen in Java)
- W3C Jigsaw (Open Source)
- KF Web Server (KeyFocus, Freeware)
- lighttpd (BSD-Lizenz)
- Microsoft Internet Information Services (IIS)
- Monkey (ressourcenoptimierter Webserver in C; Apache-Lizenz)
- MyServer (MyServer Project; freie Software)
- nginx (BSD-artige Lizenz)
- QtWebApp (C++ Library, Open Source, Lesser GNU Public License)
- Roxen (Webserver) (Roxen Internet Software; GNU General Public License)
- Sun Java System Web Server (Sun Microsystems)
- tclhttpd (scriptfähiger Webserver in Tcl; freie Software)
- thttpd (ACME Laboratories; freie Software)
- Tntnet (für Webapplikationen in C++)
- Tux (GNU General Public License)
- WN server (GNU General Public License)
- Xitami (iMatix Corporation; freie Software)
- Zope (Zope Corporation, freie Software)
Siehe auch: Vergleich von Webservern in der englischsprachigen Wikipedia
Siehe auch
Weblinks
- Mit 165 Wörtern in die Zukunft. (Stern-Artikel zum 20-Jahr-Jubiläum des WWW)
- Servicing the first web server - Tim Berners-Lee's NeXT (Bilder des ersten Webservers, betrieben durch Tim_Berners-Lee)
Einzelnachweise
<references />