17Aug

Ar žiniatinklio serveriai turi tik vieną svetainę?

click fraud protection

Kai pirmą kartą pradedate mokytis, kaip domenų vardai, IP adresai, žiniatinklio serveriai ir tinklalapiai viskas tinkami ir dirba kartu, kartais tai gali būti šiek tiek paini arba varginanti. Kaip visa tai sukurta taip sklandžiai dirbti?Šiandien "SuperUser Q &" įraše pateikiami atsakymai į įdomius skaitytojo klausimus.

Šiandienos klausimas &Atsakymų sesija ateina pas mus iš "SuperUser" - "Stack Exchange", bendruomenės pagrįstos "Q & A" svetainių grupės pasidalijimo.

Nuotrauka mandagumo Rosmarie Voegtli( Flickr).

Klausimas

SuperUser skaitytojas user3407319 nori žinoti, ar žiniatinklio serveriuose yra tik viena svetainė:

Remiantis tuo, ką aš suprantu apie DNS ir susiejant domeno vardą su interneto serverio IP adresu, saugoma svetainė, ar tai reiškia kiekvienąinterneto serveris gali turėti tik vieną svetainę?Jei žiniatinklio serveriuose yra daugiau nei viena svetainė, tada kaip visa tai išspręsta, kad galėčiau pasiekti norimą svetainę be jokių problemų ar susimaišyti?

instagram viewer

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

Atsakymas

SuperUser autorius Bob atsakė mums:

Paprastai naršyklė įtraukia domeno pavadinimą HTTP užklausoje, taigi žiniatinklio serveris žino, kuris domenas buvo užklaustas ir gali atitinkamai atsakyti.

HTTP užklausos

Štai kaip atsiranda jūsų tipinė HTTP užklausa:

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

2. Naršyklė ištraukia URL( domeno) dalį URL ir išversta į IP adresą( jei reikia) procese, žinomu kaip vardų skiriamoji geba.Šis vertimas gali vykti per DNS, bet jo nereikia( pvz., Vietinių kompiuterių failas įprastomis operacinėmis sistemomis apeina DNS).

3. Naršyklė atidaro TCP jungtį prie nurodyto prievado arba pagal numatytuosius nustatymus įjunkite 80 prie šio IP adreso.

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

Hosto antraštė yra standartinė ir reikalinga HTTP / 1.1.Jis nebuvo nurodytas HTTP / 1.0 specifikacijoje, bet kai kurie serveriai vis tiek jį palaiko.

Iš čia, žiniatinklio serveris turi keletą informacijos, kurią jis gali naudoti norėdamas nuspręsti, koks atsakymas turėtų būti. Atkreipkite dėmesį, kad vieno interneto serverio gali būti susietas su keliais IP adresais.

  • Prašomas IP adresas iš TCP lizdo( taip pat yra ir kliento IP adresas, tačiau tai yra retai naudojamas, o kartais ir blokavimas / filtravimas)
  • Prašomas prievadas iš TCP lizdo
  • Prašomas vardas, kaipnurodyta HTTP užklausos
  • naršyklės pagrindiniame antraštėje. Prašomas kelias
  • Bet kokios kitos antraštės( slapukai ir kt.)

Kaip atrodo, kad pastebėjote, labiausiai paplitusi prieglobos serverio konfigūracija šiomis dienomis nurodo kelias svetaines viename IP adresu: uosto derinys, paliekant tik priimančiąją, kad būtų galima atskirti svetaines.

Tai žinoma kaip vardinis virtualus serveris "Apache-land", o "Nginx" juos vadina Serverio vardai serverio blokuose, o "IIS" pirmenybę teikia "Virtual Server".

Kas apie HTTPS?

HTTPS šiek tiek skiriasi. Viskas vienodi iki TCP ryšio sukūrimo, tačiau po to turi būti įtvirtintas užšifruotas TLS tunelis. Tikslas yra neiškreipti jokios informacijos apie prašymą.

Siekiant patikrinti, ar žiniatinklio serveryje iš tikrųjų priklauso šis domenas, žiniatinklio serveris turi išsiųsti sertifikatą, kurį pasirašo patikima trečioji šalis. Tada naršyklė palygins šį sertifikatą su prašomu domenu.

Tai kelia problemų.Kaip žiniatinklio serveris žino, kuris priimančiojo / svetainės sertifikatas turi būti išsiųstas, jei to reikia, prieš gaunant HTTP užklausą?

Tradiciškai tai buvo išspręsta turint atskirą IP adresą( arba prievadą) kiekvienai tinklui, kuriam reikia HTTPS.Akivaizdu, kad tai tapo problematiška, nes mes trūksta IPv4 adresų.

Įveskite SNI( serverio pavadinimo indikaciją).Per TLS derybas naršyklė dabar perduoda šeimininko vardą, taigi žiniatinklio serveris turi šią informaciją pakankamai anksti, kad būtų išsiųstas teisingas sertifikatas. Tinklo serverio pusėje konfigūracija yra labai panaši į konfigūruotą virtualiųjų serverių HTTP.

Neigiamas dalykas yra tai, kad prieglobos praeityje kompiuteris praeina kaip paprastas tekstas ir iš esmės yra informacija apie netekimus. Paprastai tai laikoma priimtina kompromisine, tačiau atsižvelgiant į tai, kad vis tiek kompiuterio vardas paprastai pateikiamas DNS užklausoje.

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

Ką veikia žiniatinklio serveris, kai jis nežino, kuris konkretus jūsų prašomas hostas priklauso nuo serverio įdiegimo ir konfigūracijos. Paprastai yra nurodytas numatytasis "numatytasis", "sugautas" arba "grįžtamasis" svetainė, kuriame bus atsakymai į visus užklausimus, kuriuose nėra aiškiai nurodomas kompiuteris.

Ši numatytoji svetainė gali būti jos nepriklausoma svetainė( dažnai rodoma klaidos pranešimas), arba tai gali būti bet kuri kita svetainė, priklausanti žiniatinklio serveriui, priklausomai nuo interneto serverio administratoriaus nuostatų.

Ar ką nors įtraukti į paaiškinimą?Garsas išjungtas komentaruose. Norite skaityti daugiau atsakymų iš kitų "Tech-savvy Stack Exchange" vartotojų?Patikrinkite visą diskusijų temą čia.