Webb-Servrar Endast Ha En Hemsida?

0
279

När du först lära dig hur domännamn, IP-adresser, webbservrar, webbplatser och allt ska passa och fungera tillsammans, det kan vara lite förvirrande eller överväldigande. Hur är det alla ställa upp för att fungera så smidigt? Idag är SuperUser Q&A-post har svar på nyfikna läsares frågor.

Dagens session med frågor Och Svar kommer till oss artighet av SuperUser—en indelning av Stack Exchange, en community-driven gruppering av Q&A sidor.

Foto med tillstånd av Rosmarie Voegtli (Flickr).

Frågan

SuperUser läsare user3407319 vill veta om web-servrar endast ha en webbplats var och en:

Baserat på vad jag förstår om DNS och koppla ett domännamn till IP-adressen för webbservern en webbsida lagras på, betyder att varje webbserver kan bara hålla en hemsida? Om webbservrar som inte håller mer än en hemsida, hur går det till att få löst så att jag kan komma till hemsidan som jag vill utan att något problem eller mix-ups?

Webb-servrar endast ha en webbplats var och en, eller håller de mer?

Svara

SuperUser bidragsgivare Bob har svaret för oss:

I grund och botten, den webbläsare som innehåller domännamnet i HTTP-begäran så att webbservern vet vilken domän som var begärd och kan agera därefter.

HTTP-Förfrågningar

Här är hur din typiska HTTP-begäran som händer:

1. Användaren ger en URL, i form http://host:port/path.

2. Webbläsaren utdrag värden (domän) en del av WEBBADRESSEN och översätter det till en IP-adress (om nödvändigt) i en process som kallas name resolution. Denna översättning kan ske via DNS, men det gör det inte (till exempel, den lokala hosts-filen på vanliga operativsystem förbi DNS).

3. Webbläsaren öppnar en TCP-anslutning till den angivna porten, eller standard port 80 på den IP-adressen.

4. Webbläsaren skickar en HTTP-begäran. För HTTP/1.1, ser det ut så här:

Värd header är standard och som krävs i HTTP/1.1. Det var inte angivna i HTTP/1.0, men vissa servrar stöd för det i alla fall.

Från här, web-server har flera bitar av information som man kan använda för att bestämma vad svaret bör vara. Observera att det är möjligt för en enda webbserver för att vara bunden till flera IP-adresser.

  • Den begärda IP-adress, från TCP socket (IP-adressen för den kunden är också tillgängliga, men detta används sällan, och ibland för blockering/filtrering)
  • Begärd port, från TCP socket
  • Den anmodade värd namnet, som anges i den mottagande huvudet genom webbläsaren i HTTP-begäran
  • Den anmodade väg
  • Andra rubriker (kakor m.m.)

Som du verkar ha märkt, den vanligaste delad hosting setup dessa dagar sätter flera webbplatser på en enda IP-adress:port kombination, lämnar bara den värd att skilja mellan webbplatser.

Detta är känt som ett Namn-Baserad Virtuell Värd i Apache-land, medan Nginx och kallar dem för ” Server i Server Block, och IIS föredrar Virtuella Server.

Hur är HTTPS?

HTTPS är lite olika. Allt är identiska fram till upprättandet av TCP-anslutning, men efter att en TLS-krypterad tunnel måste vara etablerad. Målet är att inte läcka någon information om ansökan.

För att kontrollera att webbservern faktiskt äger denna domän, web-server måste skicka med ett intyg signerat av en betrodd tredje part. Webbläsaren för att sedan jämföra detta intyg med den domän som den begärt.

Detta utgör ett problem. Hur påverkar web-server känna till vilken värd/webbplats: s intyg för att skicka om den behöver för att göra detta innan den HTTP-begäran tas emot?

Traditionellt, detta löstes genom att ha en dedikerad IP-adress (eller hamnen) för varje webbplats som kräver HTTPS. Uppenbarligen har detta bli problematiskt eftersom vi har ont om IPv4-adresser.

Ange SNI (Server Namn Indikation). Webbläsaren passerar nu värd namnet under TLS-förhandlingarna, så att webbservern har denna information tillräckligt tidigt för att skicka rätt certifikat. På webbserver-sidan, konfiguration är mycket likt hur HTTP virtuella värdar är konfigurerad.

Nackdelen är värd namnet är nu skickas som oformaterad text innan kryptering, och är i huvudsak läckt information. Detta är vanligtvis anses vara en godtagbar avvägning men med tanke värd namnet är normalt exponeras i en DNS-fråga ändå.

Vad händer Om Du Begär en Webbplats via en IP-Adress?

Vad webbservern gör när man inte vet vilka särskilda värden som du begärt beror på webbservern implementering och konfiguration. Typiskt, det är en “standard”, “catch-all”, eller “falla tillbaka” hemsida som anges som kommer att ge svar på alla förfrågningar som inte uttryckligen ange en värd.

Denna standard webbplats kan vara sin egen oberoende webbplats (ofta visar ett felmeddelande), eller det kan vara någon av de andra webbplatser på webbservern beroende på inställningar av web server admin.

Har något att tillägga till förklaring? Ljudet i kommentarerna. Vill läsa fler svar från andra tech-savvy Stack Exchange-användare? Kolla in den fullständiga diskussionen tråd här.