If-Koubou

Vai tīmekļa serveri tur tikai vienu vietni?

Vai tīmekļa serveri tur tikai vienu vietni? (Kā)

Kad jūs vispirms sākat apgūt, kā domēna vārdi, IP adreses, tīmekļa serveri un vietnes visās der un kopā strādā, tas dažkārt var būt nedaudz mulsinošs vai pārsteidzošs. Kā tas viss ir izveidots, lai strādātu tik gludi? Šodienas SuperUser Q & A ziņai ir atbildes uz ziņkārīgo lasītāja jautājumiem.

Šodienas jautājumu un atbilžu sesija mums priecājas par SuperUser - Stack Exchange dalību, kas ir kopienas vadīta Q & A tīmekļa vietņu grupa.

Foto pieklājīgi no Rosmarie Voegtli (Flickr).

Jautājums

SuperUser lasītājs user3407319 vēlas zināt, vai tīmekļa serveriem ir tikai viena tīmekļa vietne:

Pamatojoties uz to, ko es saprotu par DNS un saistot domēna vārdu ar tīmekļa servera IP adresi, tiek saglabāta vietne, vai tas nozīmē, ka katram tīmekļa serverim ir tikai viena vietne? Ja tīmekļa serveriem ir vairāk nekā viena vietne, tad kā tas viss tiek atrisināts, lai es varētu piekļūt vietnei, kuru es gribu bez jebkādām problēmām vai sajaukšanas?

Vai tīmekļa serveriem ir tikai viena tīmekļa vietne, vai katram ir vairāk vietas?

Atbilde

SuperUser ieguldītājs Bobs mums ir atbilde:

Būtībā pārlūkprogramma ietver HTTP pieprasījumā domēna nosaukumu, tādēļ tīmekļa serveris zina, kurš domēns ir pieprasīts un var atbilstoši atbildēt.

HTTP pieprasījumi

Lūk, kā notiek jūsu tipiskais HTTP pieprasījums:

1. Lietotājs nodrošina URL formā http: // host: port / path.

2. Pārlūks izraksta vietnes resursdatora (domēna) daļu un pārveido to IP adresē (ja nepieciešams) procesā, kas pazīstams kā vārda izšķirtspēja. Šis tulkojums var notikt, izmantojot DNS, bet tam nav (piemēram, vietējo saimniekdatoru fails kopējās operētājsistēmās apiet DNS).

3. Pārlūkprogramma atver TCP savienojumu ar norādīto pieslēgvietu vai noklusējumus iestatiet 80 šajā IP adresē.

4. Pārlūks sūta HTTP pieprasījumu. Attiecībā uz HTTP / 1.1 tas izskatās šādi:

Uzņemšanas galvenes ir standarta un nepieciešamas HTTP / 1.1. Tas nebija norādīts HTTP / 1.0 spec, bet daži serveri to atbalsta.

No šejienes tīmekļa serverim ir vairāki informācijas veidi, kurus tā var izmantot, lai izlemtu, kāda ir atbilde. Ņemiet vērā, ka vienam tīmekļa serverim ir iespējams piesaistīt vairākas IP adreses.

  • Pieprasītā IP adrese no TCP kontaktligzdas (arī klienta IP adrese ir pieejama, taču to reti izmanto un dažreiz bloķē / filtrē).
  • Pieprasītā osta no TCP kontaktligzdas
  • Pieprasītais resursdatora nosaukums, kā HTTP pieprasījumā norādīts pārlūkprogrammas galvenes galvenē
  • Pieprasītais ceļš
  • Jebkādas citas galvenes (sīkdatnes utt.)

Kā jūs, šķiet, pamanījāt, ka visbiežāk koplietojamās hostinga iestatīšana šajās dienās rada vairākas vietnes vienā IP adresē: ostas kombinācija, atstājot tikai uzņēmēju, lai atšķirtu vietnes.

Tas ir pazīstams kā uz virtuālo serveri ar nosaukumu Apache-land, bet Nginx tos sauc par servera nosaukumiem servera blokos, un IIS dod priekšroku virtuālajam serverim.

Kas par HTTPS?

HTTPS ir nedaudz atšķirīgs. Viss ir vienāds ar TCP savienojuma izveidošanu, bet pēc tam jāuzstāda šifrēts TLS tunelis. Mērķis ir nevis noplūst informāciju par pieprasījumu.

Lai pārbaudītu, vai tīmekļa serverim patiešām pieder šis domēns, tīmekļa serverim jānosūta sertifikāts, kuru parakstījusi uzticama trešā puse. Pēc tam pārlūkprogramma salīdzinās šo sertifikātu ar pieprasīto domēnu.

Tas rada problēmu. Kā tīmekļa serveris zina, kurš uzņēmēja / tīmekļa vietnes sertifikāts jānosūta, ja tas jādara pirms HTTP pieprasījuma saņemšanas?

Tradicionāli tas tika atrisināts ar īpašu IP adresi (vai portu) katrai vietnei, kurai nepieciešams HTTPS. Acīmredzot tas ir kļuvis problemātisks, jo mēs izbeidzam IPv4 adreses.

Ievadiet SNI (servera nosaukuma norāde). Pārlūkprogramma TLS sarunu laikā tūlīt nodod resursdatora nosaukumu, tāpēc tīmekļa serverim ir šī informācija pietiekami agri, lai nosūtītu pareizo sertifikātu. Web servera pusē konfigurācija ir ļoti līdzīga tai, kā tiek konfigurēti HTTP virtuālie resursdatori.

Negatīvie ir tas, ka resursdatora vārds tagad tiek nodots kā vienkāršs teksts pirms šifrēšanas, un tā būtībā ir noplūda informācija. Parasti tas tiek uzskatīts par pieņemamu kompromisu, tomēr, ņemot vērā, ka resursdatora nosaukums parasti tiek atklāts DNS vaicājumā.

Ko darīt, ja jūs pieprasāt vietni tikai ar IP adresi?

Ko dara tīmekļa serveris, ja tā nezina, kāda konkrētā uzņēmēja jūs pieprasījāt, ir atkarīga no tīmekļa servera ieviešanas un konfigurācijas. Parasti ir norādīta "noklusējuma", "noķerta" vai "atkāpšanās" vietne, kas sniegs atbildes uz visiem pieprasījumiem, kuros nav skaidri noteikts saimniekdators.

Šī noklusējuma vietne var būt tā pati neatkarīga vietne (bieži vien rāda kļūdas ziņojumu) vai tā var būt jebkura cita tīmekļa servera vietne atkarībā no tīmekļa servera administratora preferenču.

Vai kaut ko pievienot paskaidrojumam? Skatieties komentāros. Vēlaties lasīt citas atbildes no citiem tehnoloģiju savvy Stack Exchange lietotājiem? Šeit skatiet pilnu diskusiju pavedienu.