17Aug

Kas veebiserveritel on ainult üks veebisait?

Kui hakkate kõigepealt õppima, kuidas domeeninimesid, IP-aadresse, veebiservereid ja veebisaite kõik sobivad ja töötavad koos, võib see aeg-ajalt natuke segadust tekitada või ületamatu. Kuidas kõik on loodud nii sujuvalt toimima? Tänane SuperUser Q & post sisaldab vastuseid uudishimulikule lugeja küsimustele.

Tänane küsimus &Vastuste seanss tuleb meile viisakalt SuperUseriga - Q & A veebisaitide kogukonnapõhise grupi Stack Exchange jagunemisest.

Photo courtesy of Rosmarie Voegtli( Flickr).

Küsimus

SuperUser-lugeja user3407319 soovib teada, kas veebiserveritel on ainult üks veebisait:

Selle põhjal, mida ma mõistan DNS-i kohta ja domeeni nime sidumist veebiserveri IP-aadressiga, on veebisait salvestatud, kas see tähendab igaveebiserveril on ainult üks veebisait? Kui veebiserveritel on rohkem kui üks veebisait, siis kuidas see kõik lahendatakse, nii et ma saaksin veebisaiti, mida ma soovin ilma probleemideta või segamini ajada?

Kas veebiserveritel on ainult üks veebisait või kas neil on veel rohkem veebisaite?

Vastusega

SuperUseri abikõlblikul Bobil on meie jaoks vastus:

Põhimõtteliselt sisaldab brauser HTTP-päringus domeeninime, nii et veebiserver teab, millist domeeni on taotletud ja saab vastavat vastata.

HTTP-nõuded

Siin on, kuidas teie tüüpiline HTTP-päring toimub:

1. Kasutaja esitab URL-i vormis http: // host: port / path.

2. Brauser eemaldab URL-i hosti( domeeni) osa ja muudab selle nime eraldusvõimega seotud protsessis IP-aadressiks( vajadusel).See tõlge võib toimuda DNS-i kaudu, kuid see ei ole vajalik( näiteks tavaliste operatsioonisüsteemide kohaliku hosti faili ümbersõit DNS-is).

3. Brauser avab määratud porti TCP-ühenduse või vaikimisi selle IP-aadressi 80 pordi.

4. Brauser saadab HTTP-päringu. HTTP / 1.1 puhul näeb see välja nii:

Vastuvõtte päis on standardne ja vajalik HTTP / 1.1-s. Seda ei määratud HTTP / 1.0 spetsifikatsioonis, kuid mõned serverid toetavad seda ikkagi.

Siin on veebiserveril mitu informatsiooni, mida ta saab otsustada, milline vastus peaks olema. Pange tähele, et on võimalik, et üks veebiserver on seotud mitme IP-aadressiga.

  • Nõutav IP-aadress TCP-pessa( kliendi IP-aadress on samuti saadaval, kuid seda kasutatakse harva, mõnikord ka blokeerimiseks / filtreerimiseks)
  • Nõutud porti TCP pistikupessa
  • Nõutav hostinimi naguHTTP-päringu
  • brauseri poolt määratud hosti päises. Nõutud tee
  • Muud pealkirjad( küpsised jms)

Nagu te näinud, on kõige sagedasem virtuaalserveri seadistamine nendel päevadel ühest IP-aadressist mitu veebisaiti: sadama kombinatsioon, jättes ainult hosti veebisaitide eristamiseks.

Seda nimetatakse Apache-maa nimepõhiseks virtuaalseks hostiks, samal ajal kui Nginx nimetab neid serveri nimesid serveriblokkides ja IIS eelistab virtuaalserverit.

Mis on HTTPSist?

HTTPS on natuke teistsugune. Kõik on TCP-ühenduse loomisega identsed, kuid pärast seda tuleb luua krüptitud TLS-tunnel. Eesmärk on mitte lekkida teavet taotluse kohta.

Veendumaks, et veebiserver omab seda domeeni, peab veebiserver saatma usaldusväärse kolmanda osapoole poolt allkirjastatud sertifikaadi. Seejärel võrdleb brauser seda sertifikaati soovitud domeeniga.

See on probleem. Kuidas veebiserver teab, millise hosti / veebisaidi sertifikaadi saata, kui see on vajalik enne HTTP-päringu kättesaamist?

Traditsiooniliselt lahendati see konkreetse IP-aadressi( või porti) abil iga veebisaidi jaoks, mis vajab HTTPS-i. Ilmselt on see muutunud problemaatiliseks, kuna meil on IPv4 aadressid.

sisestage SNI( serverinime tähis).Brauser läbib nüüd TLSi läbirääkimiste ajal hosti nime, seega on veebiserveril see teave õige sertifikaadi saatmiseks piisavalt vara. Veebiserveris on konfiguratsioon väga sarnane HTTP virtuaalsete masinate konfigureerimisele.

Negatiivne külg on see, et enne krüpteerimist edastatakse hostinimi kui tavaline tekst ning see on sisuliselt lekkinud teave. Seda peetakse tavaliselt aktsepteeritavaks kompromissiks, arvestades, et hosti nimi on üldjuhul avatud DNS-päringus.

Mis siis, kui te taotlete veebisaiti ainult IP-aadressi abil?

Mida veebiserver teeb, kui ta ei tea, millist konkreetset hosti soovite, sõltub veebiserveri rakendusest ja konfiguratsioonist. Tüüpiliselt on määratud määratletud vaikimisi, "püüda kõik" või "kukutada tagasi" veebisaiti, mis annab vastused kõikidele päringutele, mis ei määra sõnastikku.

See vaikimisi veebisait võib olla oma iseseisev veebisait( sageli veateate kuvamisel) või see võib olla mis tahes muu veebiserveri veebisait, sõltuvalt veebiserveri administraatori eelistustest.

Kas teil on seletamiseks midagi lisada? Helistage kommentaarides. Kas soovite lugeda rohkem vastuseid teistelt tech-savvy Stack Exchange'i kasutajatelt? Tutvu täieliku arutelu teemaga siit.