edubun
Русский

Что происходит, когда ты открываешь веб-страницу

При круговой задержке 50 мс странице HTTPS нужно не меньше 4 кругов, 200 мс, до первого байта HTML. HTTP/3 убирает один.

Семь сорок утра. Ученик в переполненной электричке нажимает по мобильному интернету на ссылку со школьным меню обедов, и через мгновение появляется сегодняшнее меню. (Сцена придумана.) За это мгновение телефон сделал всё из пяти прошлых уроков: поиск DNS, соединение TCP, зашифрованный сеанс и запрос HTTP, на который пришёл ответ с кодом состояния. Пройди этот путь вместе с телефоном и посчитай ожидания.

Сначала телефон читает ссылку

Допустим, ссылка https://www.example.com/index.html. MDN разбирает URL на части. https является схемой: использовать HTTP через зашифрованное соединение TLS на порте 443, если не указан другой порт. www.example.com является хостом, именем, которое DNS превратит в адрес. /index.html является путём, ресурсом, который запрашивают на этом сервере. Ещё URL может содержать запрос после вопросительного знака и фрагмент после решётки. Фрагмент указывает на место внутри страницы и никогда не отправляется на сервер.

Четыре круга до первого байта

Время, за которое сообщение доходит до сервера и возвращается ответ, называется круговой задержкой (RTT). Посчитай круги, и станет видно, откуда берётся ожидание. Первый: если имени нет в кэше, поиск DNS стоит примерно одного круга до резолвера. Второй: рукопожатие TCP, SYN туда и SYN-ACK обратно. Третий: TLS 1.3 (RFC 8446) договаривается о ключах за один круг, и последнее сообщение рукопожатия клиента может уйти вместе с запросом HTTP. Четвёртый: запрос уходит, ответ возвращается. При RTT 50 мс до первого байта меню проходит 200 мс, даже если сервер отвечает мгновенно.

Загрузка

Перетащи, чтобы повернуть. Колёсико или щипок для масштаба.

Нажимай «Следующий шаг», чтобы добавлять по сообщению, или «Показать всё». Переключайся между HTTPS, обычным HTTP и HTTP/3 и двигай ползунок круговой задержки. Счётчик у левого края показывает, сколько кругов прошло. Время раздумий сервера и размер страницы не учитываются.

HTTP/3 (RFC 9114) работает на QUIC (RFC 9000) вместо TCP. QUIC работает поверх UDP и устанавливает соединение и ключи TLS одновременно, поэтому отдельный круг TCP исчезает: DNS, один круг рукопожатия, потом запрос, всего три. Обычный HTTP на порте 80 пропускает TLS и тоже требует трёх, но тогда любой на пути, например тот, кто управляет Wi-Fi в кафе, может прочитать или изменить страницу. Замок в адресной строке означает, что соединение с этим доменом зашифровано. Он не означает, что сам сайт честный.

Меню приходит с числом впереди

Ответ начинается с трёхзначного кода состояния. RFC 9110 группирует коды по первой цифре: 1xx информационные, 2xx успех, 3xx перенаправление, 4xx ошибка клиента и 5xx ошибка сервера. Чаще всего встречаются 200 OK, 301 Moved Permanently (у страницы новый адрес), 404 Not Found и 500 Internal Server Error. Если бы школа перенесла страницу с меню, телефон сначала получил бы 301, а потом спросил снова по новому адресу. 404 означает, что сервер ответил, но по этому пути у него ничего нет, то есть сама сеть работала.

Одна страница, много файлов

HTML редко является всей страницей. Допустим, в нём упомянуты таблица стилей, скрипт и пять картинок. Если бы телефон открывал новое соединение для каждого, каждый файл снова платил бы кругами TCP и TLS. Вместо этого браузер держит соединение открытым и отправляет по нему следующие запросы, а в HTTP/2 и HTTP/3 несколько запросов идут по одному соединению одновременно. У браузеров есть и свой кэш. Когда ответ говорит, что им можно пользоваться какое-то время, при следующем посещении этот файл загружается из хранилища без всякого запроса. Только когда файлы на месте, браузер раскладывает и отрисовывает то, что ты видишь. Поэтому страница с меню, которую ученик открывает каждое утро, появляется быстрее, чем сайт, открытый впервые, даже в той же сети.

RTTКруговая задержка: туда и обратно
200OK
301Moved Permanently
404Not Found
500Internal Server Error
HTTP/3HTTP поверх QUIC, который работает на UDP
  1. RTT равна 50 мс. Сколько пройдёт до первого байта страницы HTTPS (TCP + TLS 1.3), считая поиск DNS?
  2. Та же RTT 50 мс, но по HTTP/3. Сколько времени?
  3. RTT равна 80 мс, а имя уже в кэше. Сколько займёт страница HTTPS по TCP?
  4. Расставь по порядку шаги загрузки страницы HTTPS.
  5. Что означает 404?
    • Not Found
    • OK
    • Moved Permanently
    • Ошибка сервера
  6. Какой класс кодов состояния означает перенаправление?
    • 3xx
    • 2xx
    • 4xx
    • 5xx
  7. Какой порт использует https://, если порт не указан?
  8. Что такое /index.html в https://www.example.com/index.html?
    • Путь
    • Схема
    • Хост
    • Порт
  9. На каком транспорте работает HTTP/3?
    • QUIC поверх UDP
    • TCP
    • DNS
    • ICMP
  10. Что говорит замок в адресной строке?
    • Соединение с этим доменом зашифровано
    • Сайт безопасный и честный
    • На сайте нет рекламы
    • Страница загрузилась по HTTP/3
