Выбор ответа Senior HTTP/2 и HTTP/3 обновлено

Как браузер узнаёт про HTTP/3

Вопрос

Как браузер обычно узнаёт, что сервер поддерживает HTTP/3?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Из заголовка Alt-Svc в ответе по HTTP/2 или 1.1 (или из DNS-записи HTTPS). Сервер объявляет Alt-Svc: h3=":443", и следующие запросы браузер шлёт через QUIC.

Варианты ответа

  1. Из заголовка Alt-Svc в ответе по HTTP/2 или 1.1 (или из DNS-записи HTTPS)правильный ответ
  2. Из расширения ALPN в TCP-рукопожатии: сервер сразу предлагает там h3 вместо h2
  3. Браузер пробует QUIC на всех сайтах первым же запросом и откатывается на TCP при ошибке
  4. Из заголовка Upgrade: h3, который сервер присылает в ответ на первый запрос

Разбор

Сервер объявляет Alt-Svc: h3=":443", и следующие запросы браузер шлёт через QUIC. DNS-запись HTTPS позволяет узнать это ещё до первого соединения. ALPN работает внутри TLS-рукопожатия и выбирает h2 или http/1.1 на уже установленном TCP, переключить на UDP он не может. Слепая попытка QUIC на каждом сайте не используется. Upgrade нужен для WebSocket и h2c, не для h3.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.