Що завантажується під час веб-пошуку?


25

Я використовую модем, і він показує швидкість завантаження n кбіт / с і швидкість завантаження m kbps. Коли я перевіряю його журнали, він показує кількість завантажених та завантажених даних. Мені цікаво, чому це показує, що я завантажив 3 МБ даних за годину, що здається надмірним, коли я ніколи нічого не завантажую або використовую торренти.

Отже, що я завантажую, коли я переглядаю Інтернет?

Відповіді:


46

Детальніше про те, як працюють TCP-з'єднання та підтвердження, дивіться у відповіді Diogo

Коли ви відвідуєте сайт, відбувається щось подібне:

  1. З'єднується з вашим DNS-сервером (якщо цього ще не зроблено), з якого ваш комп'ютер уже знає IP-адресу (або через якийсь автоматичний механізм, який вимагає цю інформацію у вашого провайдера), надсилаючи пакети для того, щоб підключитися та підтвердити з'єднання. було зроблено. Після встановлення з'єднання ваш сайт запитує IP-адресу веб-сайту, який ви відвідуєте, таким чином, щоб він знав, до якого комп'ютера звернутися, щоб отримати сайт. Це означає, що він надсилає пакет, що містить ім'я домену, щоб отримати відповідну відповідь. Пізніше він також надсилає пакет, щоб закрити з'єднання.

  2. З'єднується з веб-сервером, на якому розміщується веб-сайт, який ви хочете відвідати, він знову надсилає пакет для підключення та підтвердження з'єднання. Після цього він робить запит на сторінку, яку ви хочете відвідати, знову надсилаючи пакет. Потім він відповідає, і вам подається HTML веб-сторінки, яка вказує на структуру сторінки (а не на макет).

  3. Оскільки у вас є лише структура, все одно потрібно отримати решту. Отже, для отримання сценаріїв, стилів та засобів масової інформації, таких як зображення тощо, робиться додатковий запит (питання SU - це 40 запитів). Оскільки деякі з них можуть не знаходитися на тому ж веб-сервері, який ви відвідуєте, може відбутися додаткове вирішення DNS, що поверне вас до кроку 1.

  4. Крім того, зауважте, що всі отримані вами пакети підтверджуються, додаючи ще одне джерело даних, що завантажуються, для того, щоб заощаджувати пакети, як правило, відразу декілька пакетів. Таким чином, коли ви отримаєте щось, ви надішлете його на сервер, який ви отримали, щоб він знав, що те, що він надсилає, десь не загубилося. Таким чином, серверу не потрібно намагатися надсилати його ще раз.

Суть полягає в тому, що ви не можете щось завантажити без попереднього підключення та завантаження деяких запитів на сервери, з яких завантажуєте. І ось це доповнює невелике завантаження ...

І це не так, що ти лише клацаєш, ти робиш більше того, давайте візьмемо ваше запитання як приклад: Ви набрали близько 500 символів, символ вважається 1 байтом (якщо символ ASCII, то всі в цьому випадку) і може бути від 1 до 4 байт (якщо символ Unicode). Отже, ваше запитання фактично займає 0,5 Кб або 0,00005 МБ! Але це не тільки питання, яке нам надсилають, воно також оточене запитом POST або AJAX, який просить сервер зберігати ваше запитання та самі заголовки пакетів.

Якщо додати все, стає розумним досягти кількох мегабайт за кілька годин.


1
Спробував окреслити відповідь Вільяма, посилаючись на Діого в дорозі, також підкресліть їх! :)
Тамара Війсман

2
І я намагався бути швидким, коли мені слід було написати детальну відповідь, як це! Я завжди, здається, пропускаю ці відповіді, що небо ракета !!!
Вільям Гілсум

27

Ваше завантаження базується на реквізитах, які ви робите, коли ви вводите адресу (наприклад, www.google.com) на веб-сервері, щоб подати запит на з'єднання HTTP до цього сайту. Після цих запитів наступним пунктом завантаження є ACK s (Підтвердження від TCP- з'єднань HTTP-протоколу ) під час його рукостискання :

У мережі даних підтвердження (або підтвердження) - це сигнал, що передається між комунікаційними процесами або комп'ютерами для означення підтвердження або отримання відповіді, як частини протоколу зв'язку. Наприклад, пакети ACK використовуються в протоколі управління передачею для підтвердження прийому SYN-пакетів під час встановлення з'єднання, пакетів даних під час використання з'єднання та FIN-пакетів при припиненні з'єднання.

Для прикладу подивіться на схему TCP (ви використовуєте TCP для серфінгу в Інтернеті):

діаграма


15

Коли ви в Інтернеті, просто, все, що надходить з віддаленої цілі, - це завантаження, і все, що ви надсилаєте, - це завантаження.

Таким чином, навіть просто запит на веб-сторінку буде складатися з того, що ваша машина (швидше за все) зробить запит DNS, підключиться до веб-сервера, надішле запит на сторінку, а потім відправить запит для кожного елемента / зображення / css / javascript на цій сторінці .

3 Мб для години використання насправді не так вже й багато!


коли я запитую сторінку, то все, що пов’язане з цією сторінкою, надходить автоматично або для кожного елемента надходить окремий запит, який ви згадали?
Деб

1
@Debabratta для кожного ресурсу надсилається окремий запит . Один для сторінки (із вмістом - текст, розмітка - макети тощо), по одному для різних зображень, файлів javascript, файлів css, які згадуються на сторінці. (Іноді браузер використовує кеш - копію зображення, яке ви завантажили останній раз, коли ви відвідували сторінку. Але це також включає запит, щоб побачити, чи змінилося зображення). Запити від спалаху, сріблястого світла чи інших подібних плагінів також додаються.
Нівас

2

Більше, ніж звичайні пакети TCP та HTTP, ви також повинні дізнатися трохи про деякі спеціальні відомості, які захоплені трекерами. Отримуйте інформацію на спеціалізованому веб-сайті Ghostery .

Вони лише збільшують необхідні дані !


0

Простіша розбивка:

  • TCP-пакети, щоб відкрити з'єднання з сервером
  • HTTP-пакети запитів для кожного компонента веб-сторінки
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.