Я создал себе небольшой хостинг изображений для своих проектов и недавно перевел сайт на https, который отлично работает.
Теперь я сделал файл .htaccess с правилом перезаписи как описано здесь, так что если я просматриваю http://myservice/image.jpg
, он автоматически перенаправляет меня на https://myservice/image.jpg
Мой вопрос теперь в том, как браузеры реагируют, если я вставляю http ссылку изображения. Будет ли правило перезаписи по-прежнему в силе и изображение будет передано по https или оно будет использовать незашифрованный http?
Я протестировал это в Chrome и изображение отобразилось, но я не уверен, было ли оно передано по https или http. Есть ли примеры, которые могут пролить свет на мой вопрос?
Я проанализировал файлы журналов сайта http и https, и кажется, что браузер запрашивает файл http,перенаправляется, и файл https передается. В журналах я вижу запрос файла в обоих файлах, но предполагаю, что передается только файл https
Браузеры отправят отдельный запрос для встроенного изображения, так что да, он будет перенаправлен на https. Даже в этом случае некоторые браузеры могут также предупреждать своих пользователей из-за ссылки http, что «некоторые ресурсы на этой странице небезопасны».
Чтобы избежать обеих этих проблем, вам следует переписать ссылки на своей странице или в приложении, чтобы опустить ведущая схема и имя хоста: например,
<a href="/img.png">
вместо
<a href="http://example.com/img.png">
. Тогда браузер автоматически получит изображение по той же схеме (например, https) и имя хоста, что и страница, так что вы избежите перенаправления на https и / или предупреждения для пользователей.
Кроме того, если вам действительно нужно указать домен, вы все равно можете опустить спецификацию протокола:
<a href="//example.com/img.png">
Протокол, используемый для загрузки страницы, содержащей ссылку, будет добавлен в начало. Поэтому, если указанная выше ссылка находится на странице https://example.com/index.php
, тогда ссылка будет указывать на https://example.com/img.png