8.3. Загрузка URI и привязка портов
Когда бы агент пользователя не приготовил "загрузку" (также известна как "разыменование"), любое "http" URI [RFC-3986] (включая случай перенаправления HTTP [RFC-2616]), агент пользователя должен сначала определить, является ли доменное имя из URI именем известного HSTS-компьютера, используя следующие шаги:
Извлечь из URI субстроку, описывающую компьютерный компонент URI.
Если субстрока является нулевой, соответствие с известным HSTS-компьютером отсутствует.
Иначе, если субстрока не является нулевой и синтаксически соответствует символьному IP или IPv4-адресу (см. раздел 3.2.2 [RFC-3986]), тогда соответствие какому-либо известному HSTS-компьютер отсутствует.
В противном случае, субстрока является доменным именем, которое должно соответствовать известному агенту пользователя HSTS-компьютера (см. раздел 8.2 "Known HSTS-компьютер Domain Name Matching").
Если, при выполнении сверки доменного имени оно соответствует какому-то супердомену со вставленной директивой includeSubDomains или, если супердомен соответствует вставленной директиве includeSubDomains и выявлено полное соответствие (с или без встроенной директивой includeSubDomains), тогда перед тем как продолжит загрузку:
- Агент пользователя должен заменить URI-схему "http" [RFC-2818],
- и если URI содержит компонент порта равный "80", тогда агент пользователя должен сделать компонент порта равным "443",
- или если URI содержит компонент порта не равный "80", содержимое компонента порта должно быть сохранено;
- в противном случае, если URI не содержит компонента порта, агент пользователя не должен его добавлять.
Замечание: Эти шаги гарантируют, что политика HSTS реализуется для HTTP через какой-то TCP-порт HSTS-компьютера.
Замечание: В случае, когда имеется код порта, и, вероятно, работает HTTP-сервер в небезопасном режиме, HTTPS-запрос не будет реализован (смотри пункт 6 в Приложение A ("Design Decision Notes")).