I don't get it... How does this protect anything? If we want our packets to reach a web server, we need to write the server's IP address on them. If a snooper has the IP, can't they just lookup the domain name from a DNS server? Or is that not a service DNS provides?
If the IP address is encrypted, how will the routers know where to send the packets? Only solution I can think of would be onion routing... Am I wrong??
Is it because of the "Host" HTTP header? I always thought it was optional, since the IP address and port were handled by the network and transport layers respectively. Turns out it's required to resolve between different virtual hosts in the same server. Today I Remembered (TIR?) that virtual hosts are a thing...
Is there anything else that might indicate the domain name in the handshake connection?