Вопрос проверяет понимание механизма автоматического перехода на HTTPS при вводе доменного имени без протокола, включая роль HSTS и браузера.
Когда пользователь вводит в адресную строку просто домен, например example.com, браузер по умолчанию предполагает протокол HTTP. Он отправляет запрос на порт 80. Если сервер настроен на HTTPS, он обычно отвечает редиректом (например, код 301 или 302) на адрес с https://. Браузер автоматически следует этому редиректу, и пользователь видит HTTPS в адресной строке.
Однако есть более эффективный механизм — HSTS (HTTP Strict Transport Security). Это заголовок ответа сервера, который сообщает браузеру: «В течение указанного времени всегда используй HTTPS для этого домена». Браузер сохраняет эту информацию и при последующих визитах сразу обращается по HTTPS, даже если пользователь ввел домен без протокола. Это защищает от атак типа man-in-the-middle, когда злоумышленник может перехватить HTTP-запрос до редиректа.
Сервер может отправлять такой заголовок:
Strict-Transport-Security: max-age=31536000; includeSubDomainsЭтот заголовок говорит браузеру: «Запоминай на год, что этот домен и его поддомены должны использовать только HTTPS».
Предположим, пользователь вводит example.com. Если HSTS уже сохранен, браузер сразу отправляет запрос на https://example.com. Если нет, он сначала идет на http://example.com, получает редирект на HTTPS, а затем, если сервер отправил HSTS, запоминает это.
Автоматический переход на HTTPS при вводе домена без протокола обеспечивается комбинацией серверного редиректа и механизма HSTS. HSTS особенно важен для безопасности, так как исключает первичный HTTP-запрос, который может быть перехвачен. Для сайтов, работающих только по HTTPS, рекомендуется включать HSTS, чтобы повысить защиту пользователей.