Як працює інтернет. Основи веб-програмування

Веб-програмування – одна з найпопулярніших і прибуткових сфер IT. Кожен, хто хоче стати фахівцем в цій сфері, повинен розуміти, як працює інтернет.
Принципи роботи інтернету — це основи, які будуть актуальні завжди, на відміну від різних фреймворків і мов, що з’являються мало не щодня.

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

Як працюють інтернет-адреси

Інтернет — це безліч пристроїв, з’єднаних між собою незліченною кількістю проводів, тому його часто називають глобальною мережею. Щоб пристрої можна було відрізняти один від одного, кожному з них присвоюється унікальна адреса. Цю електронну адресу також називають Internet Protocol або IP. Стандартний IP складається з чотирьох чисел від 0 до 255, між якими ставиться крапка, тобто приймає вид xxx.xxx.xxx.xxx, де xxx – число.

Припустимо існують два комп’ютери з адресами 1.3.5.7 і 2.4.6.8, що пов’язані через інтернет. Схема їх зв’язку має такий вигляд:

Комп’ютер “1.3.5.7” -> інтернет -> комп’ютер 2.4.6.8 “

Інтернет являє собою абстрактний об’єкт, що знаходиться у середині цієї схеми. Абстрактний, тому що між цими комп’ютерами не прокладений прямий провід, замість цього комп’ютер підключається до складної системи, яка складається з величезної кількості проводів, які утворюють набагато більш складну структуру, ніж павутина.

cmd

Власник комп’ютера “1.3.5.7” може перевірити якість з’єднання з комп’ютером 2.4.6.8. Для цього він повинен послати команду ping, яка показує час між відправленням запиту й одержанням відповіді на нього.

Ви можете перевірити, як швидко ваш комп’ютер отримає відповідь при запиті, наприклад, на сервер Brain UP. Для цього відкрийте командний рядок (в операційній системі Windows) і введіть команду:ping brainup.space

Як працюють стеки протоколів і пакети

Комп’ютер підключений до інтернету, та має унікальну адресу, що далі? Як комп’ютери, з’єднані з інтернетом, “розмовляють” між собою? Припустимо, комп’ютер 1.3.5.7 хоче послати повідомлення комп’ютера 2.4.6.8, в якому міститься текст “Привіт, ти хто?“.

Очевидно, що повідомлення повинно пройти через велику кількість проводів, щоб потрапити на інший комп’ютер.

Але все не так просто, по дротах не передаються букви алфавіту, спочатку повідомлення транслюється в електричні сигнали, які передаються через інтернет (по проводах) на цільовий комп’ютер, де знову транслюються в букви алфавіту.

Ця система реалізується за допомогою стека протоколів, який є на кожному пристрої. Він вбудований безпосередньо в операційну систему. Використовуваний в інтернеті стек протоколів називається TCP / IP, по суті його назва складається з двох головних протоколів зв’язку TCP і IP. Він має наступну архітектуру:

Протокол додатків
Специфічні для додатків протоколи, такі як WWW, FTP, e-mail, DNS та інші

Протокол управління передачею
Направляє пакети до певних додатків на комп’ютері, використовуючи номер порту

IP (Internet Protocol)
Направляє пакети на певний комп’ютер, використовуючи його IP адреса

Апаратний
Перетворює двоїчні пакети даних в мережеві сигнали і навпаки (мережеві карти, модеми)

Повідомлення проходить через шари відправляючого комп’ютера в наступному порядку:

Application —> TCP —> IP —> Hardware

На компьютері отримувача повідомлення проходить через ті ж рівні, але у зворотному порядку.

Якщо розглядати цей процес більш докладно, то при відправленні повідомлення трапляється, щось на зразок цього:

  1. Повідомлення повинно пройти по всіх рівнях стека протоколів, починаючи з Application.
  2. Якщо повідомлення занадто довге, то воно може бути розбите на кілька дрібніших частин на кожному рівні стека протоколів. Справа в тому, що передаються через інтернет дані відправляються невеликими порціями, які називаються пакетами.
  3. Після пакети проходять через шар управління передачею даних, де їм призначається номер порту. Детальніше про портах буде розказано пізніше, а зараз важливо зрозуміти, що вони дозволяють пакетам визначити, в який додаток вони повинні потрапити.
  4. На наступному рівні пакету присвоюється IP адреса цільового комп’ютера, в нашому випадку це 2.4.6.8.
  5. Тепер, коли пакети точно знають, на який комп’ютер і в який додаток вони повинні потрапити, вони готові до відправки через інтернет. На апаратному рівні пакети перетворюються в електричні сигнали і передаються по інтернет-лінії.
  6. Тепер ваш пакет подорожує по інтернету, періодично він натикається на маршрутизатори (докладніше про них пізніше), які за допомогою IP визначають, куди далі відправляти його. У якийсь момент пакет приходить до маршрутизатора, який відправляє його на цільовий комп’ютер.
  7. Нарешті, коли пакет досягає комп’ютера 2.4.6.8, він починає проходити по стеку протоколів знизу-вгору.
  8. Під час проходження по стеку протоколів видаляються дані, призначені відправляють комп’ютером (IP, номер порту).
  9. Коли пакет досягає вершини стека, він збирається в вихідну форму:”Привіт, ти хто?“.

