17Aug

A webkiszolgálók csak egy weboldalt tartanak?

click fraud protection

Amikor először elkezdi megtanulni, hogy a domainnevek, az IP-címek, a webszerverek és a webhelyek hogyan illeszkednek és együtt működnek, időnként egy kicsit zavaros vagy túlterhelő lehet. Hogyan állítottak fel olyan zökkenőmentesen? A mai SuperUser Q & A bejegyzésen megtalálhatja a válaszokat egy furcsa olvasó kérdéseire.

A mai kérdés &A válaszüzenet a SuperUser - a Stack Exchange megosztottságának köszönhetően - a Q & A webhelyek közösségi szintű csoportosítása.

Fotógaléria Rosmarie Voegtli( Flickr).

A

SuperUser leolvasó kérdése user3407319 azt szeretné megtudni, hogy a webszerverek csak egy weboldalt tartanak-e:

A DNS-ről és a domain név összekapcsolásáról és a webszerver IP-címének összekapcsolásáról egy weboldal tárolásaa webszerver csak egy weboldalt tarthat meg? Ha a webszerverek egynél több weboldalt tartanak, akkor hogyan oldódik meg minden, hogy bármi gond nélkül hozzáférhessek a weboldalhoz?

A webszerverek csak egy weboldalt tartanak-e, vagy tartanak-e többet?

instagram viewer

A válasz

SuperUser-hozzájáruló Bobnak van a választ számunkra:

Alapvetően a böngésző tartalmazza a tartománynevet a HTTP-kérésben, így a webszerver tudja, melyik tartományt kérte, és ennek megfelelően válaszolhat.

HTTP kérések

Az alábbi tipikus HTTP-kérések történnek:

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

2. A böngésző kivonja az URL hoszt( domain) részét és azt egy IP-címre konvertálja( ha szükséges) a névfeloldás néven ismert folyamat során. Ez a fordítás DNS-en keresztül történhet, de nem kell( pl. A közös operációs rendszereken található helyi állomásfájl a DNS-t megkerüli).

3. A böngésző TCP kapcsolatot nyit meg a megadott porthoz, vagy az alapértelmezett 80-as port az adott IP-címen.

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

A host fejléc szabványos és szükséges a HTTP / 1.1-ben. Nem volt megadva a HTTP / 1.0 specifikációban, de egyes szerverek egyébként támogatják.

Innentől kezdve a webszerver több információval rendelkezik, amellyel eldöntheti, hogy mi legyen a válasz. Felhívjuk a figyelmet arra, hogy egyetlen webkiszolgáló 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, néha blokkolásra / szűrésre)
  • A kért port a TCP aljzatból
  • A kért hosztnév,a HTTP kérésben a böngészőben megadva
  • A kért elérési út
  • Egyéb fejlécek( cookie-k, stb.)

Amint látszólag észrevette, a leggyakoribb megosztott tárhely beállítása napjainkban több weboldalt helyez el egyetlen IP-címre: portkombináció, amely csak a gazda számára teszi lehetővé a webhelyek közötti különbséget.

Az Apache tartományban névalapú virtuális állomás, míg a Nginx kiszolgálónevek a kiszolgálóblokkokba hívja őket, és az IIS a virtuális kiszolgáló előnyben részesítése.

Mi a helyzet a HTTPS-vel? Az

HTTPS egy kicsit más. Mindez megegyezik a TCP kapcsolat létrehozásával, de ezt követően létre kell hozni egy titkosított TLS alagutat. A cél az, hogy ne szivárogjon semmilyen információ a kérelemről.

Annak ellenőrzésére, hogy a webszerver ténylegesen rendelkezik-e ezzel a tartománygal, a webszervernek megbízható harmadik fél által aláírt tanúsítványt kell küldenie. A böngésző ezután összehasonlítja ezt a tanúsítványt a kért domainvel.

Ez problémát jelent. Hogyan tudja a webkiszolgáló tudni, hogy melyik fogadó / webhely tanúsítványt kell elküldeni, ha ezt meg kell tennie, mielőtt megkapja a HTTP kérést?

Hagyományosan ezt úgy oldották meg, hogy minden HTTPS-t igénylő webhelyre külön IP-címet( vagy portot) kapott. Nyilvánvaló, hogy ez problémásvá vált, mivel az IPv4-címek elfogynak.

Írja be az SNI( szerver neve jelzés) parancsot. A böngésző most átadja a gazdagépnevet a TLS-tárgyalások során, így a webszerver ezt az információt elég korán el tudja küldeni a megfelelő tanúsítvány elküldéséhez. A webszerver oldalán a konfiguráció nagyon hasonlít a HTTP virtuális állomás konfigurálásához.

A hátránya, hogy a gazdanév a titkosítás előtt egyszerű szövegként kerül átadásra, és lényegében kiszivárgott információ.Ezt általában elfogadható kompromisszumnak tekintik, annak ellenére, hogy a gazdanevet egyébként DNS-lekérdezésben is ki vannak téve.

Mi a teendő, ha csak IP címre kéri a weboldalt?

Amit a webszerver akkor tesz, ha nem tudja, hogy melyik adott állomásnak szüksége van, attól függ, hogy milyen webkiszolgáló implementál és konfigurál. Jellemzően van egy "alapértelmezett", "catch-all" vagy "fall back" weboldal, amely megadja a válaszokat minden olyan kérelemre, amely kifejezetten nem ad meg gazdát.

Ez az alapértelmezett webhely lehet saját, független weboldala( gyakran hibaüzenetet jelenít meg), vagy a webkiszolgáló bármely más weboldala lehet a webszerver adminisztrátorának preferenciáitól függően.

Van valami a magyarázat hozzáadásához? Hangzik ki a megjegyzésekben. Szeretne többet válaszolni a többi technikus-tudós Stack Exchange felhasználóiról? Nézze meg a teljes vitafonalat itt.