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.
  • Apache-Dokumentation zu virtuellen Hosts
  • ASPHeute: Eine IP-Adresse für mehrere Websites