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

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

Протокол.
Вот мы и подошли собственно к http протоколу. Помните ключевые особенности сокетов? Пока получатель не прочтет отправитель не пошлет следующее. Для этого получатель должен знать сколько прочесть. Итак, простейшая команда в http протоколе выглядит так GET /\r\n\r\n

Для того чтобы это прочувствовать нам понадобится программа telnet. Эта программа уммет устанавливать соединение по tcp/ip протоколу. Просто напишите:

telnet google.com 80
Телнет обратится к днс серверам, узнает ip адрес домена и установит с ним соединение на 80 порту (с сокетом на сервере)
Потом введите
GET /

и два раза нажмите ентер. Сервер ответит что -то вроде:
Connected to google.com.
Escape character is '^]'.
GET /
HTTP/1.0 302 Found
...

Это означает что он понял наш запрос и прислал в ответ какой то текст. Http это текстовый протокол. Но как в текстовом протоколе понять размер сообщения, которое необходимо считать из сокета? Для этого в протоколе придумали 2 /r/n - переноса строк. Сервер читает из сокета текст, байт за байтом, так как не знает сколько прочитать, и когда видит 2 переноса строки подряд - начинает писать что то в сокет, а как закончит - отбивается двумя ентерами, понятненько? Соответственно если роутер порвал наше сообщение пополам - сервер - будет ждать продолжения, и только потом сможет ответить, потому что так устроен сокет. А как только ответит - закроет соединение с сокетом и вернет это ресурс ОС.

Но не всегда. Допустим мы хотим продолжить общение с сервером. Для этого нам надо как то сказать серверу - не закрывай соединение. Для этого используются заголовки. Давайте скажем сереверу не рвать соединение:
GET / HTTP/1.1
Keep-Alive: true

HTTP/1.1 302 Found
Content-Length: 266

<HTMLбла>

Здесь мы во первых указали версию протокола. Протокол это договор, помните? Мы не указали версию в первом варианте и сервер может предположить что это первая версия протокола, но не обязан. Здесь интересен ответ сервера. Мы видим каке то количество заголовков, среди которых наиболее важен - длина контента, 266 байт. Что это значит, после заголовков идет отбивка из двух разрывов строки. А потом - клиент должен прочесть из сокета 266 байт, и после этого телнет остался висеть и ждать дальнейших комманд. Потому что - мы указали - не рви соединение, и версия протокола 1.