Як працює Інтернет

Для проходять курс будинку: ця глава розглянута в відео How the Internet Works .

Ця глава натхненна виступом «Як працює Інтернет» Джесіки Маккеллар ( http://web.mit.edu/jesstess/www/ ).

Можемо посперечатися, що ти користуєшся Інтернетом щодня. Але чи знаєш ти насправді, що відбувається після введення адреси, наприклад, https://djangogirls.org , В браузер і натискання Enter?

Перше, що тобі потрібно зрозуміти, це те, що веб-сайт є просто групу файлів, збережених на жорсткому диску. Так само, як твої фільми, музика або фотографії. Проте, є одна особливість, яка є унікальною для сайтів: вони містять комп'ютерний код, званий HTML.

Якщо ти не знайома з програмуванням, то спочатку може бути важко зрозуміти HTML, але твій веб-браузер (наприклад, Chrome, Safari, Firefox, і т. Д.) Обожнює його. Веб-браузери створені для того, щоб розуміти цей код, виконувати його вказівки і представляти файли, з яких складається твій веб-сайт, саме так, як ти цього хочеш.

Як і з будь-яким файлом, нам потрібно зберігати HTML файли десь на жорсткому диску. Для Інтернету ми використовуємо спеціальні, потужні комп'ютери, звані серверами. У них немає екрану, миші або клавіатури, тому що їх основною метою є збереження й обслуговування даних. Ось чому вони називаються серверами - тому що вони обслуговують (serve) твої дані.

Добре, але ти хочеш знати, як виглядає Інтернет, так?

Ми намалювали тобі картинку! Він виглядає ось так:

Досить безладно, правда? Насправді, це мережа пов'язаних машин (згаданих вище серверів). Сотень тисяч машин! Кілометри і кілометри кабелів по всьому світу! На веб-сайті з картою підводних кабелів ( 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 допомагає тобі зі створенням цих персоналізованих, цікавих листів :).

Ну, досить базікати, час зайнятися справою!

Добре, але ти хочеш знати, як виглядає Інтернет, так?
Ти також використовуєш мову, який розуміє одержувач, вірно?
Набагато краще, якщо твої листи є персоніфікованими, особливо для людини, яка тільки що тобі написав сам, правильно?