Як працює інфраструктура інтернету

Тепер ви знайте, як пакети переміщаються з одного комп’ютера на інший, однак, що насправді відбувається, коли вони опиняються в інтернеті?

Насправді пакет проходить приблизно такий шлях:

Комп’ютер → Модем → Телефонна мережа → Модемні пул → ISP Port Server → Маршрутизатор → ISP магістраль → Маршрутизатор → CSU / DSU → Виділена лінія → CSU / DSU → Маршрутизатор → LAN → Комп’ютер

Інтернет не просто так називають всесвітньою павутиною. Коли ваш комп’ютер зв’язується з іншим комп’ютером через інтернет, він посилає і отримує пакети, які проходять через багато кілометрів проводів. Щоб зрозуміти, як влаштована інфраструктура інтернету, треба зрозуміти, хто такі провайдери.

Проводи, маршрутизатори та інше обладнання потрібно підтримувати, інакше воно швидко прийде в непридатність. Цим і займають провайдери, саме за це вони беруть гроші. Вся інфраструктура інтернету належить усього кільком великим провайдерам, які “продають” інтернет дрібнішим провайдерам, а ті ще більш дрібним і так далі.

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

Ви можете перевірити, який шлях пройде ваш пакет, поки не потрапить на інший комп’ютер або сервер, для цього введіть в командний рядок команду:tracert brainup.space. Система покаже вам, через які проміжні центри пройшов пакет, і скільки часу у нього це зайняло, щоб дійти до сервера BrainUP та отримати відповідь.

Ієрархія інтернет-маршрутизації

Як пакети знаходять шлях до іншого комп’ютера через інтернет? Кожен комп’ютер знає, де знаходяться інші комп’ютери?

Насправді для управління пересуванням пакетів використовуються спеціальні пристрої – маршрутизатори. Інтернет розділений на багато маленьких підмереж, які пов’язані з допомогою маршрутизаторів. Кожен маршрутизатор знає IP пристроїв, які знаходяться в його підмережі.

Кожен маршрутизатор має таблиці маршрутизації, що містять всі IP підмережі. Коли пакет приходить на маршрутизатор, той перевіряє, чи є в таблиці мережа з потрібною адресою. Якщо мережа знайдена, пакет відправляється до неї, а якщо немає, то пакет відправляється на рівень вище, аж до магістралі NSP, яка містить найбільші таблиці маршрутизації. У певний момент пакет знайде потрібну мережу, він буде рухатися по ній до нижніх рівнів до тих пір, поки не досягне останнього, самого маленького рівня, і не потрапить на цільовий комп’ютер.

Як працюють доменні імена в інтернеті

Працювати з IP адресами не зручно, адже це просто набір цифр, який складно запам’ятати. Для вирішення цієї проблеми були придумані доменні імена, які замінюють звичайні IP адреси. Дійсно, простіше запам’ятати ім’я google.com, ніж IP адреса 172.217.22.110.

У кожного доменного імені є відповідний IP адреса, за зв’язок імені і адреси відповідає служба доменних імен (DNS). DNS — це база даних, яка містить доменні імена і відповідні їм адреси.

Бази доменних імен зберігаються на спеціальних комп’ютерах, які називаються DNS-серверами. Причому жоден з них не містить всю базу даних, на одному DNS-сервері знаходиться лише деяка її частина. Якщо комп’ютер не знаходить потрібне ім’я домену на одному DNS-сервері, то він перенаправляється на інший DNS-сервер.

Інтернет-протоколи

Для роботи інтернету використовується багато різних протоколів, такі як TCP / IP, протоколи маршрутизації, управління доступом і інші. Ми будемо розглядати тільки найважливіші з них. Спочатку розберемо протоколи більш високого рівня, а потім більш низького.

World Wide Wed (WWW) – це найпоширеніша система, яка використовується для роботи інтернету. Ця система пов’язує між собою безліч документів, розташованих на різних комп’ютерах, тому її часто називають всесвітньою павутиною. WWW – це єдиний об’єкт, кожна частина якого пов’язана з іншою за допомогою протоколу HTTP.

HTTP (протокол передачи гипертекста) – це протокол додатків, який забезпечує роботи мережі. Не плутайте з мовою розмітки HTML, який використовується для написання веб-сторінок.
HTTP використовують веб-браузери і веб-сервера, щоб зв’язуватися один з одним в інтернеті. Він вважається протоколом додатків, тому що можуть використовувати для зв’язку один з одним. В даному випадку додатки – це браузери і веб-сервери.

