de.phhsnews.com


de.phhsnews.com / Haben Web-Server nur jeweils eine Website?

Haben Web-Server nur jeweils eine Website?


Wenn Sie zum ersten Mal lernen, wie Domains, IP-Adressen, Webserver und Websites zusammenpassen und zusammenarbeiten, kann das ein wenig verwirrend sein oder manchmal überwältigend. Wie ist alles eingerichtet, um so reibungslos zu arbeiten? Der heutige SuperUser Q & A-Post hat Antworten auf Fragen eines neugierigen Lesers.

Die heutige Frage-Antwort-Sitzung kommt dank SuperUser zustande - einer Unterteilung von Stack Exchange, einer Community-gesteuerten Gruppierung von Q & A-Websites.

Foto mit freundlicher Genehmigung von Rosmarie Voegtli (Flickr).

Die Frage

SuperUser reader user3407319 möchte wissen, ob Webserver nur jeweils eine Website haben:

Basierend auf dem was ich über DNS verstehe und einen Domainnamen mit der IP Adresse des Webserver, auf dem eine Website gespeichert ist, bedeutet das, dass jeder Webserver nur eine Website verwalten kann? Wenn Web-Server mehr als eine Website enthalten, wie wird dann alles gelöst, damit ich ohne Probleme oder Verwechslungen auf die gewünschte Website zugreifen kann?

Halten Web-Server jeweils nur eine Website oder halten sie mehr ?

Der Antwort

SuperUser-Mitwirkender Bob hat die Antwort für uns:

Grundsätzlich enthält der Browser den Domänennamen in der HTTP-Anfrage, damit der Webserver weiß, welche Domäne angefordert wurde und entsprechend reagieren kann.

HTTP-Anfragen

So geschieht Ihre typische HTTP-Anfrage:

1. Der Benutzer stellt eine URL in der Form // host: port / pfad.

2. zur Verfügung Der Browser extrahiert den Host-Teil (Domäne) der URL und übersetzt ihn (falls erforderlich) in eine IP-Adresse, die als Namensauflösung bezeichnet wird. Diese Übersetzung kann über DNS erfolgen, muss aber nicht (z. B. die lokale Hostdatei auf gängigen Betriebssystemen umgeht DNS).

3. Der Browser öffnet eine TCP-Verbindung zum angegebenen Port oder den Standardeinstellungen Port 80 auf dieser IP-Adresse.

4. Der Browser sendet eine HTTP-Anfrage. Für HTTP / 1.1 sieht das so aus:

Der Host-Header ist Standard und in HTTP / 1.1 erforderlich. Es wurde nicht in der HTTP / 1.0-Spezifikation angegeben, aber einige Server unterstützen es trotzdem.

Von hier aus hat der Webserver mehrere Informationen, anhand derer er entscheiden kann, wie die Antwort lauten soll. Beachten Sie, dass es möglich ist, dass ein einzelner Web - Server an mehrere IP - Adressen gebunden ist.

  • Die angeforderte IP - Adresse vom TCP - Socket (die IP - Adresse des Clients ist ebenfalls verfügbar, wird aber selten und manchmal für blocking / filtering)
  • Der angeforderte Port, vom TCP-Socket
  • Der angeforderte Hostname, wie im Host-Header vom Browser in der HTTP-Anfrage angegeben
  • Der angeforderte Pfad
  • Alle anderen Header (Cookies usw.)

Wie Sie bemerkt haben, setzt das häufigste Shared - Hosting - Setup heutzutage mehrere Websites auf eine einzige IP - Adresse: Port - Kombination, so dass nur der Host zwischen den Websites unterscheiden kann.

Dies ist bekannt als ein Name-basierter virtueller Host in Apache-Land, während Nginx sie Server Namen in Server-Blöcken nennt, und IIS bevorzugt Virtual Server.

Was ist mit HTTPS?

HTTPS ist ein bisschen anders. Bis zum Aufbau der TCP-Verbindung ist alles identisch, danach muss jedoch ein verschlüsselter TLS-Tunnel aufgebaut werden. Ziel ist es, keine Informationen über die Anfrage zu verlieren.

Um zu verifizieren, dass der Webserver tatsächlich diese Domäne besitzt, muss der Webserver ein Zertifikat senden, das von einer vertrauenswürdigen dritten Partei signiert wurde. Der Browser vergleicht dann dieses Zertifikat mit der angeforderten Domäne.

Dies ist ein Problem. Woher weiß der Webserver, welches Zertifikat des Hosts / der Website gesendet werden muss, wenn dies erforderlich ist, bevor die HTTP-Anforderung empfangen wird?

Dies wurde traditionell durch eine dedizierte IP-Adresse (oder Port) für jede HTTPS erfordernde Website gelöst. Offensichtlich ist dies problematisch geworden, da uns die IPv4-Adressen ausgehen.

Geben Sie SNI (Server Name Indication) ein. Der Browser übergibt den Hostnamen nun während der TLS-Verhandlungen, sodass der Webserver diese Informationen früh genug erhält, um das richtige Zertifikat zu senden. Auf der Webserver-Seite ist die Konfiguration der Konfiguration der virtuellen HTTP-Hosts sehr ähnlich.

Der Nachteil ist, dass der Host-Name jetzt als einfacher Text vor der Verschlüsselung übergeben wird und im Wesentlichen Informationen verloren geht. Dies wird normalerweise als akzeptabler Trade-Off betrachtet, obwohl der Host-Name normalerweise in einer DNS-Abfrage verfügbar ist.

Was ist, wenn Sie eine Website nur nach IP-Adresse anfordern?

Was der Webserver tut, wenn er es nicht weiß Welcher spezifische Host Sie angefordert haben, hängt von der Implementierung und Konfiguration des Webservers ab. In der Regel wird eine "Standard" -, "Catch-all" - oder "Fallback" -Website angegeben, die Antworten auf alle Anfragen liefert, die keinen Host explizit angeben.

Diese Standardwebsite kann eine eigene unabhängige Website sein ( (oft mit einer Fehlermeldung), oder es könnte eine der anderen Webseiten auf dem Webserver sein, abhängig von den Einstellungen des Web-Servers admin.


Haben Sie etwas zur Erklärung hinzuzufügen? Ton in den Kommentaren ab. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange Benutzern lesen? Sehen Sie sich den vollständigen Diskussionsfaden hier an.


5 Ideen Windows 10 sollte unter Mac OS X kopieren Yosemite

5 Ideen Windows 10 sollte unter Mac OS X kopieren Yosemite

Viele der besten Funktionen von Windows 10 wurden in Mac OS X vor Jahren eingeführt, einschließlich virtueller Desktops, Expose-ähnlicher Fensterverwaltung und a Nachrichtencenter. Mac OS X 10.10 Yosemite hat einige andere Ideen, die Microsoft auch für die Version 10 seines eigenen Betriebssystems kopieren sollte.

(how-to)

Was zu tun ist, wenn Windows zwei verschiedene Laufwerksbuchstaben für den gleichen Datenträger anzeigt

Was zu tun ist, wenn Windows zwei verschiedene Laufwerksbuchstaben für den gleichen Datenträger anzeigt

Es ist ein seltenes Problem, aber manchmal zeigt Windows die gleiche Festplatte oder Partition zweimal mit unterschiedlichen Laufwerksbuchstaben an . Glücklicherweise gibt es normalerweise eine einfache Lösung. Dies ist fast immer das Ergebnis eines Benutzers oder eines Programms, das ein virtuelles Laufwerk erstellt hat, das Ihrem echten Laufwerk zugeordnet ist.

(how-to)