da.phhsnews.com


da.phhsnews.com / Når du først begynder at lære, hvordan domænenavne, IP-adresser, webservere og hjemmesider alle passer og arbejder sammen, kan det være lidt forvirrende eller overvældende til tider. Hvordan er det hele oprettet for at fungere så smidigt? Dagens SuperUser Q & A-indlæg har svarene på en nysgerrig læsers spørgsmål.

Når du først begynder at lære, hvordan domænenavne, IP-adresser, webservere og hjemmesider alle passer og arbejder sammen, kan det være lidt forvirrende eller overvældende til tider. Hvordan er det hele oprettet for at fungere så smidigt? Dagens SuperUser Q & A-indlæg har svarene på en nysgerrig læsers spørgsmål.


Foto med tilladelse til Rosmarie Voegtli (Flickr).

Spørgsmålet

SuperUser læser user3407319 ønsker at vide, om webservere kun har et websted hver:

Baseret på hvad jeg forstår om DNS og forbinder et domænenavn med IP-adressen på webserver et websted er gemt på, betyder det at hver webserver kun kan holde en hjemmeside? Hvis webservere holder mere end et websted, hvordan bliver det hele løst, så jeg kan få adgang til den hjemmeside, jeg vil have uden problemer eller mix ups?

Har webservere kun ét websted hver, eller har de mere

Svaret

SuperUser-bidragyder Bob har svaret for os:

I grunden indeholder browseren domænenavnet i HTTP-anmodningen, så webserveren ved, hvilket domæne der blev anmodet om og kan reagere i overensstemmelse hermed.

HTTP-anmodninger

Her er hvordan din typiske HTTP-anmodning sker:

1.

Brugeren giver en webadresse i form // vært: port / sti.

2. Den browser uddrag værtsdelen (domænet) af webadressen og oversætter den til en IP-adresse (hvis nødvendigt) i en proces, der kaldes navneopløsning. Denne oversættelse kan forekomme via DNS, men det behøver ikke at (for eksempel overgår den lokale værtsfil på almindelige operativsystemer DNS).

3. Browseren åbner en TCP-forbindelse til den angivne port eller standardindstillinger til port 80 på den IP-adresse.

4. Browseren sender en HTTP-anmodning. For HTTP / 1.1 ser det sådan ud:

Værtsoverskriften er standard og kræves i HTTP / 1.1. Det var ikke angivet i HTTP / 1.0-spec, men nogle servere understøtter det alligevel. Herfra har webserveren flere oplysninger, som den kan bruge til at bestemme, hvad svaret skal være. Bemærk, at det er muligt for en enkelt webserver at være bundet til flere IP-adresser.

Den forespurgte IP-adresse fra TCP-stikket (klientens IP-adresse er også tilgængelig, men det bruges sjældent og til tider for blokering / filtrering)

Den ønskede port, fra TCP-stikket

  • Det ønskede værtsnavn, som angivet i værtsoverskriften af ​​browseren i HTTP-anmodningen
  • Den ønskede vej
  • Andre overskrifter (cookies , osv.).
  • Som du synes at have bemærket, sætter de mest almindelige delte hosting-opsætninger i disse dage flere websites på en enkelt IP-adresse: portkombination, hvor kun værten skal skelne mellem websteder.
  • Dette er kendt som en navnebaseret virtuel vært i Apache-land, mens Nginx kalder dem servernavne i serverblokke, og IIS foretrækker Virtual Server.

Hvad er HTTPS?

HTTPS er lidt anderledes. Alt er identisk med etableringen af ​​TCP-forbindelsen, men efter det skal der etableres en krypteret TLS-tunnel. Målet er at ikke lække nogen information om anmodningen.

For at kontrollere, at webserveren faktisk ejer dette domæne, skal webserveren sende et certifikat underskrevet af en betroet tredjepart. Browseren vil derefter sammenligne dette certifikat med det domæne, det ønskede.

Dette giver et problem. Hvordan kan webserveren vide, hvilket vært / websteds certifikat der skal sendes, hvis det skal ske før HTTP-anmodningen er modtaget?

Traditionelt blev dette løst ved at have en dedikeret IP-adresse (eller port) for hver hjemmeside, der kræver HTTPS. Det er naturligvis blevet problematisk, da vi løber tør for IPv4-adresser.

Indtast SNI (Servernavn Indikation). Browseren passerer nu værtsnavnet under TLS-forhandlingerne, så webserveren har disse oplysninger tidligt nok til at sende det korrekte certifikat. På webserver siden er konfigurationen meget lig den måde, hvorpå HTTP virtuelle værter er konfigureret.

Ulempen er værtsnavnet er nu bestået som ren tekst før kryptering, og er i det væsentlige lækket information. Dette betragtes som en acceptabel afvejning, selvom man overvejer at værtsnavnet normalt er udsat for en DNS-forespørgsel.

Hvad hvis du kun anmoder om et websted via IP-adresse?

Hvad webserveren gør, når den ikke ved det hvilken specifik vært du anmodede om afhænger af webserverens implementering og konfiguration. Typisk er der angivet en "standard", "catch-all" eller "fall back" -websted, der vil give svar på alle anmodninger, der ikke udtrykkeligt angiver en vært.

Denne standardwebsted kan være sin egen uafhængige hjemmeside ( ofte viser en fejlmeddelelse), eller det kan være nogen af ​​de andre websteder på webserveren afhængigt af webserveradministratorens præferencer.

Har du noget at tilføje til forklaringen? Lyde af i kommentarerne. Vil du læse flere svar fra andre tech-savvy Stack Exchange brugere? Se hele diskussionsgruppen her.


Sådan fjerner du Apples indbyggede apps fra din iOS-startskærm.

Sådan fjerner du Apples indbyggede apps fra din iOS-startskærm.

Hvis du er irriteret af skærmfast ejendom, som Apple Apples apps optager på din iPhone eller iPad, er der noget Ny i iOS 10 vil du elske: evnen til at fjerne dem. Hvis du stadig kører iOS 9, kan du læse vores artikel om alle de gamle måder at skjule apps på. De er ikke helt så gode som iOS 10's metode, men de er alt hvad du har på ældre enheder.

(how-to)

Ubuntu 16.04 Gør Ubuntu spændende igen

Ubuntu 16.04 Gør Ubuntu spændende igen

Ubuntu har ikke haft det bedste ry blandt Linux-brugere i løbet af de sidste par år - med nogle går endda så langt som at kalde det "kedeligt". Ubuntu 16.04 "Xenial Xerus" er ikke kun en spændende udgivelse, men en der har potentiale til at være en spilskifter til Linux økosystemet. Hvis du har tøvet med at prøve det, Ubuntu sprang først i Linux-verdenen i 2004 og fulgte det fuldstændig med at ændre Linux-ansigtet fra det tidspunkt, hvor "kun til brug for erfarne geeks" kunne bruges til æra af "Linux for Mennesker".

(how-to)