HTTP – це протокол передачі гіпертексту без встановлення з’єднання. Клієнти (веб-браузери) посилають запити на сервери для отримання сторінок, зображень та інших серверних елементів. Після того, як сервер закінчить обробку запиту клієнта, з’єднання між клієнтом і сервером через інтернет розривається. Тобто для кожного нового запиту створюється нове з’єднання. Більшість інших протоколів можуть підтримувати з’єднання незалежно від запитів. До того як клієнт зможе зробити новий запит, сервер повинен дозволити встановити нове з’єднання, що робить цей протокол безпечним.

Коли ви вводите URL сайту в адресну строку браузера, відбувається наступне:

  1. Якщо URL – це доменне ім’я, то браузер підключається до DNS і шукає відповідний IP.
  2. Браузер підключається до веб-сервера і відправляє HTTP запит для отримання бажаної сторінки.
  3. Веб-сервер отримує запит і перевіряє доступність потрібної сторінки. Якщо сторінка існує, він посилає її клієнту, інакше він посилає повідомлення з помилкою “404”, яке означає, що сторінка не знайдена.
  4. Веб-браузер отримує сторінку з сервера і з’єднання переривається.
  5. Потім веб-браузер аналізує сторінку, перевіряючи її на різні елементи, такі як зображення, аплети та інші.
  6. Для кожного знайденого елемента браузер (клієнт) запитує з’єднання з сервером і посилає HTTP запит.
  7. Тільки після цього користувач бачить повністю завантажену сторінку.

Інший широко використовуваний сервіс інтернету – це E-mail (електронна пошта). Він використовується для пересилки і отримання електронних повідомлень. E-mail використовує протокол додатків, який називається Simple Mail Transfer Protocol (SMTP). Він також є текстовим протоколом, але на відміну від HTTP, підтримує встановлений з’єднання і має більш складну структуру, тому підтримує набагато більше команд.

Коли ви відкривайте свій поштовий клієнт, щоб прочитати пошту, відбувається наступне:

  1. Поштовий клієнт створює нове з’єднання з поштовим сервером. IP адреса поштового сервера або його домен зазвичай настроюються при установці клієнта.
  2. Поштовий сервер передає перше повідомлення, щоб ідентифікувати себе.
  3. Клієнт відправляє повідомлення з командою “HELO“, на яке сервер повинен відповісти сполученням “250 OK”.
  4. Клиент посылает на сервер такую команду, которая соответствует действиям пользователя (отправка письма, проверка почты и другие). Сервер отвечает соответствующей командой.
  5. Соединение клиента с сервером будет продолжаться до тех пор, пока клиент не пошлет команду “QUIT”, после чего соединение будет закрыто.

TCP знаходиться нижче рівня додатків в стекупротоколів. Коли якийсь додаток з’єднується з іншим додатком через інтернет, що відправляються ними повідомлення завжди проходять через TCP.

TCP відповідає за доставку протоколів додатків до потрібного додатка на іншому комп’ютері. Для цього використовуються порти, які дозволяють комп’ютерам мати кілька паралельних з’єднань один з одним. Наприклад, ви можете одночасно завантажувати фільм і переглядати пошту. За допомогою номера порту TCP визначає, яка програма отримає пакет.

Якщо проводити аналогію, то комп’ютер – це залізнична станція, а порти – рейкові лінії, по яких ходять потяги. На залізничну станцію можуть прийти відразу кілька поїздів, по номеру лінії можна точно визначити, який поїзд прибув. Порти працюю за схожим принципом.

Протокол TCP працює не з текстом, а з байтами, тому він дуже надійний. Перед тим, як два комп’ютера почнуть обмінюватися даними, вони повинні встановити з’єднання. Безпека протоколу обумовлена ​​тим, що на кожен відправлений пакет вас запитають про те, що одержувач прийняв доставку.

На відміну від TCP, IP не вимагає постійного підтримання зв’язку і є досить ненадійним протоколом. IP не піклується про те, чи дійде пакет в пункт призначення, він нічого не знає про з’єднання та номерах портів. Єдине завдання протоколу IP – направляти пакети на потрібний комп’ютер, тому для нього не важливо, що станеться після того, як вони потраплять в нього.

Кожен пакет IP незалежний, тому вони можуть приходити не в тому порядку або зовсім не доходити. Переконатися, чи прийшли пакети і правильний чи у них порядок, це завдання TCP.

1 Star2 Stars3 Stars4 Stars5 Stars (36 оценок, среднее: 5,00 из 5)

Залиште відповідь

Будь ласка, введіть свій коментар!
Please enter your name here