Подробнее о том, как работают TCP-соединения и подтверждения, см . Ответ Диого.
Когда вы посещаете сайт, происходит нечто подобное:
Соединение установлено с вашим DNS-сервером (если это еще не сделано), для которого ваш компьютер уже знает IP-адрес (или через некоторый автоматический механизм, который запрашивает эту информацию у вашего интернет-провайдера), отправляя пакеты, чтобы установить соединение и подтвердить соединение было изготовлено. После установления соединения ваш сайт запрашивает IP-адрес сайта, который вы посещаете, чтобы он знал, с какого компьютера связаться, чтобы получить сайт. Это означает, что он отправляет пакет, содержащий доменное имя, чтобы получить этот ответ. Позже он также отправляет пакет, чтобы закрыть соединение.
Установлено соединение с веб-сервером, на котором размещен сайт, который вы хотите посетить, при этом снова отправляется пакет для подключения и подтверждения соединения. После этого он отправляет запрос на страницу, которую вы хотите посетить, снова отправляя пакет. Затем он отвечает, и вы получаете HTML-код веб-страницы, который указывает на структуру страницы (а не на макет).
Поскольку у вас есть только структура, вам все равно нужно получить остальные. Таким образом, дополнительные запросы (вопрос SU похож на 40 запросов) делаются для получения сценариев, стилей и мультимедиа, таких как изображения и тому подобное. А поскольку некоторые из них могут находиться не на том же веб-сервере, который вы посещаете, может потребоваться дополнительное разрешение DNS, возвращающее вас к шагу 1.
Кроме того, обратите внимание, что каждый пакет, который вы получаете, подтверждается, добавляя еще один источник данных, который загружается, чтобы сэкономить на пакетах, обычно несколько пакетов подтверждаются одновременно. Таким образом, когда вы получаете что-то, вы отправляете на сервер, который вы получили, чтобы он знал, что то, что он отправил, где-то не потеряно. Таким образом, сервер не должен пытаться отправить его снова.
Суть в том, что вы не можете загрузить что-либо без предварительного подключения и загрузки некоторых запросов на серверы, с которых вы скачиваете. И вот что компенсирует небольшую загрузку ...
И это не так, что вы только нажимаете, вы делаете больше, давайте возьмем ваш вопрос в качестве примера: вы набрали около 500 символов, символ считается как 1 байт (если символ ASCII, все в этом случае) и может быть от 1 до 4 байтов (если символ Unicode). Итак, ваш вопрос на самом деле занимает 0,5 КБ или 0,00005 МБ! Но это не только вопрос, который нам посылают, он также окружен запросом POST или AJAX, который просит сервер сохранить ваш вопрос и сами заголовки пакетов.
Если вы сложите все это, становится разумным достичь нескольких мегабайт за несколько часов или около того.