Інтернет: HTTP та HTML
Я Жасмін Лоуренс, і я керівник групи проектів команди розробки XBox One.
Один з наших найбільших проектів — XBox Live. Це онлайн-сервіс, який з'єднує
геймерів з усього світу, і цей зв'язок нам надає інтернет. Це непросте завдання, і багато
процесів відбувається "за лаштунками". Завдяки інтернету людство кардинально
змінило своє спілкування і способи взаєморозуміння. Але як усе це працює?
Як комп’ютери в усьому світі спілкуються між собою? Ось наприклад перегляд веб-сторінок.
Спочатку ви відкриваєте веб-браузер, додаток, який відкриває вам доступ до веб-сторінок.
Далі ви вводите веб-адресу або URL-адресу (Уніфікований локатор ресурсів) веб-сайту,
який ви хочете відвідати, як-от Tumblr.com. Привіт! Я засновник Tumblr Девід Карп і сьогодні
ми подивимось, як працюють веб-браузери, якими ми користуємось щодня. Ви, напевно,
замислювалися про те, що ж відбувається, коли ви вводите адресу у веб-браузері
й натискаєте Enter. І це так само неймовірно, як ви собі уявляєте. У цей момент ваш комп'ютер
починає спілкуватися з іншим комп'ютером, який називається сервером, — зазвичай, за
тисячі миль. І через мілісекунди ваш комп'ютер запитує в цього сервера про веб-сайт, і сервер
починає спілкуватися з вашим комп'ютером мовою HTTP. HTTP розшифровується як
"протокол передачі гіпертекстових даних". Це ніби мова, яку використовує один комп’ютер,
щоб запитати інший комп'ютер про дані. Це взагалі дуже просто. Якщо б ви перехопили
розмову між вашим комп’ютером і веб-сервером в інтернеті, вона, головним чином,
складалася б із запитів типу "GET". Це просто слово "GET" і назва документа, який ви
запитуєте. Отже, якщо ви намагаєтесь увійти в Tumblr і завантажити нашу сторінку входу,
все, що ви робите, — це надсилаєте запит "GET" на сервер Tumblr, визначений як
"GET/login". Це повідомляє серверу Tumblr, що вам потрібен весь HTML-код для сторінки
входу в Tumblr. HTML означає "гіпертекстова мова опису документів",
і її можна вважати мовою, на якій ви говорите веб-браузеру переглядати сторінку. Візьмемо
Вікіпедію. Насправді вона є просто великим простим документом, а HTML — це мова,
якою ви користуєтесь, щоб зробити цей заголовок великим і жирним, обрати шрифт,
прив’язати певний текст до певних сторінок, зробити якийсь текст жирним, якийсь —
виділити курсивом. Поставити зображення в середині сторінки, вирівняти зображення
праворуч або ліворуч. | Текст веб-сторінки включений безпосередньо до HTML, але інші
частини, як-от зображення чи відео — це окремі файли з власними URL-адресами, які
потрібно запитувати окремо. Браузер надсилає спеціальні запити HTTP для кожного з них
і відображає їх по мірі надходження. Якщо веб-сторінка має багато зображень, на кожне
буде окремий запит HTTP, і сторінка завантажуватиметься повільніше. Іноді, коли ви
працюєте в інтернеті, ви не просто запитуєте сторінки GET-запитами. Іноді ви надсилаєте
інформацію, як-от при заповненні форми або введенні пошукового запиту. Ваш браузер надсилає
цю інформацію веб-серверу в простому тексті за допомогою POST-запиту HTTP. Скажімо, ви
заходите на Tumblr. Спершу ви зробити запит POST, тобто POST на сторінку входу в Tumblr, до якої
прикріплено певні дані. Тут є ваша електронна пошта й пароль. Це йде до сервера Tumblr.
Сервер Tumblr упізнає вас як Девіда. Він пересилає веб-сторінку назад у ваш браузер,
який говорить: Успішний вхід як "Девід"! Але до цієї веб-сторінки він також
прикріплює певні невидимі ​​файли cookie, які ваш браузер побачить і збереже.
Це дуже важливо, адже лише так веб-сайт може запам'ятати, хто ви. Файли cookie, —
це ваше посвідчення особи для сайту Tumblr. Це число, яке ідентифікує вас як Девіда. Ваш
веб-браузер запам'ятає це число, і наступного разу, коли ви оновите Tumblr або перейдете
на Tumblr.com, ваш веб-браузер автоматично прикріпить цей ідентифікаційний номер
до запиту, який він надсилає на сервери Tumblr. Тепер сервери Tumblr бачать запит,
який надходить з вашого браузера, бачить ідентифікаційний номер і розуміє:
"Це запит від Девіда". | Далі. Ми знаємо, що інтернет повністю відкритий для всіх.
Усі з'вязки в ньому спільні, а інформація передаєтсья простим текстом. Це дає
можливість хакерам викрасти будь-яку особисту інформацію, яку ви надсилаєте через інтернет.
Але безпечні веб-сайти запобігають цьому, вимагаючи від вашого браузера спілкуватися
на захищеному каналі, використовуючи так званий "захищений сокет" (SSL), та його нащадок
"безпеку транспортного рівня" (TLS). SSL та TLS є ніби шаром безпеки, в який загорнуті ваші
повідомлення, для їх захисту від крадіжки чи підробки. SSL та TLS активні, коли ви бачите
замочок в адресному рядку браузера, поруч із HTTPS. Протоколи HTTPS надають безпеку
й захист для ваших HTTP-запитів. Коли веб-сайт просить ваш браузер встановити
захищене з'єднання, він спочатку надає цифровий сертифікат. Це ніби офіційне
посвідчення особи, яке підтверджує, що це справжній веб-сайт, а не імітація. Цифрові
сертифікати видаються органами сертифікації, які є довіреними органами, що перевіряють
автентичність веб-сайтів і видають їм сертифікати. Так само, як уряд видає посвідчення
особи чи паспорти. Якщо ж веб-сайт спробує встановити безпечне з'єднання без дійсного
цифрового сертифіката, ваш браузер попередить вас. Це основи перегляду веб-сторінок!
Цими процесами ми користуємось щодня. Отож, HTTP та DNS керують надсиланням
і отриманням HTML, медіафайлів й усього іншого в інтернеті. Це можливо лише завдяки мережам
TCP/IP та маршрутизаторам, які розбивають і транспортують інформацію в невеликих
пакетах. Ці пакети складаються з бінарних послідовностей з 1 і 0, які фізично передаються
через електричні дроти, волоконно-оптичні кабелі й бездротові мережі.
На щастя, якщо ви розумієте, як працює один шар Інтернету, ви можете покластися
на нього, не запам'ятовуючи всіх подробиць. Ми знаємо, що всі ці шари працюватимуть разом,
щоб послідовно передавати інформацію за принципами масштабування й надійності.