Это не стандартизированное поведение, так как ни один документ RFC не говорит о том, как должен вести себя клиент, если пользователь не указывает протокол. Но, вероятно, в большинстве конфигураций по умолчанию клиенты пытаются сначала подключиться с использованием незащищенного соединения (например, http://
). Они просто предполагают, что вы хотели ввести http://
перед вашим URL.
В этом случае не клиент выясняет, что этот сайт доступен через защищенное соединение (например, https://
), а веб-сервер, который перенаправляет запрос вашего клиента. Таким образом, при вводе google.com
в адресную строку вашего браузера ваш браузер сначала подключается к http://google.com
, а веб-сервер на google.com
перенаправляет ваш запрос на https://google.com
. Вот почему вы все равно попадаете на https://
версию Google.
Вы даже можете попробовать это, вручную введя http://google.com
в адресную строку. Google по-прежнему перенаправляет вас на https://google.com
. Но это не стандартное поведение большинства программ веб-серверов, Google пришлось вручную указать "перенаправление HTTPS" в конфигурации своих веб-серверов.
Тем не менее, возможно, что некоторые клиенты сначала пробуют соединение https://
и подключаются только через http://
если это не удается. Это более безопасное поведение, и, хотя в большинстве случаев это, вероятно, не по умолчанию, есть, например, HSTS, который позволяет сайтам помечать себя как https://
, а некоторые сайты могут даже предварительно помечаться в браузере. (Как отметил @kicken, спасибо!) Затем существуют плагины для браузера (например, "HTTPS Everywhere" для Firefox), которые реализуют эту процедуру. Эти плагины поставляются со списками сайтов, которые обеспечивают https://
-защищенные соединения, и когда пользователь вводит URL-адрес такого сайта с http://
или без протокола на передней панели, пользователь перенаправляется на https://
версия браузером, а не веб-сервером, даже если администратор сайта не настроил перенаправление HTTPS для своего сайта.