Вы набираете адрес и нажимаете Enter. Страница уже здесь. А сервер сайта при этом может стоять в дата-центре на другом конце планеты.
Но как такое возможно?
За этим "мгновенно" прячется целая цепочка событий, которая происходит быстрее, чем вы успеваете об этом подумать. Давайте пройдём этот путь вместе - от нажатия клавиши до готовой страницы на экране.
Шаг 1. Вы отправляете письмо в никуда
Представьте, что интернет - это огромный город. У каждого дома в нём есть адрес, только не "улица Ленина, 5", а числовой: например, 142.250.74.46. Это называется IP-адрес. Проблема в том, что люди не умеют запоминать такие числа. Поэтому придумали удобные имена: google.com, yandex.ru, wikipedia.org.
Когда вы набираете адрес в браузере, вы как будто пишете записку с именем человека, но без его номера телефона. Сама по себе записка никуда не дойдёт. Нужна телефонная книга.
Шаг 2. DNS - это телефонная книга интернета
Ваш браузер первым делом обращается к специальному серверу - DNS (Domain Name System). Это именно та самая телефонная книга. Браузер спрашивает: "Эй, знаешь адрес сайта vk.com?" DNS смотрит в свои записи и отвечает: "Да, вот его числовой адрес, иди туда".
Весь этот разговор занимает несколько миллисекунд - быстрее, чем вы успеваете моргнуть.
Хитрость в том, что DNS-серверов в мире тысячи, и они расставлены по всему земному шару. Ближайший к вам ответит быстрее всего. Ваш интернет-провайдер обычно держит собственный DNS прямо в вашем городе.
Шаг 3. Браузер едет по правильному адресу
Получив числовой адрес, браузер отправляет запрос уже напрямую на сервер сайта. Но сначала они знакомятся - это называется "рукопожатие" (handshake).
Представьте: вы звоните незнакомому человеку. Прежде чем говорить о делах, вы оба убеждаетесь, что разговариваете именно друг с другом, а не с мошенником. Браузер и сервер делают то же самое - обмениваются специальными кодами и договариваются о зашифрованном соединении. Именно поэтому в адресной строке появляется замочек: разговор идёт в шифре, который никто посторонний не прочитает.
Шаг 4. CDN - почта с отделениями по всему миру
Большие сайты хранят свои файлы не в одном месте, а сразу во многих точках по всему миру. Эта сеть называется CDN - Content Delivery Network, или сеть доставки контента.
Метафора простая: представьте, что популярная пекарня открыла филиалы в каждом районе города. Вам не нужно ехать на другой конец за свежим хлебом - берёте в ближайшем. Так и CDN: если вы сидите в Москве, картинки и видео приедут с московского или петербургского сервера, а не тащатся через океан из Калифорнии. Быстрее, дешевле, без задержек.
Шаг 5. Сервер думает и отвечает
Добравшись до нужного сервера, браузер передаёт запрос: "Дай мне главную страницу". Сервер - это мощный компьютер, который работает круглосуточно без выходных и обрабатывает тысячи таких запросов одновременно.
Сервер смотрит: что именно просят, есть ли такая страница, нужно ли собирать её из базы данных или она уже готова. Потом складывает ответ в пакеты и отправляет обратно.
Данные путешествуют не одним куском, а маленькими пакетами - как книга, разобранная по страницам и отправленная разными посылками. На месте они снова собираются в правильном порядке.
Шаг 6. Браузер строит страницу - как прораб на стройке
Вот тут начинается самая трудоёмкая часть, хотя вы её не видите.
Браузер получает HTML-файл - это грубо говоря скелет страницы, список того, что на ней должно быть. Читая его, браузер понимает: нужны ещё стили оформления (CSS), скрипты для кнопок и анимации (JavaScript), картинки, шрифты. Он тут же посылает новые запросы за каждым из этих элементов.
Параллельно браузер начинает строить страницу. Сначала появляется каркас - текст без оформления. Потом приходят стили, и всё становится красивым. Потом скрипты - и кнопки начинают работать. Картинки подгружаются по мере готовности.
Это как ремонт квартиры в ускоренной съёмке: сначала стены, потом обои, потом мебель, потом картины на стенах - всё это за доли секунды.
Шаг 7. Кэш - ваш личный склад готовых ответов
Если вы заходите на сайт повторно, браузер не делает всё заново. Он помнит, что уже скачивал логотип и шрифты в прошлый раз, и берёт их прямо с вашего компьютера. Этот склад называется кэш.
Почему кеш называется кешем? Слово "кэш" пришло из французского языка. "Cacher" по-французски означает "прятать". Кэшем называли тайник - место, где охотники и путешественники прятали запасы еды и снаряжения, чтобы не таскать всё с собой и быстро забрать нужное в следующий раз.
Когда инженеры придумывали название для технологии, которая прячет часто используемые данные в быстром хранилище, метафора подошла идеально.
Поэтому второй и третий визит на один и тот же сайт всегда быстрее первого.
Итого: сколько всего произошло за 0,3 секунды
Ваш браузер запросил адрес у DNS. Установил зашифрованное соединение с сервером. Нашёл ближайшую точку CDN. Скачал десятки файлов. Собрал из них страницу и показал вам. И всё это - пока вы только убираете палец с клавиши Enter.
Интернет выглядит как магия только снаружи. Внутри это слаженная работа тысяч серверов, которые каждую секунду обрабатывают миллиарды запросов со всего мира. Теперь вы знаете, что происходит за кадром.