IIS - Uitleg SSL Host Headers

In IIS is het mogelijk om meerdere websites te hosten op één webserver. Hiervoor is een unieke combinatie van de Host Header-naam, het IP-adres en het poortnummer nodig. Dit artikel licht toe wat een Host Header is en hoe het werkt.

De Host Header is onderdeel van het HTTP-bericht

De client en webserver communiceren met behulp van het HTTP-protocol. De data die tussen de client en server wordt verstuurd noemt men een HTTP-bericht. Het HTTP-bericht heeft een body en een header. De body bevat meestal de HTML-code van de webpagina die door de server naar de client wordt geretourneerd als antwoord op een GET-aanvraag (dit is een gegevensverzoek uit een gespecificeerde bron). Het header gedeelte bevat informatie zoals de lengte van de inhoud van het bericht, een datum, tijd en host.

Hoe de client communiceert met de webserver

Om te begrijpen hoe het HTTP-bericht wordt uitgelezen door de browser, is het handig om de communicatie tussen de client en de server te begrijpen.

  • De communicatie wordt meestal in gang gezet doordat een gebruiker de domeinnaam (en soms ook het poortnummer) in zijn browser typt. Als een gebruiker bijvoorbeeld www.sslcertificaten.nl wil bezoeken typt hij de URL www.sslcertificaten.nl in zijn browser. De browser laadt standaard het HTTP-protocol en de standaardpoort (80) voor HTTP.
  • De browser haalt nu de domeinnaam die de gebruiker heeft ingetypt op, zodat de client een verbinding met het IP-adres en het poortnummer kan maken. Voor de vertaling van de domeinnaam naar een IP-adres wordt een DNS-server of een hosts-bestand gebruikt.
  • Zodra de domeinnaam is opgehaald, heeft de client een verbinding met de webserver gelegd en stuurt een bericht met een verzoek. Dit verzoek bevat de Host Header, en kan er zo uitzien:

    GET / HTTP/1.1 index.htm
    Host: www.sslcertificaten.nl

  • De server ontvangt het HTTP-bericht en onderzoekt het. Als een Host Header wordt gevonden (het is mogelijk dat een HTTP-bericht niet over een Host Header beschikt), achterhaalt IIS of er een Host Header-naam geconfigureerd is in IIS die overeenkomt met de Host Header in het ontvangen HTTP-bericht. Als dit overeenkomt wordt de 'index.htm' aangeboden vanuit de thuismap van de website. 
  • In de laatste stap reageert IIS op dit verzoek.

Gerelateerde artikelen


Meer informatie

point up