Virtual Hosting
# Virtual Hosting

Virtual Hosting bezeichnet das Hosting von Internetdiensten auf einem aus dem Internet erreichbaren Server, wobei sich mehrere Kunden einen gemeinsamen Server teilen. Virtual Hosting findet insbesondere im Bereich des Webhostings Anwendung, wo es auch als Shared Webhosting bezeichnet wird.
Internetdienstanbieter verwenden Virtual Hosting, um auf einem physischen Server mehrere logisch getrennte Kundenumgebungen anbieten zu können. Die virtuellen Hostingumgebungen teilen sich die Ressourcen des Server-Hosts wie Festplattenplatz, Arbeitsspeicher oder Rechenleistung. Wie viel Ressourcen dem Kunden in einer virtuellen Hostingsumgebung zur Verfügung stehen, legt der Anbieter fest, beispielsweise durch Disk Quotas. Üblicherweise können die Kunden unterschiedliche Pakete buchen, die sich in den zur Verfügung stehenden Ressourcen und im Preis unterscheiden. Durch die gemeinsame Nutzung von Ressourcen und ggf. auch Überbuchung kann Virtual Hosting zu wesentlich geringeren Preisen als das Hosting von dedizierten Servern angeboten werden.
Im Unterschied zu virtuellen Maschinen hat der Kunde beim virtuellen Hosting meistens keinen Zugriff auf das Betriebssystem des Servers.
Damit Kunden auf ihrer gebuchten virtuellen Hostingumgebung ihre Internetanwendungen einrichten und betreiben können, stellen die meisten Anbieter webbasierte Kundenportale zur Verfügung. Klassische Möglichkeiten sind das Verwalten von Dateien auf ihrem Webspace und die Einrichtung von Datenbanken.

## Technische Umsetzung

Beim Webhosting gibt es mehrere Ansätze zur Unterscheidung eines virtuellen Hosts:
* per URL-Pfad
* per Portnummer
* per IP-Adresse
* per Host-Header
Die Ansätze per URL-Pfad und Portnummer haben den Nachteil, dass sie eine für den Anwender sichtbare Anpassung der URL erfordern. Der Ansatz per IP-Adresse hat den Nachteil, dass eine eigene IP-Adresse pro virtuellen Host benötigt wird und es sich bei IP-Adressen um eine knappe Ressource handelt. Sollte der Anwendungszweck eine eigene und exklusive IP-Adresse erfordern, so bildet ein virtueller Server eine mögliche Alternative.
Üblicherweise erfolgt der Zugriff auf eine Website per sprechendem Domainnamen anstatt einer IP-Adresse in der URL. Beim Virtual Hosting per Host-Header sind mehrere logische Hosting-Umgebungen unter derselben IP-Adresse erreichbar. Die Unterscheidung erfolgt über den Domainnamen. Eine HTTP-Verbindung erfolgt allerdings zu einer IP-Adresse und Portnummer, sodass für den Webserver zunächst nicht ersichtlich ist, welcher Domainname angesprochen werden soll. Der Webbrowser übermittelt diese Information daher im Host-Header, der in HTTP/1.1 eingeführt wurde.
Ein ähnliches Problem ergibt sich bei verschlüsselten HTTPS-Verbindungen. Hier muss der Server ein X.509-Zertifikat zur Authentifizierung an den Browser übermitteln, das auf den korrekten Domainnamen der Website ausgestellt ist. Zu diesem Zeitpunkt hat er den Host-Header aber noch nicht erhalten. Daher übermittelt der Browser den angefragten Domainnamen beim Aufbau einer verschlüsselten TLS-Verbindung über die TLS-Erweiterung Server Name Indication an den Server.