it.phhsnews.com


it.phhsnews.com / I server Web tengono solo un sito web ciascuno?

I server Web tengono solo un sito web ciascuno?


Quando inizi a imparare come nomi di domini, indirizzi IP, server web e siti web si adattino e lavorino insieme, può essere un po 'di confusione o travolgente a volte. Com'è impostato tutto per funzionare così bene? Il post di Q & A di SuperUser di oggi ha le risposte alle domande di un lettore curioso.

La sessione di domande e risposte di oggi ci viene fornita per gentile concessione di SuperUser, una suddivisione di Stack Exchange, un raggruppamento di siti Web di domande e risposte.

Foto per gentile concessione di Rosmarie Voegtli (Flickr).

La Domanda

Il lettore SuperUser user3407319 vuole sapere se i server web contengono solo un sito web ciascuno:

In base a ciò che capisco di DNS e al collegamento di un nome di dominio con l'indirizzo IP del web server su cui è memorizzato un sito Web, vuol dire che ogni server web può contenere solo un sito Web? Se i server web contengono più di un sito Web, come viene risolto il problema in modo che possa accedere al sito Web che desidero senza problemi o confusione?

I server Web contengono solo un sito Web ciascuno o tengono più ?

La risposta

Contribuente SuperUser Bob ha la risposta per noi:

Fondamentalmente, il browser include il nome del dominio nella richiesta HTTP in modo che il server Web sappia quale dominio è stato richiesto e può rispondere di conseguenza.

Richieste HTTP

Ecco come avviene la tipica richiesta

1. L'utente fornisce un URL, nella forma // host: porta / percorso.

2. The il browser estrae la parte dell'host (dominio) dell'URL e la traduce in un indirizzo IP (se necessario) in un processo noto come risoluzione del nome. Questa traduzione può avvenire tramite DNS, ma non deve (ad esempio, il file degli host locali su sistemi operativi comuni ignora il DNS).

3. Il browser apre una connessione TCP alla porta specificata o ai valori predefiniti alla porta 80 su quell'indirizzo IP.

4. Il browser invia una richiesta HTTP. Per HTTP / 1.1, appare come segue:

L'intestazione host è standard e richiesta in HTTP / 1.1. Non è stato specificato nelle specifiche HTTP / 1.0, ma alcuni server lo supportano comunque.

Da qui, il server Web ha diverse informazioni che possono essere utilizzate per decidere quale dovrebbe essere la risposta. Si noti che è possibile che un singolo server Web sia associato a più indirizzi IP.

  • L'indirizzo IP richiesto, dal socket TCP (è disponibile anche l'indirizzo IP del client, ma questo è usato raramente, e qualche volta per blocco / filtraggio)
  • La porta richiesta, dal socket TCP
  • Il nome host richiesto, come specificato nell'intestazione host dal browser nella richiesta HTTP
  • Il percorso richiesto
  • Eventuali altre intestazioni (cookie , ecc.)

Come sembra aver notato, l'impostazione di hosting condiviso più comune in questi giorni mette più siti Web su un unico indirizzo IP: combinazione di porte, lasciando solo l'host a distinguere tra i siti Web.

Questo è noto come un host virtuale basato sul nome in Apache-land, mentre Nginx li chiama Server Names in Server Blocks e IIS preferisce Virtual Server.

Che cosa riguarda HTTPS?

HTTPS è un po 'diverso. Tutto è identico fino alla creazione della connessione TCP, ma dopo deve essere stabilito un tunnel TLS crittografato. L'obiettivo è di non divulgare alcuna informazione sulla richiesta.

Per verificare che il server Web sia effettivamente proprietario di questo dominio, il server Web deve inviare un certificato firmato da una terza parte attendibile. Il browser confronterà quindi questo certificato con il dominio richiesto.

Questo presenta un problema. Come fa il server Web a sapere quale certificato di host / sito web inviare se ha bisogno di farlo prima che la richiesta HTTP sia ricevuta?

Tradizionalmente, questo è stato risolto avendo un indirizzo IP dedicato (o porta) per ogni sito web che richiede HTTPS. Ovviamente, questo è diventato problematico poiché stiamo esaurendo gli indirizzi IPv4.

Inserire SNI (indicazione del nome del server). Il browser ora trasmette il nome host durante le negoziazioni TLS, quindi il server Web ha queste informazioni abbastanza presto da inviare il certificato corretto. Sul lato server web, la configurazione è molto simile a come sono configurati gli host virtuali HTTP.

Lo svantaggio è che il nome host è ora passato come testo normale prima della crittografia, ed è essenzialmente trapelato informazioni. Questo è generalmente considerato un compromesso accettabile anche se, in ogni caso, il nome host è normalmente esposto in una query DNS.

Che cosa succede se si richiede un sito Web solo per indirizzo IP?

Cosa fa il server Web quando non lo sa quale host specifico richiesto dipende dall'implementazione e configurazione del server web. In genere, è specificato un sito Web "predefinito", "catch-all" o "fall back" che fornirà risposte a tutte le richieste che non specificano esplicitamente un host.

Questo sito Web predefinito può essere il proprio sito Web indipendente ( spesso mostrando un messaggio di errore), oppure potrebbe essere uno qualsiasi degli altri siti Web sul server Web in base alle preferenze dell'amministratore del server Web.


Hai qualcosa da aggiungere alla spiegazione? Audio disattivato nei commenti. Vuoi leggere più risposte dagli altri utenti di Stack Exchange esperti di tecnologia? Controlla il thread completo di discussione qui.


Che cosa è necessario sapere Aggiornamento di un PC Windows Vista a Windows 10

Che cosa è necessario sapere Aggiornamento di un PC Windows Vista a Windows 10

Microsoft non offrirà un aggiornamento gratuito di Windows 10 a tutti i vecchi PC Windows Vista che si potrebbero avere in giro. Solo Windows 7 e 8.1 PC entrano a far parte della nuova era di Windows 10 gratuitamente. Ma Windows 10 funzionerà sicuramente su quei PC con Windows Vista. Dopo tutto, Windows 7, 8.

(how-to)

Attenzione: non scaricare mai

Attenzione: non scaricare mai "codec" o "giocatori" per guardare i video online

Se un sito ti chiede di scaricare un "codec", "player" o "aggiornamento del browser" per giocare un video, corri dall'altra parte. In realtà non è necessario scaricare questo tipo di cose: il sito Web sta tentando di infettare il computer con malware. Se stai navigando sui social media o fai clic su una sorta di sito di streaming video di bassa qualità, dovresti non scaricare mai alcun tipo di "codec pack", "player" o "aggiornamento".

(how-to)