17Aug
Ko najprej začnete učiti, kako so domenska imena, naslovi IP, spletni strežniki in spletna mesta primerna in delata skupaj, je lahko nekoliko zmedeno ali preveč včasih. Kako je vse postavljeno, da deluje tako gladko? Današnji SuperUser Q & Objava ima odgovore na radovedna vprašanja bralca.
Današnje vprašanje &S sejo odgovora prihaja uporaba SuperUserja, ki je razdeljena na Stack Exchange, skupinsko spletno stran Q & A.
Foto: Rosmarie Voegtli( Flickr).
Vprašalnik
SuperUser bralnik user3407319 želi vedeti, če spletni strežniki vsebujejo samo eno spletno mesto:
Na podlagi tega, kar razumem o DNS in povezovanju domene z IP naslovom spletnega strežnika, je spletno mesto shranjeno, ali to pomeni,spletni strežnik lahko ima samo eno spletno mesto?Če spletni strežniki imajo več kot eno spletno mesto, kako se vse reši, da lahko dostopam do spletnega mesta, ki ga želim brez kakršnih koli težav ali zamenjave?
Ali spletni strežniki imajo samo eno spletno mesto ali pa imajo več?
Odzivnik odgovora
SuperUser Bob ima odgovor za nas:
V bistvu brskalnik vsebuje ime domene v zahtevi HTTP, tako da spletni strežnik ve, katera domena je bila zahtevana in se lahko ustrezno odzove.
Zahteve za HTTP
Tukaj je, kako se zgodi vaš tipičen zahtev HTTP:
1. Uporabnik ima URL v obliki http: // host: port / path.
2. Brskalnik izpisa del gostitelja( domene) URL-ja in ga prevede v IP-naslov( če je potrebno) v procesu znanem kot ločevanje imen. Ta prevod se lahko izvede prek DNS-ja, vendar ga ni potrebno( na primer lokalna datoteka gostiteljev v skupnih operacijskih sistemih zaobide DNS).
3. Brskalnik odpre povezavo TCP z določenim pristaniščem ali privzame vrata 80 na tem IP naslovu.
4. Brskalnik pošlje zahtevo HTTP.Za HTTP / 1.1 je videti:
Glava gostitelja je standardna in zahteva HTTP / 1.1.Ni bil naveden v specifikaciji HTTP / 1.0, vendar ga nekateri strežniki podpirajo.
Od tu ima spletni strežnik več informacij, ki jih lahko uporabi za odločitev, kakšen bo odziv. Upoštevajte, da je mogoče, da je en spletni strežnik vezan na več naslovov IP.
- Zahtevani naslov IP iz vtičnice TCP( na voljo je tudi naslov IP odjemalca, vendar se to le redko uporablja, včasih pa tudi za blokiranje / filtriranje)
- Zahtevana vrata iz vtičnice TCP
- Zahtevano ime gostitelja, kotki jo je brskalnik navedel v zahtevi HTTP v brskalniku v zahtevi HTTP
- Zahtevana pot
- Vsi drugi glave( piškotki itd.)
Kot se vam zdi, ste opazili, da je v teh dneh najpogostejši skupni gostiteljski namestitvi več spletnih mest na enem naslovu IP: kombinacija pristanišč, pri čemer ostane samo gostiteljica, da razlikuje med spletnimi mesti.
To je znano kot navidezni gostitelj na osnovi imena v Apache-land, medtem ko jih Nginx imenuje strežniška imena v strežniških blokih in IIS raje navidezni strežnik.
Kaj pa HTTPS?
HTTPS je nekoliko drugačen. Vse je identično do vzpostavitve povezave TCP, potem pa mora biti vzpostavljen šifriran TLS tunel. Cilj je, da ne pušča nobenih informacij o zahtevi.
Če želite preveriti, ali spletni strežnik dejansko uporablja to domeno, mora spletni strežnik poslati potrdilo, ki ga podpiše zaupanja vredna tretja oseba. Brskalnik bo nato primerjal ta certifikat z domeno, ki jo je zahteval.
To predstavlja težavo. Kako spletni strežnik ve, kateremu potrdilu gostitelja / spletnega mesta pošilja, če to potrebuje, preden prejme zahtevo HTTP?
Tradicionalno je bilo to rešeno z imenom namenskega naslova IP( ali pristanišča) za vsako spletno mesto, ki zahteva HTTPS.Očitno je to postalo problematično, saj zmanjkujemo naslovov IPv4.
Vnesite SNI( indikacija imena strežnika).Brskalnik zdaj prehaja ime gostitelja med pogajanji TLS, zato ima spletni strežnik te podatke dovolj zgodaj, da pošlje pravilen certifikat. Na strani spletnega strežnika je konfiguracija zelo podobna, kako so konfigurirani virtualni gostitelji HTTP.
Slaba stran je ime gostitelja, ki je zdaj šifrirano kot navadno besedilo in je v bistvu objavljeno. To se ponavadi obravnava kot sprejemljiv kompromis, čeprav je ime gostitelja običajno izpostavljeno v poizvedbi DNS.
Kaj, če zahtevate spletno stran samo po naslovu IP?
Kaj stori spletni strežnik, ko ne ve, kateri specifični gostitelj ste zahtevali, je odvisno od izvajanja in konfiguracije spletnega strežnika. Običajno je določena spletna stran »privzeto«, »ujeti-vse« ali »padajoče«, ki bo zagotovila odgovore na vse zahteve, ki ne izrecno določajo gostitelja.
Ta privzeta spletna stran je lahko lastna neodvisna spletna stran( pogosto prikazuje sporočilo o napaki) ali pa je lahko katero koli od drugih spletnih mest na spletnem strežniku, odvisno od nastavitev skrbnika spletnega strežnika.
Ali želite dodati nekaj pojasnila? Zvok v komentarjih.Želite prebrati več odgovorov od drugih uporabniških članov stack Exchange? Oglejte si celotno temo za razpravo tukaj.