Pagrindinis » kaip » Ar interneto serveriai turi tik vieną svetainę?

    Ar interneto serveriai turi tik vieną svetainę?

    Kai pirmą kartą pradėsite mokytis, kaip domenų vardai, IP adresai, žiniatinklio serveriai ir svetainės visi tinka ir veikia kartu, kartais tai gali būti šiek tiek paini ar didžiulė. Kaip visa tai veikia taip sklandžiai? Šiandienos „SuperUser“ atsakymų ir atsakymų atsakymai yra įdomūs skaitytojo klausimai.

    Šiandienos „Klausimų ir atsakymų“ sesija mums suteikiama pagal „SuperUser“ - „Stack Exchange“ padalinį, bendruomenės sukurtą „Q&A“ svetainių grupavimą.

    „Rosmarie Voegtli“ (Flickr) nuotrauka.

    Klausimas

    „SuperUser“ skaitytuvas user3407319 nori sužinoti, ar žiniatinklio serveriuose yra tik viena svetainė:

    Remiantis tuo, ką suprantu apie DNS ir domeno vardo susiejimą su interneto serverio IP adresu, svetainė saugoma, ar tai reiškia, kad kiekvienas žiniatinklio serveris gali turėti tik vieną svetainę? Jei žiniatinklio serveriai turi daugiau nei vieną svetainę, tai kaip visa tai išspręsta, kad galėčiau pasiekti norimą svetainę be jokių problemų ar sumaišyti?

    Ar žiniatinklio serveriai turi tik vieną svetainę, ar jie turi daugiau?

    Atsakymas

    „SuperUser“ dalyvis Bobas atsako:

    Iš esmės naršyklėje yra domeno vardas HTTP užklausoje, kad žiniatinklio serveris žinotų, kuris domenas buvo prašomas ir gali atitinkamai reaguoti.

    HTTP užklausos

    Štai kaip jūsų įprastas HTTP prašymas įvyksta:

    1. Vartotojas pateikia URL: http: // host: port / path.

    2. Naršyklė išskleidžia URL adresų (domenų) dalį ir paverčia jį į IP adresą (jei reikia) proceso pavadinimu, pavadinimu pavadinimo raiška. Šis vertimas gali įvykti per DNS, tačiau jo nereikia (pvz., Vietinio kompiuterio failas, esantis įprastose operacinėse sistemose, apeinant DNS).

    3. Naršyklė atveria TCP ryšį su nurodytu prievadu arba nustatys, kad IP adresas yra 80.

    4. Naršyklė siunčia HTTP užklausą. HTTP / 1.1 atveju tai atrodo:

    Prietaiso antraštė yra standartinė ir reikalaujama HTTP / 1.1. Jis nebuvo nurodytas HTTP / 1.0 specifikacijoje, tačiau kai kurie serveriai jį vis tiek palaiko.

    Nuo šiol žiniatinklio serveryje yra keletas informacijos, kurią ji gali naudoti norėdama nuspręsti, koks turėtų būti atsakymas. Atkreipkite dėmesį, kad vieną interneto serverį galima susieti su keliais IP adresais.

    • Prašomas IP adresas iš TCP lizdo (taip pat yra kliento IP adresas, tačiau tai retai naudojama ir kartais užblokuojant / filtruojant)
    • Prašomas prievadas iš TCP lizdo
    • Prašomas pagrindinio kompiuterio pavadinimas, kaip HTTP užklausoje nurodo naršyklės pagrindinė antraštė
    • Prašomas kelias
    • Kiti antraštės (slapukai ir kt.)

    Kaip atrodė, pastebėjote, kad dažniausiai pasidalijamojo prieglobos sąranka šiomis dienomis įkelia kelis tinklalapius į vieną IP adresą: prievado derinį, paliekant tik priimančiajam atskirti svetaines.

    Tai žinoma kaip „Vache-Virtual Virtual Host“ programoje „Apache-land“, o „Nginx“ juos vadina „Server Blocks“ serverio pavadinimais, o „IIS“ - „Virtual Server“.

    Ką apie HTTPS?

    HTTPS yra šiek tiek kitoks. Viskas yra identiška iki TCP ryšio sukūrimo, bet po to turi būti sukurtas užšifruotas TLS tunelis. Tikslas - nepraleisti informacijos apie užklausą.

    Kad patikrintumėte, ar žiniatinklio serveris iš tikrųjų turi šį domeną, žiniatinklio serveris turi išsiųsti patikimos trečiosios šalies pasirašytą sertifikatą. Tada naršyklė palygins šį sertifikatą su prašomu domenu.

    Tai kelia problemą. Kaip žiniatinklio serveris žino, kuris priimančiosios šalies / svetainės sertifikatas turi būti siunčiamas, jei jis turi tai padaryti prieš gaunant HTTP užklausą?

    Tradiciškai tai buvo išspręsta kiekvienam tinklapiui, kuriam reikalingas HTTPS, skirtas IP adresas (arba prievadas). Akivaizdu, kad tai tapo problemiška, nes baigsis IPv4 adresai.

    Įveskite SNI (Server Name Indication). Dabar naršyklė perduoda pagrindinio kompiuterio pavadinimą TLS derybų metu, todėl žiniatinklio serveris turi šią informaciją pakankamai anksti, kad išsiųstų teisingą sertifikatą. Interneto serverio pusėje konfigūracija labai panaši į tai, kaip sukonfigūruoti HTTP virtualūs kompiuteriai.

    Trūkumas yra priimančiosios vardas dabar perduodamas kaip paprastas tekstas prieš šifravimą, ir iš esmės yra nutekėjusi informacija. Paprastai tai laikoma priimtina kompromisa, nors, atsižvelgiant į pagrindinio kompiuterio pavadinimą, DNS užklausoje vis tiek yra eksponuojama.

    Ką daryti, jei prašote svetainės tik IP adresu?

    Ką žiniatinklio serveris atlieka, kai nežino, kuris konkretus jūsų prašomas prieglobos adresas priklauso nuo žiniatinklio serverio įgyvendinimo ir konfigūracijos. Paprastai yra nurodyta „pagal nutylėjimą“, „visas sugavimo“ arba „grįžimo“ svetainė, kuri suteiks atsakymus į visus prašymus, kuriuose nėra aiškiai nurodyta priimančioji šalis.

    Ši numatytoji svetainė gali būti savarankiška svetainė (dažnai rodanti klaidos pranešimą), arba ji gali būti bet kuri kita žiniatinklio serverio svetainė, priklausomai nuo žiniatinklio serverio administratoriaus parinkčių.


    Ar ką nors papildyti paaiškinimu? Garsas išjungtas komentaruose. Norite perskaityti daugiau atsakymų iš kitų „tech-savvy Stack Exchange“ vartotojų? Čia rasite visą diskusijų temą.