Domača » kako » Ali spletni strežniki samo imajo eno spletno stran?

    Ali spletni strežniki samo imajo eno spletno stran?

    Ko prvič začnete učiti, kako domenska imena, naslovi IP, spletni strežniki in spletne strani ustrezajo in delajo skupaj, je lahko včasih malo zmedeno ali preobremenjeno. Kako je vse pripravljeno tako gladko delati? Današnja objava za vprašanja in odgovore SuperUser ima odgovore na vprašanja radovednega bralca.

    Današnja seja vprašanj in odgovorov prihaja z namenom SuperUser-a, ki je del skupine Stack Exchange, ki temelji na skupnostih spletnih mest za vprašanja in odgovore.

    Fotografija z dovoljenjem Rosmarie Voegtli (Flickr).

    Vprašanje

    Bralnik super uporabnika user3407319 želi vedeti, ali imajo spletni strežniki samo eno spletno mesto:

    Glede na to, kar razumem o DNS in povezovanju imena domene z IP naslovom spletnega strežnika, na katerem je shranjena spletna stran, ali to pomeni, da lahko vsak spletni strežnik ima samo eno spletno stran? Če spletni strežniki imajo več kot eno spletno mesto, potem, kako se vse rešuje, tako da lahko dostopam do želenega spletnega mesta brez težav ali prepletanja?

    Ali imajo spletni strežniki samo eno spletno mesto, ali pa imajo več?

    Odgovor

    Sodelavka SuperUser Bob ima odgovor za nas:

    V bistvu brskalnik vključuje ime domene v zahtevi HTTP, tako da spletni strežnik ve, katero domeno je bilo zahtevano in se lahko ustrezno odzove.

    Zahteve HTTP

    Tako se zgodi tipična zahteva za HTTP:

    1. Uporabnik poda URL v obliki http: // host: port / path.

    2. Brskalnik izvleče del domene (domene) URL-ja in ga prevede v naslov IP (če je potrebno) v postopku, imenovanem ločljivost imena. Ta prevod se lahko pojavi prek DNS, vendar ga ni treba (npr. Datoteka lokalnih gostiteljev v običajnih operacijskih sistemih zaobide DNS).

    3. Brskalnik odpre povezavo TCP s podanimi vrati ali privzeto nastavi vrata 80 na tem naslovu IP.

    4. Brskalnik pošlje zahtevo HTTP. Za HTTP / 1.1 izgleda tako:

    Glava gostitelja je standardna in zahtevana v HTTP / 1.1. V specifikaciji HTTP / 1.0 ni bila podana, vendar pa nekateri strežniki to vseeno podpirajo.

    Od tu ima spletni strežnik več informacij, ki jih lahko uporabi za odločanje, kakšen naj bi bil odgovor. Upoštevajte, da je lahko en sam spletni strežnik vezan na več naslovov IP.

    • Zahtevani naslov IP iz vtičnice TCP (na voljo je tudi naslov IP odjemalca, ki pa se le redko uporablja, včasih pa za blokiranje / filtriranje)
    • Zahtevana vrata iz vtičnice TCP
    • Zahtevano ime gostitelja, kot je določeno v glavi gostitelja v brskalniku v zahtevi HTTP
    • Zahtevana pot
    • Vse druge glave (piškotki itd.)

    Kot se zdi, da ste opazili, je najpogostejša namestitev za deljeno gostovanje v teh dneh postavila več spletnih mest na en naslov IP: kombinacija vrat, tako da le gostitelj razlikuje spletne strani.

    To je znano kot imensko navidezni gostitelj v Apache-land, medtem ko jih Nginx imenuje Imena strežnikov v strežniških blokih, IIS pa raje Virtual Server \ t.

    Kaj pa HTTPS?

    HTTPS je nekoliko drugačen. Vse je identično do vzpostavitve povezave TCP, potem pa je treba vzpostaviti šifrirani tunel TLS. Cilj je, da informacije o zahtevi ne puščajo.

    Če želite preveriti, ali je spletni strežnik dejansko lastnik te domene, mora spletni strežnik poslati potrdilo, ki ga podpiše zaupna tretja oseba. Brskalnik bo nato to potrdilo primerjal z zahtevano domeno.

    To predstavlja težavo. Kako spletni strežnik ve, katero potrdilo gostitelja / spletnega mesta mora poslati, če to zahteva, preden prejme zahtevo HTTP?

    Tradicionalno je bilo to rešeno z namenskim naslovom IP (ali vratom) za vsako spletno stran, ki zahteva HTTPS. Očitno je to postalo problematično, saj nam zmanjkuje naslovov IPv4.

    Vnesite SNI (prikaz imena strežnika). Brskalnik zdaj prejme ime gostitelja med pogajanji TLS, zato ima spletni strežnik te informacije dovolj zgodaj, da pošlje pravilen certifikat. Na strani spletnega strežnika je konfiguracija zelo podobna konfiguraciji navideznih gostiteljev HTTP.

    Slaba stran je ime gostitelja, ki je pred šifriranjem posredovano kot navadno besedilo in je v bistvu prepuščeno informacijam. To se običajno šteje za sprejemljivo kompromis, čeprav je upoštevanje imena gostitelja običajno izpostavljeno v poizvedbi DNS.

    Kaj če zahtevate spletno stran samo z naslovom IP?

    Kaj naredi spletni strežnik, ko ne ve, kateri specifični gostitelj ste zahtevali, je odvisno od izvedbe in konfiguracije spletnega strežnika. Običajno je navedeno spletno mesto »privzeto«, »catch-all« ali »fall back«, ki bo zagotavljalo odgovore na vse zahteve, ki izrecno ne 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 drugo spletno mesto na spletnem strežniku, odvisno od nastavitev skrbnika spletnega strežnika..


    Imate kaj dodati pojasnilu? Zvok v komentarjih. Želite prebrati več odgovorov drugih uporabnikov tehnologije Stack Exchange? Oglejte si celotno nit razprave tukaj.