They would be able to see which IP address you're requesting (this wouldn't necessarily resolve back to the host name you've requested) as well as the server certificate sent by the server during the handshake process. The server certificate is visible in clear during the handshake (it's a step required to established the encrypted channel, that happens just before the encryption is effective).
The server certificate will contain the host name, so it will be visible. In some cases, the certificate may contain multiple Subject Alternative Name (SAN) entries (or wildcard entries (e.g. *.example.com
), which means it will be valid for multiple host names: this can be a bit ambiguous for the eavesdropper, but this gives a fairly strong clue.
(As @Paul said, the DNS could would also give a clue. If you know in advance which sites you want to visit, you might be able to prevent request by pinning the DNS entries in your hosts
file.)
Modern clients that support Server Name Indication will also reveal the host name they're after in the server_name
extension in the TLS ClientHello
message.