Как работает Интернет

На создание этого раздела нас вдохновила разговор "Как работает Интернет" Джессики Маккеллар ( http://web.mit.edu/jesstess/www/ ).

Бьемся об заклад, вы используете Интернет каждый день. Однако, знаете ли вы на самом деле, что случается, когда вы набираете адрес вроде https://djangogirls.org в браузере и нажимаете enter?

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

Если вы не знакомы с программированием, сначала может быть сложно понять, что такое HTML, но веб-браузеры (такие как Chrome, Safari, Firefox и т.д.) его любят. Веб-браузеры разработаны специально, чтобы понимать этот код, выполнять его инструкции и показывать файлы, из которого состоит ваш сайт, именно так, как вы того пожелаете.

Как и обычные файлы, нам нужно сохранять HTML-файлы в определенном месте на жестком диске. В Интернете мы используем специальные мощные компьютеры, называемые серверами. Они не имеют экрана, мышки или клавиатуры, так как их основная цель - сохранять и обрабатывать данные. Именно поэтому эти компьютеры назвали серверами, они обрабатывают (англ. To serve - обрабатывать) ваши данные.

Ладно, но вы хотите узнать как выглядит Интернет, не так ли?

Мы нарисовали для вас картинку! Она выглядит следующим образом:

Она выглядит следующим образом:

Сплошной бардак, правильно? Фактически, это сеть соединенных машин (выше указанных серверов). Сотни тысяч машин! Много-много километров кабеля по всему миру! Вы можете посетить веб-сайт Submarine Cable Map ( http://submarinecablemap.com/ ), Чтобы увидеть, насколько сложной является сеть. Здесь приведены снимок с веб-сайта:

Здесь приведены снимок с веб-сайта:

Поразительно, не так ли? Но однозначно, невозможно иметь провода между каждой машиной, подключенной к Интернету. Итак, чтобы достичь машины (например, ту на которой сохранено https://djangogirls.org ), Мы должны передать запрос через много-много разных машин.

Это будет выглядеть так:

Представьте, что когда вы набираете https://djangogirls.org , Вы отправляете письма, говорит: "Уважаемые Django Girls, я хочу увидеть сайт djangogirls.org. Отправьте мне его, пожалуйста!"

Ваше письмо поступит в ближайшее почтовое отделение. Далее он поступает к другому, что находится чуть ближе к вашему адресату, дальше к другому и так далее, пока не будет достигнуто окончательного пункта назначения. Единственное отличие в том, что при отправке многих писем (пакетов данных) в одинаковое место, каждый из них может пойти по совершенно разным почтовые отделения (маршрутизаторы). Это зависит от того, как их распределили в каждом отделении.

Это зависит от того, как их распределили в каждом отделении

Да, это так же просто. Вы отправляете сообщение и ожидаете определенного ответа. Конечно, вместо бумаги и ручки вы используете байта данных, но идея та же!

Вместо адресов с названиями улицы, города, индексом и названием страны, мы используем IP адреса. Ваш компьютер сначала спрашивает о DNS (англ. Domain Name System - система доменных имен) для перевода djangogirls.org в IP-адрес. Это работает подобно старомодных телефонных справочников, где вы могли бы найти имя лица, с которым хотите связаться и найти ее номер телефона и адрес.

Когда вы отправляете письмо, это требует наличия определенных вещей для корректной доставки: адрес, штамп и тому подобное. Также вы используете язык, которую понимает получатель, правда? То же самое касается и пакетов данных, которые вы отправляете, чтобы увидеть сайт. Мы используем протокол, который называется HTTP (англ. Hypertext Transfer Protocol, протокол передачи гипер-текстовых документов).

Итак, по сути, когда у вас есть веб-сайт, вам нужно иметь сервер (машину), где он будет жить. Когда сервер получает входящий запрос (в письме), он отправляет обратно ваш сайт (в другом письме).

Поскольку вы читаете учебное пособие по Django, вы спросите, что же делает Django. Когда вы отправляете ответ, то не всегда хотите отправлять одно и то же каждому. Гораздо лучше, если ваши письма является персонализированными, особенно для лиц, которые только вам написали, да? Django помогает вам с созданием этих персонализированных интересных писем :).

Хватит разговоров, время творить!

Ладно, но вы хотите узнать как выглядит Интернет, не так ли?
Также вы используете язык, которую понимает получатель, правда?
Гораздо лучше, если ваши письма является персонализированными, особенно для лиц, которые только вам написали, да?