Em virtude de você estabelecer uma conexão com um host remoto, o host remoto conhece seu IP. Tem que, a fim de enviar-lhe respostas do servidor.
Como na maioria das vezes você está acessando um host por meio de um URL, é necessário realizar uma pesquisa de DNS. O servidor DNS também precisa saber seu endereço IP e pode estar gravando ou registrando o nome de domínio exato que você estava pesquisando.
Se você estiver por trás de um NAT, o servidor saberá apenas seu IP externo, a menos que seu tráfego esteja sendo executado por meio de um proxy da Web que adicione seu IP interno como uma linha no cabeçalho HTTP. Um proxy Web de armazenamento em cache bem conhecido squid
faz isso, por exemplo, a menos que você o configure não.
E, claro, se você (ou outro programa usando HTTPS) estiver enviando seu endereço IP intencionalmente como parte de uma solicitação HTTP, ou seja, publicando em um formulário e ele estiver nos dados POST, então é claro que é outra maneira do servidor poderia saber.
No HTTPS, todos os dados são criptografados, cabeçalho e corpo, e suas solicitações para o servidor também são totalmente criptografadas, o que inclui o URL exato. O artigo da Wikipedia sobre HTTPS detalha muitos dos ataques do tipo "canal lateral" que podem revelar informações interessantes para um atacante de interceptação determinado.