Выбор ответа Senior HTTP/2 и HTTP/3 обновлено
Как браузер узнаёт про HTTP/3
Вопрос
Как браузер обычно узнаёт, что сервер поддерживает HTTP/3?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Из заголовка Alt-Svc в ответе по HTTP/2 или 1.1 (или из DNS-записи HTTPS). Сервер объявляет Alt-Svc: h3=":443", и следующие запросы браузер шлёт через QUIC.
Варианты ответа
- Из заголовка Alt-Svc в ответе по HTTP/2 или 1.1 (или из DNS-записи HTTPS)правильный ответ
- Из расширения ALPN в TCP-рукопожатии: сервер сразу предлагает там h3 вместо h2
- Браузер пробует QUIC на всех сайтах первым же запросом и откатывается на TCP при ошибке
- Из заголовка
Upgrade: h3, который сервер присылает в ответ на первый запрос
Разбор
Сервер объявляет Alt-Svc: h3=":443", и следующие запросы браузер шлёт через QUIC. DNS-запись HTTPS позволяет узнать это ещё до первого соединения. ALPN работает внутри TLS-рукопожатия и выбирает h2 или http/1.1 на уже установленном TCP, переключить на UDP он не может. Слепая попытка QUIC на каждом сайте не используется. Upgrade нужен для WebSocket и h2c, не для h3.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.