17Aug

Do webových serverov držia len jeden web každý?

Keď sa prvýkrát začnete učiť, ako doménové mená, adresy IP, webové servery a webové stránky všetko zapadajú a pracujú spoločne, môže to byť trochu mätúce alebo zdrvujúce občas. Ako je všetko nastavené tak, aby fungovalo tak hladko? Dnešný príspevok SuperUser Q & A má odpovede na otázky zvedavého čitateľa.

Dnešná otázka &Odpoveď na zasadnutie nám príde s láskavým dovolením SuperUser - subdivíziu Stack Exchange, komunitne riadeného zoskupenia webových stránok Q & A.

Foto s láskavým dovolením Rosmarie Voegtli( Flickr).

Otázka

čítačka SuperUser user3407319 chce vedieť, či webové servery obsahujú iba jednu webovú stránku:

Na základe toho, čo chápem o DNS a spájaní názvu domény s adresou IP webového servera je uložená webová stránka, to znamená každýwebový server môže obsahovať iba jednu webovú stránku? Ak webové servery obsahujú viac ako jednu webovú stránku, ako sa to všetko vyrieši, aby som mohol bez problémov alebo zmiešaných stránok vstúpiť na webovú stránku, ktorú chcem?

Webové servery obsahujú iba jednu webovú stránku, alebo majú viac?

Odpovedať na odpoveď

SuperUser Bob odpovedá nás:

V zásade prehliadač obsahuje názov domény v žiadosti HTTP, takže webový server vie, ktorá doména bola požiadaná a môže odpovedať zodpovedajúcim spôsobom.

Požiadavky HTTP

Tu je spôsob, ako sa vyskytuje váš typický HTTP žiadosť:

1. Užívateľ poskytuje URL vo forme http: // host: port / path.

2. Prehliadač extrahuje časť hostiteľa( domény) adresy URL a preloží ho do IP adresy( ak je to potrebné) v procese známeho ako rozlíšenie mena. Tento preklad môže prebiehať prostredníctvom DNS, ale nemusí to( napríklad lokálny hostiteľský súbor na bežných operačných systémoch obchádza DNS).

3. Prehliadač otvára pripojenie TCP k určenému portu alebo predvolené na port 80 na danej IP adrese.

4. Prehliadač pošle žiadosť HTTP.Pre protokol HTTP / 1.1 to vyzerá takto:

Hlavička hostiteľa je štandardná a vyžaduje sa v protokole HTTP / 1.1.Nebolo špecifikované v špecifikácii HTTP / 1.0, ale niektoré servery ju podporujú.

Odtiaľ webový server obsahuje niekoľko informácií, ktoré môže použiť na rozhodnutie o tom, akú odpoveď má byť.Upozorňujeme, že je možné, aby bol jeden webový server viazaný na viacero adries IP.

  • Požadovaná adresa IP zo zásuvky TCP( IP adresa klienta je tiež dostupná, ale zriedka sa používa a niekedy aj na blokovanie / filtrovanie)
  • Požadovaný port z TCP soketu
  • Požadovaný názov hostiteľa, akozadané v hlavičke hostiteľa prehliadačom v žiadosti HTTP
  • Požadovaná cesta
  • Akékoľvek iné záhlavia( súbory cookie atď.)

Ako sa zdá, všimli ste si, že najčastejšie nastavenie zdieľaného hostingu v týchto dňoch kladie viacero webových stránok na jednu adresu IP: kombinácia portov, takže hostiteľ rozlišuje medzi webovými stránkami.

Toto je známe ako virtuálny hostiteľ založený na názvoch v krajine Apache, zatiaľ čo Nginx ich nazýva názvy serverov v serverových blokoch a služba IIS uprednostňuje virtuálny server.

Čo je to HTTPS?

HTTPS je trochu iný.Všetko je totožné s vytvorením spojenia TCP, ale potom musí byť vytvorený šifrovaný tunel TLS.Cieľom je nepreniknúť žiadnu informáciu o žiadosti.

Ak chcete overiť, či webový server skutočne vlastní túto doménu, musí webový server odoslať certifikát podpísaný dôveryhodnou treťou stranou. Prehliadač potom porovná tento certifikát s požadovanou doménou.

Toto predstavuje problém. Ako webový server vie, ktorý certifikát hostiteľa / webového servera má odoslať, ak to musí urobiť pred prijatím žiadosti HTTP?

Tradične sa to riešilo tým, že pre každú webovú lokalitu, ktorá vyžaduje protokol HTTPS, má vyhradená adresa IP( alebo port).Je zrejmé, že to sa stalo problematické, pretože sme prekonali adresy IPv4.

Zadajte SNI( označenie názvu servera).Prehliadač teraz prechádza cez názov hostiteľa počas vyjednávania TLS, takže webový server má tieto informácie dostatočne skoro na to, aby mohol odoslať správny certifikát. Na strane webového servera sa konfigurácia veľmi podobá nakonfigurovaniu virtuálnych hostiteľov HTTP.

Nevýhodou je názov hostiteľa, ktorý je teraz pred zašifrovaním vysielaný ako obyčajný text a je v podstate uniknutými informáciami. Toto sa zvyčajne považuje za prijateľný kompromis, hoci sa domnieva, že názov hostiteľa je normálne vystavený v dopyte DNS.

Čo ak požadujete webové stránky iba podľa adresy IP?

Čo robí webový server, keď nevie, ktorý špecifický hostiteľ požadujete, závisí od implementácie a konfigurácie webového servera. Typicky existuje špecifikovaná webová stránka "predvolená", "catch-all" alebo "späť", ktorá poskytne odpovede na všetky požiadavky, ktoré explicitne neurčujú hostiteľa.

Táto predvolená webová stránka môže byť jej vlastnou nezávislou webovou lokalitou( často sa zobrazuje chybové hlásenie), alebo to môže byť niektorá z ďalších webových stránok na webovom serveri v závislosti od preferencií administrátora webového servera.

Musíte niečo doplniť k vysvetleniu? Znížte komentáre. Chcete si prečítať viac odpovedí od iných používateľov technológie Stack Exchange? Pozrite sa na celý diskusný príspevok tu.