У меня недостаточно информации о разнице между HTTP и HTTPS, но может ли запрос HTTPS отправить мой IP-адрес хосту и сохранить его?
Какие виды данных шифруются?
Вы всегда должны будете отправить свой IP-адрес для ЛЮБОГО трафика через Интернет (IP = интернет-протокол). Возможно подделать IP-адреса для однонаправленного трафика UDP, но большинство интернет-провайдеров должны фильтровать это. Невозможно установить соединение TCP без отправки правильного адреса источника, а SSL основан на TCP.
Как следует из названия, SSL (Secure Socket Layer) работает на уровне "сокетов". Это означает, что все, что передается в простом виде (кроме некоторого начального рукопожатия безопасности), это IP-адреса и порты источника и назначения и некоторые данные сеанса TCP.
Благодаря тому, что вы устанавливаете соединение с удаленным хостом, удаленный хост знает ваш IP. Это необходимо для того, чтобы отправлять вам ответы с сервера.
Поскольку большую часть времени вы обращаетесь к хосту через URL, необходимо выполнить поиск DNS. DNS-сервер также должен знать ваш IP-адрес и может записывать или подсчитывать точное доменное имя, которое вы вызывали при поиске.
Если вы находитесь за NAT, сервер знает только ваш внешний IP, если ваш трафик не проходит через веб-прокси, который добавляет ваш внутренний IP в виде строки в заголовке HTTP. Например, хорошо известный кеширующий веб-прокси-сервер squid
делает это, если только вы не настроите его.
И, конечно, если вы (или другая программа, использующая HTTPS) умышленно отправляете свой IP-адрес как часть HTTP-запроса, то есть отправляете его в форму, и она находится в данных POST, тогда, конечно, это может быть другой способ, которым сервер может знать.
В HTTPS все данные зашифрованы, заголовок и тело, и ваши запросы к серверу также полностью зашифрованы, что будет включать в себя точный URL. Статья в Википедии о HTTPS подробно описывает многие атаки типа "побочный канал", которые могут раскрыть интересную информацию для решительного перехватывающего злоумышленника.