17Aug

Do webových serverů drží pouze jeden web?

click fraud protection

Když se poprvé začnete učit, jak doménová jména, adresy IP, webové servery a webové stránky všichni zapadají a pracují společně, může to být trochu matoucí nebo ohromující občas. Jak je vše nastaveno tak, aby fungovalo tak hladce? Dnešní příspěvek SuperUser Q & A má odpovědi na zvědavé čtenářské otázky.

dnešní otázka &Odpověď na zasedání se k nám dostala s laskavým svolením SuperUser - podřízenou výměnou Stack Exchange, skupině webů Q & A založených na komunitě.

Foto s laskavým svolením Rosmarie Voegtli( Flickr).

Otázka

čtečka uživatelů SuperUser user3407319 chce vědět, zda webové servery obsahují pouze jednu webovou stránku:

Na základě toho, co chápu o DNS a propojení názvu domény s adresou IP webového serveru je uložen web, znamená to každýwebový server může obsahovat pouze jednu webovou stránku? Pokud webové servery obsahují více než jednu webovou stránku, jak se to všechno vyřeší, abych měl přístup na webovou stránku, kterou chci bez jakýchkoliv problémů nebo záměn?

instagram viewer

Používají webové servery pouze jednu webovou stránku, nebo drží více?

Odpovědný odpověď

SuperUser Bob má odpověď:

Prohlížeč v podstatě obsahuje název domény v požadavku HTTP, takže webový server ví, která doména byla požadována a může odpovídat.

Požadavky HTTP

Zde je způsob, jakým se vyskytuje váš typický požadavek HTTP:

1. Uživatel poskytuje URL ve tvaru http: // host: port / path.

2. Prohlížeč extrahuje hostitelskou( doménu) část URL a přeloží ji do IP adresy( je-li to nutné) v procesu známém jako rozlišení názvu. Tento překlad se může vyskytnout prostřednictvím služby DNS, ale nemusí( například místní hostitelský soubor na společných operačních systémech obchází DNS).

3. Prohlížeč otevře TCP spojení na zadaný port nebo výchozí na portu 80 na této IP adrese.

4. Prohlížeč odešle požadavek HTTP.Pro HTTP / 1.1 vypadá takto:

Hlavička hostitele je standardní a vyžaduje se v protokolu HTTP / 1.1.V šabloně HTTP / 1.0 nebyla specifikována, ale některé servery ji podporují.

Odtud má webový server několik informací, které může rozhodnout o tom, jaká by měla být odpověď.Všimněte si, že je možné, aby byl jeden webový server vázán na více adres IP.

  • Požadovaná adresa IP ze zásuvky TCP( IP adresa klienta je také k dispozici, ale je to jen zřídka použito a někdy pro blokování / filtrování)
  • Požadovaný port ze soketu TCP
  • Požadovaný název hostitele, aszadané v hlavičce hostitele prohlížečem v požadavku HTTP
  • Požadovaná cesta
  • Jakékoli jiné záhlaví( soubory cookie atd.)

Jak se zdá, že jste si všimli, nejběžnější nastavení sdílených serverů v těchto dnech dává několik webů na jednu adresu IP: kombinace portů, takže hostitel rozlišuje mezi webovými stránkami.

Toto je známé jako virtuální hostitel založený na názvu v Apache-zemi, zatímco Nginx nazývá jména serveru v serverových blocích a služba IIS preferuje virtuální server.

Co je to HTTPS?

HTTPS je trochu jiná.Všechno je totožné s vytvořením spojení TCP, ale poté musí být vytvořen šifrovaný tunel TLS.Cílem je nepoškodit žádnou informaci o žádosti.

Chcete-li ověřit, zda webový server ve skutečnosti vlastní tuto doménu, musí webový server odeslat certifikát podepsaný důvěryhodnou třetí stranou. Prohlížeč potom porovná tento certifikát s požadovanou doménou.

To představuje problém. Jak webový server zjistí, který certifikát hostitele / webu má odeslat, pokud to potřebuje před přijetím požadavku HTTP?

Tradičně bylo toto vyřešeno tím, že pro každou webovou stránku, která vyžaduje protokol HTTPS, byla určena vyhrazená adresa IP( nebo port).Je zřejmé, že se to stalo problematickým, jelikož se nám vyskytují adresy IPv4.

Zadejte název SNI( název serveru).Prohlížeč nyní předává název hostitele během vyjednávání TLS, takže webový server má tyto informace dostatečně brzy k odeslání správného certifikátu. Na straně webového serveru je konfigurace velmi podobná konfiguraci virtuálních hostitelů HTTP.

Nevýhodou je, že název hostitele je nyní předkládán jako obyčejný text před šifrováním a je v podstatě unikl informacemi. Toto je obvykle považováno za přijatelný kompromis, ačkoli se domněnka o názvu hostitele obvykle vyskytuje v dotazu DNS.

Co když požadujete webové stránky pouze podle adresy IP?

Co robí webový server, když neví, který konkrétní server požadujete, závisí na implementaci a konfiguraci webového serveru. Obvykle jsou zadány webové stránky "default", "catch-all" nebo "fall back", které poskytnou odpovědi na všechny požadavky, které explicitně neurčují hostitele.

Tato výchozí webová stránka může být její vlastní nezávislá webová stránka( často se zobrazuje chybová zpráva) nebo by mohla být některá z dalších webových stránek na webovém serveru v závislosti na preferencích administrátora webového serveru.

Musíte něco přidat k vysvětlení?Zní to v komentářích. Chcete se dozvědět více odpovědí od ostatních uživatelů technologie Stack Exchange? Podívejte se na celý diskusní příspěvek zde.