Что присходит при загрузке вебстранички - 3?

Что присходит при загрузке вебстранички - 3?

Собственно примерно так все и устроено. Есть например версия http протокола 2, в которой рвать или не рвать соединение не регулируется заголовком, а сам протокол - бинарный.

Почему вся эта фигня так важна?
Когда вы запускаете ab - и видите что сервер отвечает 30000 запросов в сек - это означает что он 30000 раз закрывает сокет, открывает сокет, обменивается рукопожатиями и так далее. А когда вы добавляете параметр -k (keep alive) - соединение не пересоздается.

Когда вы шлете запрос GET за картинкой - в ответе прилетит 300 килобайт картинки, а когда Вы шлете запрос HEAD за картинкой - в ответе прилетит
Content-Length: 300 килобайт
А сами 300 килобайт передаваться не будут.

Если Вы пишите сервер с нуля, то лучше сразу поддержать http/2 протокол, чтобы не тратить ресурсы на постоянные переоткрытия соединений и так далее.

Понимание принципов - позволяет писать гораздо более оптимальный код.
Вот теперь можно прочесть описание HTTP протокола в википедии и понять мочему все именно так а не иначе с оглядкой на сокеты

Ссылки
https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D0%BA%D0%B5%D1%82_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D1%8B%D0%B9_%D0%B8%D
0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81)

https://ru.wikipedia.org/wiki/HTTP

Рекомендую также почитать о протоколе телеграм
https://core.telegram.org/mtproto

И протоколе websocket
https://ru.wikipedia.org/wiki/WebSocket