Что происходит за кулисами, когда мы вводим www.cnn.com в браузере, и как информация отображается на экране?
Техническое объяснение будет высоко ценится.
Что происходит за кулисами, когда мы вводим www.cnn.com в браузере, и как информация отображается на экране?
Техническое объяснение будет высоко ценится.
Браузер: «Итак, у меня есть пользователь, запрашивающий этот адрес: www.cnn.com. Я полагаю, так как там нет косых черт или чего-то еще, это прямой запрос главной страницы. Также не было определено ни протокола, ни порта, так что я предполагаю, что это HTTP и идет на порт 80 ... ну, обо всем по порядку. Эй, DNS, приятель, проснись! Где скрывается этот www.cnn.com?"
DNS: «Правильно ... подожди секунду, я спрошу у интернет-провайдеров. Хорошо, похоже на 157.166.226.25. "
Браузер: «Хорошо. Internet Protocol Suite, ваша очередь! Позвоните 157.166.226.25, пожалуйста. Отправьте им этот заголовок HTTP. Он спрашивает об основной структуре и содержании их главной страницы, так что я знаю, что еще можно извлечь ... ну, не то, чтобы вы заботились об этом, я думаю. "
TCP/IP: «Что значит моя очередь? Как будто я не просто отрабатывал спину прямо для DNS? Боже, что нужно, чтобы получить здесь немного признательности ... "
Браузер: ...
TCP/IP: "Да, да ... Подключение ... Я просто попрошу шлюз направить его. Знаете, это не так просто, мне придется разделить ваш симпатичный запрос на несколько частей, чтобы он достиг конца, и собрать все, что они отправляют, из всех тысяч пакетов, которые я получаю ... ах, Да, тебе все равно. Цифры «.
Между тем, в штаб-квартире CNN, сообщение наконец заканчивается в дверях веб-сервера.
Веб-сервер CNN: "Nzhôô! Клиент! Он хочет новости! Главная страница! Как насчет этого?"
Механизм сценариев на стороне сервера CNN: «Хорошо, сделаю! Первая полоса, верно?"
Сервер базы данных CNN: "Да! Работа для меня! Какой контент вам нужен?"
Механизм сценариев на стороне сервера CNN: "... извините, БД, у меня есть копия первой страницы прямо в моем кэше, нет необходимости что-либо компилировать. Но, эй, возьмите этот идентификатор пользователя и сохраните его, я тоже отправлю его клиенту, чтобы мы знали, с кем мы поговорим позже ".
Сервер базы данных CNN: "Да!"
Вернуться на компьютер пользователя ...
TCP/IP: «Оооооо, вот и ответ. О, мальчик, почему у меня такое чувство, что это будет большой ... "
Браузер: «Ух, вау ... здесь есть все виды JavaScript-кода ... куча изображений, пара форм ... Хорошо, это займет некоторое время, чтобы сделать. Лучше доберись до этого. Эй, система IP, есть еще куча вещей, которые вам нужно получить. Давайте посмотрим, что мне нужно несколько таблиц стилей с i.cdn.turner.com - через HTTP и запросить файл /cnn/.element/css/2.0/common.css. А затем получите некоторые из этих сценариев на i.cdn.turner.com, я считаю до сих пор шесть ... »
TCP/IP: «Я получаю картину. Просто дайте мне адреса сервера и все такое. И оберните эти файлы в HTTP-запрос, я не хочу иметь с этим дело. "
DNS: «Проверка i.cdn.turner.com ... эй, мелочи, это на самом деле называется cdn.cnn.com.c.footprint.net. IP 4.23.41.126 "
Браузер: «Конечно, конечно ... подождите секунду, это займет несколько нсек, я пытаюсь понять весь этот сценарий ...»
TCP/IP: «Эй, вот CSS, который вы просили. О, и ... да, эти дополнительные сценарии также только что вернулись ".
Браузер: "Вот так, есть еще ... какое-то видеообъявление!"
TCP/IP: «О, мальчик, как весело это звучит ...»
Браузер: «Там тоже все виды изображений! И этот CSS выглядит немного противно ... верно, поэтому, если эта часть идет туда, и эта строка вверху ... как на земле это будет больше соответствовать ... нет, мне придется немного растянуть это сделать это... О, но этот другой CSS-файл переопределяет это правило ... Ну, это не будет легким рендерингом, это точно!"
TCP/IP: «Хорошо, хорошо, перестань отвлекать меня на секунду, здесь еще много работы».
Браузер: «Пользователь, вот небольшой отчет о проделанной работе. Извините, все это может занять несколько секунд, примерно 140 различных элементов для загрузки и до 16 пока ".
Спустя одну или две секунды ...
TCP/IP: «Хорошо, это все. Эй, послушай ... прости, что я оборвал тебя раньше, у тебя там дела? Это, конечно, кажется вам слишком тяжелым. "
Браузер: «Фу, да, это все эти веб-сайты в наши дни, они, конечно, не облегчают вам жизнь. Ну, я справлюсь. Это то, ради чего я здесь.
TCP/IP: «Я думаю, это довольно тяжело для всех нас в наши дни ... ох, прекратите злорадствовать там, DNS!"
Браузер: «Эй, пользователь! Сайт готов - иди и получай новости!"
Как работает Интернет: объяснение HTTP и CGI
Также отличное объяснение от CERN - alma mater of Web: как работает сеть
Первым шагом является поиск DNS (сервера доменных имен). Он использует DNS-серверы, указанные в настройках вашей сети (или предоставленные вам DHCP), для поиска верхнего домена (cnn.com), а затем запрашивает у сервера имен этого домена IP-адрес указанного субдомена (www.cnn.com).
Получив IP-адрес, ваш браузер начнет связь с веб-сервером. Это делается с использованием указанного протокола (который обычно по умолчанию HTTP 1.1). На сервер делается запрос «GET» для «/», который отвечает содержимым документа HTML и соответствующими заголовками (которые сообщают браузеру о типе содержимого документа, HTML и другой информации). Затем браузер анализирует документ и находит любые URL-адреса, которые ему нужно встроить в страницу (например, изображения или связанные таблицы стилей), и выполняет GET-запросы для каждого из них.
Браузер также обычно автоматически делает запрос GET для /favicon.ico (чтобы отобразить маленький значок CNN рядом с названием сайта).
Ваш браузер также, вероятно, будет указывать в своих заголовках запроса, что он хочет сжать содержимое ответа, используя алгоритм gzip. Это делает загрузку файла намного меньше, если сервер поддерживает это. Это все прозрачно для вас, даже если вы загружаете ZIP-файл и распаковываете его.
Когда вы перезагружаете страницу, ваш браузер проверяет, кэширована ли уже эта страница в вашей системе, и если да, то выполняет HTTP-запрос только для заголовка документа и проверяет дату его изменения. Если эта дата позже, чем его кэшированная копия, он снова запрашивает все содержимое документа и обновляет страницу. В противном случае он просто использует вашу локальную копию.
То, что происходит на стороне CNN, так далеко от других ответов.
Это, очевидно, не техническое объяснение, но это симпатичная визуальная помощь (от превосходного Vladstudio.com), которая может быть полезна для некоторых:
Информация, которую вы только что попросили, может заполнить пару десятков книг. Но вот моя попытка объяснить это: ваш браузер говорит вашей ОС найти IP-адрес cnn.com. Затем ваша ОС запрашивает у DNS-сервера IP-адрес для cnn.com. IP-адрес отправляется брату, который связывается с IP-адресом и запрашивает страницу. Затем cnn.com отправляет вам и html-страницу. Браузеры анализируют HTML и отправляют информацию в средство визуализации HTML. Затем браузер сообщает ОС, что отображать на экране.
Джефф Мозер провел отличный технический анализ запроса HTTPS в своем блоге: первые несколько миллисекунд соединения HTTPS.
Вот действительно классное видео от "Sendung mit der Maus" (очень популярное немецкое детское телешоу, рассказывающее о технологиях для детей):
Die Sendung mit der Maus - Wie funktioniert das Internet (Как работает Интернет).
Только на немецком, к сожалению, но смешно даже без текста. Мужчины со смешными шлемами разыгрывают IP-пакеты, а данные записываются на бумажные карточки. Классика :-).
Кстати, объяснения на самом деле довольно хороши.