17Aug
Kad jūs vispirms sākat mācīties, kā domēna nosaukumi, IP adreses, tīmekļa serveri un vietnes visas ir piemērotas un strādā kopā, dažkārt tas var nedaudz mulsinoši vai pārsteidzoši. Kā tas viss ir izveidots, lai strādātu tik gludi?Šodienas SuperUser Q & amai ir atbildes uz ziņkārīgo lasītāja jautājumiem.
Šodienas jautājums &Atbildes sesija mums priecājas par SuperUser - Stack Exchange, kas ir kopienas un 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 uzzinā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, tas nozīmē, ka katrsWeb serveris var turēt tikai vienu vietni? 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 arī tie tur vairāk?
Atbilde
SuperUser ieguldītājam Bobam mums ir atbilde:
Būtībā pārlūkprogramma iekļauj domēna nosaukumu HTTP pieprasījumā, lai tīmekļa serveris zinātu, kurš domēns ir pieprasīts, un var atbilstoši atbildēt.
HTTP pieprasījumi
Lūk, kā notiek tavs HTTP pieprasījums:
1. Lietotājs nodrošina URL formā http: // host: port / path.
2. Pārlūkprogramma izsniedz vietnes resursdatora 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 portu vai noklusējumus uz portu 80 šajā IP adresē.
4. Pārlūks sūta HTTP pieprasījumu. HTTP / 1.1 gadījumā tas izskatās šādi:
Uzņēmēja 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, bet to reti izmanto un dažreiz bloķē / filtrē)
- Lūgtais ports no TCP ligzdas
- Pieprasītā resursdatora nosaukums, kāHTTP pieprasījuma
- pārlūkprogrammā norādītais resursdatora galvenē. Pieprasītais ceļš
- . Citas galvenes( sīkdatnes utt.)
Kā jūs, šķiet, pamanījāt, ka visbiežāk sastopamā virtuālā hostinga iestatīšana šajās dienās vienā IP adresē piedāvā vairākas vietnes: porta kombinācija, atstājot tikai uzņēmēja atšķirt tīmekļa 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ūkprogrammas laikā TLS sarunas laikā tiek nodots resursdatora vārds, tādēļ 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 resursa nosaukums, pirms šifrēšanas tiek nodots kā vienkāršs teksts un 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 tas 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 parādīta kļūdas ziņa), vai arī tā var būt jebkura cita tīmekļa servera vietne atkarībā no tīmekļa servera administratora izvēles.
Vai kaut kas jāpievieno paskaidrojumam? Skatieties komentāros. Vēlaties lasīt citas atbildes no citiem tehnoloģiju savvy Stack Exchange lietotājiem?Šeit skatiet pilnu diskusiju pavedienu.