Host-Header
# Host-Header

Host ist beim Hypertext Transfer Protocol (HTTP) der Name eines Header-Felds, das vom Webbrowser als Bestandteil des HTTP-Headers gesendet wird und den Domainnamen der angefragten URL enthält. Es kann von einem HTTP-Server zur Unterscheidung virtueller Hosts genutzt werden und dient somit zum Webhosting mehrerer Websites auf demselben Webserver.
Diese namensbasierte Unterscheidung virtueller Hosts hat (gegenüber IP-basierten virtuellen Hosts) den Vorteil, dass Websites unterschiedlichen Namens
* unter einer gemeinsamen IP-Adresse (und unter einem gemeinsamen Port) betrieben werden können
* dennoch inhaltlich voneinander getrennt verwaltet werden können
und ist damit eine Möglichkeit, einem Engpass an IP-Adressen zu begegnen.
Zur Unterscheidung wertet der (entsprechend zu konfigurierende) Webserver den im Request enthaltenen Host: Header aus.

## Konfiguration

Neben der Anpassung der Konfiguration des Webservers ist darauf zu achten, dass der DNS-Server jedem der unterschiedlichen Hostnamen die richtige (in diesem Fall gleiche) IP-Adresse zuordnen muss.

## Grenzen

* Ältere HTTP-Clients unterstützten den Host-Header nicht. Bei diesen Clients funktionierte das namensbasierte virtuelle Hosting nicht korrekt.
* Im Zusammenspiel mit Transport Layer Security ist die Erweiterung Server Name Indication notwendig. Ohne diese Erweiterung auf Client- und Server-Seite funktioniert das virtuelle Hosting ebenfalls nicht korrekt.
* Einige Techniken des Bandbreiten-Managements funktionieren nur, wenn unterschiedliche Hosts auch unterschiedliche IP-Adressen haben.