Заголовок ответа HTTP Strict-Transport-Security (HSTS)
Наткнулся на такой ранее не виданный для меня термин, как "HTTP Strict-Transport-Security (HSTS)".
В интернете вычитал, что то типа это:
Что собой представляет поддержка HSTS При вводе домена в адресной строке без протокола https либо в формате «site.ru» в браузере сперва выводится незащищенная версия сайта. Даже если на нем установлен SSL-сертификат, перенаправление происходит уже после первого перехода. Этим моментом пользуются мошенники с целью перехвата данных пользователя и перенаправления его на подставную страницу.
HSTS — это алгоритм взаимодействия между браузером и сервером, при котором сайту присваивается статус защищенного на заданный период. Это делается с помощью заголовка HTTP Strict Transport Security. Он выдается при ответе сервера и указывает браузеру на необходимость постоянной автоматической переадресации на версию сайта под протоколом https.
Но, я что то не понимаю, зачем это все такие нужно ? Ну для примера: набираю я в браузере ru.stackoverflow.com - браузер запрашивает IP-адреса у DNS или достает кэшированные.
Далее браузер посылает запрос на выданный диапазон IP адресов. Браузер не знает по какому порту работает удаленный сервер, но в чем проблема сначала попытается послать и получить http-запрос именно по 443 порту, просто по умолчанию для всех адресов использовать 443 порт и TSL, "двойное рукопожатие" и прочие https защитные алгоритмы.
Зачем по факту то нужен этот HSTS ?
И вообще так же не понятен этот момент:
Что собой представляет поддержка HSTS При вводе домена в адресной строке без протокола https либо в формате «site.ru» в браузере сперва выводится незащищенная версия сайта. Даже если на нем установлен SSL-сертификат, перенаправление происходит уже после первого перехода. Этим моментом пользуются мошенники с целью перехвата данных пользователя и перенаправления его на подставную страницу.
Если сайт работает пo https на 443 порту, то с какого перепуга сервер выдаст html страницу не по https, а не отклонит запрос с сообщением Bad_request ?