Детальніше про те, як працюють TCP-з'єднання та підтвердження, дивіться у відповіді Diogo
Коли ви відвідуєте сайт, відбувається щось подібне:
З'єднується з вашим DNS-сервером (якщо цього ще не зроблено), з якого ваш комп'ютер уже знає IP-адресу (або через якийсь автоматичний механізм, який вимагає цю інформацію у вашого провайдера), надсилаючи пакети для того, щоб підключитися та підтвердити з'єднання. було зроблено. Після встановлення з'єднання ваш сайт запитує IP-адресу веб-сайту, який ви відвідуєте, таким чином, щоб він знав, до якого комп'ютера звернутися, щоб отримати сайт. Це означає, що він надсилає пакет, що містить ім'я домену, щоб отримати відповідну відповідь. Пізніше він також надсилає пакет, щоб закрити з'єднання.
З'єднується з веб-сервером, на якому розміщується веб-сайт, який ви хочете відвідати, він знову надсилає пакет для підключення та підтвердження з'єднання. Після цього він робить запит на сторінку, яку ви хочете відвідати, знову надсилаючи пакет. Потім він відповідає, і вам подається HTML веб-сторінки, яка вказує на структуру сторінки (а не на макет).
Оскільки у вас є лише структура, все одно потрібно отримати решту. Отже, для отримання сценаріїв, стилів та засобів масової інформації, таких як зображення тощо, робиться додатковий запит (питання SU - це 40 запитів). Оскільки деякі з них можуть не знаходитися на тому ж веб-сервері, який ви відвідуєте, може відбутися додаткове вирішення DNS, що поверне вас до кроку 1.
Крім того, зауважте, що всі отримані вами пакети підтверджуються, додаючи ще одне джерело даних, що завантажуються, для того, щоб заощаджувати пакети, як правило, відразу декілька пакетів. Таким чином, коли ви отримаєте щось, ви надішлете його на сервер, який ви отримали, щоб він знав, що те, що він надсилає, десь не загубилося. Таким чином, серверу не потрібно намагатися надсилати його ще раз.
Суть полягає в тому, що ви не можете щось завантажити без попереднього підключення та завантаження деяких запитів на сервери, з яких завантажуєте. І ось це доповнює невелике завантаження ...
І це не так, що ти лише клацаєш, ти робиш більше того, давайте візьмемо ваше запитання як приклад: Ви набрали близько 500 символів, символ вважається 1 байтом (якщо символ ASCII, то всі в цьому випадку) і може бути від 1 до 4 байт (якщо символ Unicode). Отже, ваше запитання фактично займає 0,5 Кб або 0,00005 МБ! Але це не тільки питання, яке нам надсилають, воно також оточене запитом POST або AJAX, який просить сервер зберігати ваше запитання та самі заголовки пакетів.
Якщо додати все, стає розумним досягти кількох мегабайт за кілька годин.