На створення цього розділу нас надихнула розмова "Як працює Інтернет" Джесіки Маккеллар (http://web.mit.edu/jesstess/www/).
Б'ємось об заклад, ви використовуєте Інтернет кожного дня. Однак, чи знаєте ви насправді, що трапляється коли ви набираєте адресу на зразок http://djangogirls.org у вашому браузері та натискаєте 'Enter'?
Перша річ, яку вам необхідно зрозуміти це те, що веб сайт є лише набором файлів на жорсткому диску. Просто як фільми, музика або зображення. Проте, є одна річ унікальна для веб сайтів: вони включають комп'ютерний код, що називається HTML.
Якщо ви не знайомі із програмуванням, спочатку може бути складно вловити що таке HTML, але ваші веб браузери (такі як Chrome, Safari, Firefox, тощо) люблять це. Веб браузери розроблені спеціальним чином, щоб розуміти цей код, слідувати його інструкціям і представляти усі файли, з яких створений ваш веб сайт точно в такому вигляді, як ви того забажаєте.
Як і з кожним файлом, нам потрібно зберігати HTML файли в певному місці на жорсткому диску. Для Інтернету, ми використовуємо спеціальні, потужні комп'ютери, що називаються серверами. Вони не мають екрану, мишки чи клавіатури, тому що їхня основна ціль -- зберігати і обробляти дані. Саме тому ці комп'ютерами назвали серверами, тому що вони обробляють (англ. to serve - обробляти) ваші дані.
OK, але ж ви хочете дізнатися як виглядає Інтернет, чи не так?
Ми намалювали для вас картинку! Вона виглядає наступним чином:
Виглядає як суцільний безлад, чи не так? Фактично, це мережа з'єднаних машин (вище зазначених серверів). Сотні тисяч машин! Багато-багато кілометрів кабелю по усьому світу! Можете відвідати веб сайт Submarine Cable Map (http://submarinecablemap.com/), щоб побачити, наскільки складною є мережа. Тут наведено скріншот з веб-сайту:
Вражаюче, чи не так? Але однозначно, неможливо мати проводи між кожною машиною підключеною до Інтернету. Отже, щоб досягти машини (наприклад, ту на якій збережено http://djangogirls.org), ми повинні передати запит через багато-багато різних машин.
Це виглядатиме так:
Уявіть, що коли ви набираєте http://djangogirls.org, ви відправляєте листа, що говорить: "Шановні Django Girls, я хочу побачити веб сайт djangogirls.org. Відправте мені його, будь ласка!"
Ваш лист надійде до найближчого поштового віділення. Далі він надходить до іншого, що знаходиться трохи ближче до вашого адресата, далі до іншого і так далі поки не буде досягнуто остаточного пункту призначення. Єдина унікальна річ це те, що ви відправляєте листи (пакетні дані) часто в одне й те ж місце, і кожен лист може проходити загалом через різні поштові відділення (роутери), в залежності яким чином вони розподіляються в кожному відділенні.
Так, це так само просто. Ви відправляєте повідомлення і очікуєте певної відповіді. Звісно, замість паперу і ручки ви використовуєте байти даних, але ідея та сама!
Замість адрес із назвами вулиці, міста, індексом і назвою країни, ми використовуємо IP адреси. Ваш комп'ютер спочатку запитує про DNS (англ. Domain Name System - Система доменних імен) для переводу djangogirls.org в IP адресу. Це працює трохи подібно до старомодних телефонних записників, де ви могли б знайти ім'я особи, з якою бажаєте зв'язатися і знайти її номер телефону та адресу.
Коли ви відправляєте листа, це потребує наявності певних властивостей для коректної доставки: адреса, штамп тощо. Також ви використовуєте мову, котру розуміє отримувач, правда ж? Те ж саме із пакетними даними, котрі ви відправляєте, щоб побачити веб сайт: використовується протокол, що називається HTTP (англ. Hypertext Transfer Protocol - протокол передачі гіпертексту).
Отже, по суті, коли у вас є веб сайт вам треба мати сервер (машину), де він житиме. Сервер очікує на вхідні запити (листи, котрі просять сервер відправити ваш веб сайт) і відправляє у відповідь ваш веб сайт (у іншому листі).
Оскільки це є навчальний посібник з Django, ви запитаєте що ж робить Django. Коли ви відправляєте відповідь, то не завжди бажаєте відправляти одне й те саме кожному. Набагато краще якщо ваші листи є персоналізованими, особливо для осіб, які щойно вам написали, правда ж? Django допомагає вам зі створенням цих персоналізованих, цікавих листів :).
Досить розмов, час творити!