Ответ 1
Я отправил письмо через Gmail с этим контентом:
<a href="//ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js">link</a>
и он был получен без изменений. Когда я щелкнул правой кнопкой мыши по ссылке, чтобы скопировать адрес ссылки, Chrome добавил https:
к ней (поскольку Gmail использует безопасный HTTP), но когда я проверил элемент HTML, он показал тег <a>
, как я его написал.
Неправильно для почтовых серверов изменять содержимое писем.
Опущение протокола предназначена для того, чтобы веб-браузер мог выбирать между безопасными и небезопасными версиями одного и того же контента. Если вы загружаете страницу через https и содержит изображение с src, начинающимся с http, браузер предупреждает пользователя о том, что опасно загружать небезопасный контент - запутанное и тревожное сообщение. Если вы загружаете страницу через http, и она содержит изображение с src, начинающимся с https, это предотвращает кеширование среди других неэффективных возможностей.
Компромисс заключается в том, чтобы позволить браузеру загружать контент с безопасностью, соответствующей загружаемой странице - эффективность для небезопасной страницы; полная гарантия безопасности для безопасной страницы.
Но почтовый клиент всегда предупреждает о встроенном контенте (изображениях, сценариях,...), то есть опускать протокол не имеет никакой пользы.
Кроме того, не-браузерный почтовый клиент не имеет протокола для начала. Он загружает информацию, а затем загружает ее с диска. Если вы действительно хотите, чтобы клиент электронной почты выбирал загружать внедренный контент с уровнем безопасности, с которым он загружал электронную почту, вы позволили бы клиенту искать информацию на том же компьютере. (Они действительно сделают это, предположив, что //
означает file:///
.)
Как безопасно размещать URI //
в электронном письме? Я бы сказал, что это не имеет смысла; поэтому для клиентов, не поддерживающих браузер, не стал стандартным способом, что означает, что вы смотрите на поведение undefined.
Лучше выбрать протокол, основанный на чувствительности информации, идентифицируемой URI. Является ли это диаграммой проприетарных финансовых данных? Используйте https. Это лолкат? Используйте http.