%20HTTPS%20%D0%B8%D0%BB%D0%B8%20SVCB%3F.png)
Фон
IETF RFC 9460определяет SVCB
запись HTTPS
ресурса DNS (RR), которую можно использовать для обновления подключений до HTTPS, а также указывает поддерживаемые протоколы прикладного уровня (ALPN).
7 сентября 2021 года был выпущен Firefox 92, которыйдобавлена поддержка HTTPS RR:
Firefox автоматически обновит HTTP-запрос до HTTPS, когда будет доступна пригодная для использования HTTPS RR. Он также будет использовать информацию, предоставленную в HTTPS RR, для оптимизации процесса установления HTTPS-соединений — это концептуально похоже на использование заголовка Alt-Svc.Ошибка Firefox 1721132).
Тест
Попробую проверить это с помощью www.google.com
.
Сначала я попытался проверить, есть ли у него HTTPS
RR:
$ dig 8.8.8.8 www.google.com HTTPS
...
;; ANSWER SECTION:
www.google.com. 3358 IN HTTPS 1 . alpn="h2,h3"
Здесь мы видим, что HTTPS
RR существует, и замечаем, что HTTP/3 — это поддерживаемый протокол, обозначенный значением h3
параметра alpn
.
Далее, попытался очистить кэш DNS моей операционной системы. Например, в Windows я запустил ipconfig /flushdns
. Также запустил это прямо перед нажатием Enter в адресной строке, потому что Firefox и Chrome (или какой-то другой процесс), похоже, часто пытаются достичь google.com на одной из систем, которые я тестировал.
Открыл Firefox v120 и попытался посетить: www.google.com
.
Проблема
Firefox v120, хотя в версии v92 и указано, что он будет использовать HTTPS RR для обновления и оптимизации, похоже, не запрашивает этого.
Wireshark показывает, что опрашиваются только A
и RR:AAAA
А Firefox изначально открывает соединение HTTP/2, а затем переключается на HTTP/3 из-за заголовка Alt-Svc
:
На самом деле, это не похоже на то, что любое (Chrome, IceCat, Edge и т. д.) настольное приложение на нескольких веб-сайтах HTTPS
вообще запрашивает RR, потому что когда я фильтрую dns.qry.type == "HTTPS"
или dns.qry.type == 65
на WireShark, я не получаю никаких попаданий. Я получаю попадания только тогда, когда я явно делаю поиск через dig
.
Вопрос
Почему кажется, что HTTPS
RR никогда не запрашивается?
Чтобы попытаться понять проблему, я также задаю следующие наводящие вопросы, которые могут помочь найти первопричину:
- Эта функция отключена по умолчанию?
- Зависит ли это от настройки хоста (кроме настройки
HTTPS
RR)? Ни один из прочитанных мной ресурсов не указал, что нужны дополнительные шаги. - Кто несет ответственность за запрос
HTTPS
RR? Браузер или операционная система? До сих пор я пробовал это с обновленными версиями Guix System 1.4, Windows 10 и Windows 11 и всеми браузерами, которые я упомянул выше. - Зависит ли это от оборудования?
решение1
Я думаю, что это проблема, связанная с Windows, так как nslookup не поддерживает HTTPS-поиск и используется внутри win32. Я думаю, что браузеры зависят от функций win32. Если я протестирую это в Safari Chrome или Firefox на моем iPhone, это работает отлично.