Per le connessioni HTTP e probabilmente anche altri protocolli, il tuo browser (o un altro client) inserirà il nome del dominio nell'intestazione Host:
. Ad esempio, una richiesta potrebbe iniziare in questo modo:
GET / HTTP/1.1
Host: website.org
...
Attraverso una connessione non criptata, questo rivelerebbe il dominio di destinazione.
Per le connessioni TLS (più comunemente, HTTPS), la maggior parte dei client specificherà a quale host si desidera connettersi (questa funzione è chiamata SNI e viene utilizzata nel caso in cui lo stesso IP stia servendo più domini) in testo normale. Il server risponderà con un certificato che contiene il nome del dominio (indipendentemente dal fatto che il client stia utilizzando SNI) e questo certificato viene anche trasmesso in formato testo; chiunque orecchi la connessione può leggere il traffico in entrambe le direzioni. Il certificato può specificare più nomi di dominio, che di solito sono sottodomini di una radice o più domini di proprietà di una società.
Inoltre, il reverse DNS è una cosa. Se qualcuno vuole sapere con quale dominio stai comunicando, e quei domini sono registrati in DNS, allora possono fare una ricerca inversa sugli indirizzi IP. Proprio come una normale ricerca DNS associa un nome a un IP, una ricerca inversa mappa un IP con un nome. Ancora una volta, potrebbero esserci più nomi di dominio che si associano tutti a quell'IP, nel qual caso la ricerca inversa restituirà più nomi, ma di solito sono correlati.
Esistono anche strumenti che interagiscono esplicitamente con il DNS (e quindi inviano nomi di dominio sulla rete), come nslookup
e whois
. Tuttavia, quelle non sono cose che di solito utilizzi in un sito che conosci abbastanza bene da avere nel tuo file Hosts.