Частые ошибки
  • «Замок означает, что сайт безопасен.» Замок говорит лишь о том, что соединение с этим доменом зашифровано TLS. У мошеннического сайта он тоже может быть, поэтому проверяй, что домен именно тот, который ты имел в виду.
  • «Режим инкогнито скрывает, что я посещаю, от провайдера и школы.» Режим инкогнито не даёт браузеру сохранять на устройстве историю и данные сайтов после окончания сеанса. В Справке Chrome от Google сказано, что посещаемые сайты, а также организации, управляющие твоей сетью, например школа, работодатель или интернет-провайдер, всё равно могут видеть твои действия. Твои пакеты в любом случае проходят через те же маршрутизаторы.
  • «404 означает, что интернет не работает.» 404 является ответом сервера: до него дошли, но по этому пути у него ничего нет. Когда сеть действительно не работает, никакой код состояния вообще не приходит.
  • «Часть ссылки после # отправляется на сервер.» Фрагмент остаётся в браузере и лишь выбирает место внутри страницы. На сервер он никогда не отправляется.
Заметка для учителяЭтот урок собирает весь курс воедино, поэтому прежде чем показать схему, попросите учеников своими словами объяснить порядок: почему имя должно стать адресом до любого соединения и почему шифрование нужно настроить до того, как уйдёт запрос. Лучше всего запоминается подсчёт кругов. Разберите 50 мс вручную, а потом пусть ученики предскажут итог, прежде чем двигать ползунок. Ошибки про замок и инкогнито не связаны со скоростью, но всё равно уделите им несколько минут, потому что ученики действуют по обоим убеждениям.
Главное
  • У URL есть схема (https), хост (имя DNS) и путь.
  • HTTPS поверх TCP: DNS + TCP + TLS 1.3 + запрос = 4 круга до первого байта.
  • HTTP/3 поверх QUIC объединяет рукопожатия: 3 круга.
  • Коды состояния: 2xx успех, 3xx перенаправление, 4xx ошибка клиента, 5xx ошибка сервера.
Источники курса (28)
  • (checked 2026-10-17; reordered 2026-10-19: standards first, then official documentation, then operators and papers, history sources last)
  • IETF RFCs (rfc-editor.org): RFC 768 UDP (1980, 8-byte header)
  • RFC 791 IPv4 (1981, 32-bit addresses, "does not provide a reliable communication facility", TTL field "measured in units of seconds" but every module must decrease it by at least one, so it is only an upper bound)
  • RFC 792 ICMP (Time Exceeded)
  • RFC 801 NCP/TCP transition plan (1 January 1983)
  • RFC 894 Ethernet (1500-byte payload)
  • RFC 1034 and RFC 1035 DNS (1987, HOSTS.TXT kept by SRI-NIC, labels up to 63 octets and names up to 255, TTL in seconds)
  • RFC 1122 (127.0.0.0/8 loopback)
  • RFC 1918 private addresses (10/8, 172.16/12, 192.168/16)
  • RFC 2131 DHCP, RFC 3022 NAT, RFC 3596 AAAA records, RFC 3849 and RFC 5737 documentation addresses, RFC 4271 BGP-4, RFC 4291 IPv6 text form, RFC 6298 TCP retransmission timer (initial RTO 1 second)
  • RFC 6335 port ranges (0-1023, 1024-49151, 49152-65535)
  • RFC 7766 DNS over TCP, RFC 8200 IPv6 (128-bit addresses, Hop Limit)
  • RFC 8446 TLS 1.3 (one round-trip handshake)
  • RFC 9000 QUIC and RFC 9114 HTTP/3, RFC 9110 HTTP semantics (status code classes)
  • RFC 9293 TCP (three-way handshake, sequence numbers)
  • IANA: ip-parameters registry (recommended default TTL 64)
  • IPv4 free pool depleted 3 February 2011 (NRO and ARIN announcements)
  • Official documentation: MDN Web Docs "How does the Internet work?" (45 cables for 10 computers, switches, routers, MAC and IP addresses, internet and web)
  • "What is a URL?", "HTTP response status codes" (developer.mozilla.org)
  • Cloudflare Learning Center: "What is DNS?" (four kinds of DNS server, 8 steps of an uncached lookup, browser and OS caches, TTL)
  • "What is HTTP/3?" (cloudflare.com/learning)
  • Google Chrome Help, "Browse in Incognito mode" (support.google.com/chrome/answer/95464, checked 2026-10-19: Incognito limits what is saved to the device; websites and organisations that manage your network, like your school, employer or internet service provider, may be able to observe your activity)
  • Operators and papers: root-servers.org (13 root name servers run by 12 organisations, 2047 instances on 2026-10-17)
  • Jacobson and Karels 1988, Congestion Avoidance and Control (loss mostly congestion)
  • History blocks only: UCLA Samueli School of Engineering, Internet50 (first ARPANET message "LO", UCLA to SRI, 29 October 1969, 22:30)
  • historyofinformation.com and Wikipedia ARPANET (Kline)
  • Spiceworks/SRI history (HOSTS.TXT kept by SRI-NIC)
  • Numbers (2^32, 2^96, 45 and 6 cables, packet counts, round-trip times)

Проверено: 2026-10-17