Homepage » hogyan kell » A webszerverek csak egy webhelyet tartanak?

    A webszerverek csak egy webhelyet tartanak?

    Amikor elkezdi megtanulni, hogy a tartománynevek, az IP-címek, a webkiszolgálók és a weboldalak hogyan illeszkednek és működnek együtt, néha kissé zavaró vagy elsöprő. Hogy alakul ki, hogy ilyen simán működjön? A mai SuperUser Q&A postai válaszok egy furcsa olvasó kérdéseire.

    A mai Kérdések és válaszok munkamenet a Jóvagyon - a Stack Exchange alosztályának, a közösség által vezérelt Q&A webhelyek csoportjának köszönhetően..

    Photo jóvoltából Rosmarie Voegtli (Flickr).

    A kérdés

    A SuperUser olvasó user3407319 tudni akarja, hogy a webszerverek csak egy webhelyet tartanak-e:

    A DNS-ről és a domainnév IP-címével összekapcsolva a webkiszolgáló IP-címével egy webhelyet tárolnak, ez azt jelenti, hogy minden egyes webszerver csak egy weboldalt képes tárolni? Ha a webkiszolgálók egynél több webhelyet tartanak fenn, akkor hogyan oldódik meg minden olyan megoldás, hogy problémamentesen hozzáférhessek a kívánt webhelyhez, vagy összekeverhessek?

    A webkiszolgálók csak egy webhelyet tartanak, vagy többet tartanak?

    A válasz

    A SuperUser közreműködő, Bobnak a választ kapja:

    Alapvetően a böngésző tartalmazza a HTTP-kérelemben szereplő domain nevet, így a webszerver tudja, hogy melyik tartományt kérték, és ennek megfelelően válaszolhat.

    HTTP-kérések

    Íme, hogyan történik a tipikus HTTP-kérés:

    1. A felhasználó megad egy URL-t http: // host: port / path formában.

    2. A böngésző kivonja az URL gazdagép (tartomány) részét, és egy IP-címre fordítja (ha szükséges) a névfeloldás néven ismert folyamatban. Ez a fordítás DNS-en keresztül fordulhat elő, de nem kell (például a helyi operátorok fájlja a közös operációs rendszereken, megkerülve a DNS-t).

    3. A böngésző megnyitja a TCP-kapcsolatot a megadott porthoz, vagy alapértelmezés szerint a 80-as portot az adott IP-címen.

    4. A böngésző HTTP kérést küld. HTTP / 1.1 esetén ez így néz ki:

    A gazdagép fejléce szabványos és szükséges a HTTP / 1.1-ben. A HTTP / 1.0 specifikációban nem volt megadva, de egyes kiszolgálók mindenesetre támogatják.

    Innen a webkiszolgálónak több információja van, amelyekkel eldöntheti, hogy mi a válasz. Ne feledje, hogy egy webszerver több IP-címhez köthető.

    • A kért IP-cím a TCP-aljzatból (az ügyfél IP-címe is elérhető, de ezt ritkán használják, és néha blokkolás / szűrés)
    • A kért port a TCP aljzatból
    • A keresett gazdanév, amelyet a böngésző a HTTP-kérésben a gazdagép fejlécben megadott
    • A kért út
    • Egyéb fejlécek (cookie-k stb.)

    Amint úgy tűnik, hogy észrevette, a leggyakoribb megosztott tárhely-beállítás ezekben a napokban több webhelyet helyez el egyetlen IP-címre: portkombináció, így csak a gazdagép megkülönbözteti a webhelyeket.

    Ez az Apache-land névalapú virtuális gazda néven ismert, míg a Nginx a Server Blocks kiszolgálóneveket nevezi, az IIS pedig a virtuális kiszolgálót részesíti előnyben..

    Mi van a HTTPS-rel?

    A HTTPS egy kicsit más. Minden megegyezik a TCP-kapcsolat megteremtésével, de ezt követően egy titkosított TLS-alagutat kell létrehozni. A cél az, hogy ne szivárogjon el semmilyen információ a kérésről.

    Annak érdekében, hogy ellenőrizze, hogy a webkiszolgáló valóban rendelkezik-e a tartománygal, a webkiszolgálónak egy megbízható harmadik fél által aláírt tanúsítványt kell küldenie. A böngésző ezt követően összehasonlítja ezt a tanúsítványt a kért domainrel.

    Ez problémát jelent. Hogyan tudja a webkiszolgáló, hogy melyik gazda / webhely tanúsítványt kell küldeni, ha ezt meg kell tennie a HTTP-kérelem fogadása előtt?

    Hagyományosan ezt úgy oldották meg, hogy egy speciális IP-címet (vagy portot) kaptak minden HTTPS-t igénylő webhelyre. Nyilvánvaló, hogy ez problematikus lett, mivel az IPv4-címek elfogynak.

    Írja be az SNI (Server Name Indication) elemet. A böngésző a TLS-tárgyalások során most átadja a hosztnevet, így a webkiszolgálónak ez az információ elég korai ahhoz, hogy elküldje a megfelelő tanúsítványt. A webkiszolgáló oldalán a konfiguráció nagyon hasonló a HTTP virtuális gazdagépek konfigurálásához.

    A hátránya, hogy a gazdagép neve most titkosított szövegként kerül átadásra, és lényegében kiszivárgott információ. Ezt általában elfogadható kompromisszumnak tekintik, bár a gazdanév megítélése általában egy DNS-lekérdezésben történik.

    Mi a teendő, ha csak IP-címet kér a webhelyről?

    Mi a webszerver, ha nem tudja, hogy melyik konkrét gazdagépt kért, függ a webkiszolgáló implementációjától és konfigurációjától. Általában van egy „alapértelmezett”, „fogási minden” vagy „visszaesés” webhely, amely válaszokat ad minden olyan kérésre, amely nem határozza meg kifejezetten a hosztot.

    Ez az alapértelmezett webhely lehet a saját független webhelye (gyakran hibaüzenetet mutat), vagy a webkiszolgáló bármely más webhelye lehet, attól függően, hogy a webszerver adminisztrációja milyen beállításokkal rendelkezik..


    Van valami, amit hozzá kell adni a magyarázathoz? Kikapcsolja a megjegyzéseket. Szeretne további válaszokat olvasni más tech-savvy Stack Exchange felhasználóktól? Nézze meg a teljes beszélgetés szálát itt.