Добавить в корзинуПозвонить
Найти в Дзене

Как сайты открываются так быстро, если расположены на разных концах планеты?

Вы набираете адрес и нажимаете Enter. Страница уже здесь. А сервер сайта при этом может стоять в дата-центре на другом конце планеты. Но как такое возможно? За этим "мгновенно" прячется целая цепочка событий, которая происходит быстрее, чем вы успеваете об этом подумать. Давайте пройдём этот путь вместе - от нажатия клавиши до готовой страницы на экране. Представьте, что интернет - это огромный город. У каждого дома в нём есть адрес, только не "улица Ленина, 5", а числовой: например, 142.250.74.46. Это называется IP-адрес. Проблема в том, что люди не умеют запоминать такие числа. Поэтому придумали удобные имена: google.com, yandex.ru, wikipedia.org. Когда вы набираете адрес в браузере, вы как будто пишете записку с именем человека, но без его номера телефона. Сама по себе записка никуда не дойдёт. Нужна телефонная книга. Ваш браузер первым делом обращается к специальному серверу - DNS (Domain Name System). Это именно та самая телефонная книга. Браузер спрашивает: "Эй, знаешь адрес сайт
Оглавление

Вы набираете адрес и нажимаете 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 - и только потом идёт по нужному адресу.

Весь этот разговор занимает несколько миллисекунд - быстрее, чем вы успеваете моргнуть.

Хитрость в том, что DNS-серверов в мире тысячи, и они расставлены по всему земному шару. Ближайший к вам ответит быстрее всего. Ваш интернет-провайдер обычно держит собственный DNS прямо в вашем городе.

Шаг 3. Браузер едет по правильному адресу

Получив числовой адрес, браузер отправляет запрос уже напрямую на сервер сайта. Но сначала они знакомятся - это называется "рукопожатие" (handshake).

Представьте: вы звоните незнакомому человеку. Прежде чем говорить о делах, вы оба убеждаетесь, что разговариваете именно друг с другом, а не с мошенником. Браузер и сервер делают то же самое - обмениваются специальными кодами и договариваются о зашифрованном соединении. Именно поэтому в адресной строке появляется замочек: разговор идёт в шифре, который никто посторонний не прочитает.

Шаг 4. CDN - почта с отделениями по всему миру

Большие сайты хранят свои файлы не в одном месте, а сразу во многих точках по всему миру. Эта сеть называется CDN - Content Delivery Network, или сеть доставки контента.

Крупные сайты не хранят все данные в одном месте. Они заранее раскладывают копии по серверам в разных странах, чтобы вы получили ответ от ближайшего.
Крупные сайты не хранят все данные в одном месте. Они заранее раскладывают копии по серверам в разных странах, чтобы вы получили ответ от ближайшего.

Метафора простая: представьте, что популярная пекарня открыла филиалы в каждом районе города. Вам не нужно ехать на другой конец за свежим хлебом - берёте в ближайшем. Так и CDN: если вы сидите в Москве, картинки и видео приедут с московского или петербургского сервера, а не тащатся через океан из Калифорнии. Быстрее, дешевле, без задержек.

Шаг 5. Сервер думает и отвечает

Добравшись до нужного сервера, браузер передаёт запрос: "Дай мне главную страницу". Сервер - это мощный компьютер, который работает круглосуточно без выходных и обрабатывает тысячи таких запросов одновременно.

Сервер смотрит: что именно просят, есть ли такая страница, нужно ли собирать её из базы данных или она уже готова. Потом складывает ответ в пакеты и отправляет обратно.

Данные путешествуют не одним куском, а маленькими пакетами - как книга, разобранная по страницам и отправленная разными посылками. На месте они снова собираются в правильном порядке.

Шаг 6. Браузер строит страницу - как прораб на стройке

Вот тут начинается самая трудоёмкая часть, хотя вы её не видите.

Браузер получает HTML-файл - это грубо говоря скелет страницы, список того, что на ней должно быть. Читая его, браузер понимает: нужны ещё стили оформления (CSS), скрипты для кнопок и анимации (JavaScript), картинки, шрифты. Он тут же посылает новые запросы за каждым из этих элементов.

Параллельно браузер начинает строить страницу. Сначала появляется каркас - текст без оформления. Потом приходят стили, и всё становится красивым. Потом скрипты - и кнопки начинают работать. Картинки подгружаются по мере готовности.

Это как ремонт квартиры в ускоренной съёмке: сначала стены, потом обои, потом мебель, потом картины на стенах - всё это за доли секунды.

Шаг 7. Кэш - ваш личный склад готовых ответов

Если вы заходите на сайт повторно, браузер не делает всё заново. Он помнит, что уже скачивал логотип и шрифты в прошлый раз, и берёт их прямо с вашего компьютера. Этот склад называется кэш.

Почему кеш называется кешем? Слово "кэш" пришло из французского языка. "Cacher" по-французски означает "прятать". Кэшем называли тайник - место, где охотники и путешественники прятали запасы еды и снаряжения, чтобы не таскать всё с собой и быстро забрать нужное в следующий раз.
Когда инженеры придумывали название для технологии, которая прячет часто используемые данные в быстром хранилище, метафора подошла идеально.

Поэтому второй и третий визит на один и тот же сайт всегда быстрее первого.

Итого: сколько всего произошло за 0,3 секунды

Ваш браузер запросил адрес у DNS. Установил зашифрованное соединение с сервером. Нашёл ближайшую точку CDN. Скачал десятки файлов. Собрал из них страницу и показал вам. И всё это - пока вы только убираете палец с клавиши Enter.

Интернет выглядит как магия только снаружи. Внутри это слаженная работа тысяч серверов, которые каждую секунду обрабатывают миллиарды запросов со всего мира. Теперь вы знаете, что происходит за кадром.