Без HTTP в інтернеті перестали б працювати сайти, а без HTTP на них було б небезпечно залишати особисті дані. Докладніше про те, що таке HTTP і HTTPs, у чому різниця між цими двома технологіями і як вони влаштовані — у статті.

Зміст

  1. Що таке HTTP
  2. Як працює HTTP
  3. Що таке HTTPs
  4. Як працює HTTPs
  5. Відмінності HTTP від HTTPs
  6. Як перекласти сайт на HTTPs

Що таке HTTP

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

Абревіатура HTTP розшифровується як HyperText Transfer Protocol — протокол передачі гіпертексту (тобто текстових документів, які містять посилання інші документи). Нині за його допомогою передають будь-які формати даних.

Як працює HTTP

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

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

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

Інший приклад — коли браузер надсилає якісь дані серверу. Скажімо, логін та пароль для входу до облікового запису. Щоб сформувати HTML-документ з головною сторінкою облікового запису, сервер перевіряє деталі входу в спеціальній таблиці всередині бази даних, де зберігаються дані всіх користувачів. Якщо у таблиці є користувач із зазначеними даними, сервер формує HTML-документ і відправляє браузеру, як у прикладі вище. Якщо такого користувача немає або деталі входу неправильні, в движку сайту прописаний спеціальний сценарій на цей випадок — надіслати повідомлення з помилкою, яку браузер відобразить на екрані.

На різні випадки життя у протоколі HTTP передбачено десятки різних помилок. Докладніше читайте про них у нашій окремій статті:

Коди помилок HTTP

Що таке HTTPs

HTTPs — це розширення для протоколу HTTP, що робить його безпечним. Справа в тому, що дані передаються за HTTP у відкритому вигляді. Це створює ризик розкрити конфіденційну інформацію, якщо хтось перехопить трафік. HTTPs вирішує цю проблему, додаючи в початковий протокол можливість шифрування даних.

Абревіатура HTTPs розшифровується як HyperText Transfer Protocol Secure — безпечний протокол передачі гіпертексту. Безпека досягається за рахунок об’єднання протоколу HTTP з криптографическим протоколом TLS.

Як працює HTTPs

Протокол HTTPs передбачає, що під час встановлення з’єднання клієнт і сервер домовляються про використання тимчасового ключа, з якого зашифровувати і розшифровувати повідомлення. Цей ключ називається «сеансовий», тому що діє лише протягом поточного сеансу на сайті. Кожного сеансу генерується новий ключ.

Метод, у якому для зашифрування та розшифровування повідомлень використовується один ключ, називається «симетричне шифрування». Головна його складність — безпечно передати ключ від однієї сторони іншій. У роботі HTTPs протоколу для цього використовується ще один метод — «асиметричне шифрування».

Суть асиметричного шифрування полягає в тому, що використовуються два ключі: один вміє лише зашифровувати повідомлення (відкритий ключ), інший — лише розшифровувати (закритий ключ). Обом ключами володіє одна сторона, в нашому випадку сервер. Закритий ключ зберігається в секреті, а відкритий можна вільно передавати клієнтам, щоб вони з його допомогою зашифровували повідомлення та надсилали їх на сервер.

Якщо відкинути технічні нюанси і спростити, схематично встановлення безпечного з’єднання виглядає так:

Принцип роботи HTTP vs HTTPs для чайників

Закономірне питання — чому не використовувати лише асиметричне шифрування, навіщо задіяти одразу два методи? Справа в швидкості: симетричне шифрування швидше за асиметричне, на розшифрування і зашифрування повідомлень потрібно менше обчислювальних ресурсів.

Чим відрізняється HTTP від HTTPs

HTTP використовує в роботі порт 80, а HTTPs — порт 443. Але головна відмінність цих двох протоколів у тому, що HTTPs безпечно передавати особисті дані, а HTTP — ні.

Якщо зловмисник перехопить трафік, надісланий за протоколом HTTP, він зможе побачити все, що ви ввели на сайті: контактну інформацію, логін та пароль, деталі банківської картки. Щоб не розкрити конфіденційні дані, потрібно вводити їх тільки на сайтах, які працюють по HTTPs. Використовуваний протокол завжди можна переглянути в адресному рядку браузера.

Як протоколи HTTP та HTTPs виглядають у браузері
У Google Chrome протокол за замовчуванням прихований. Щоб його побачити, клацніть двічі всередині адресного рядка

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

У результаті зашифровані деталі банківської карти будуть виглядати приблизно отак:

ed1e1176bf04218beb8ae742ff708a201a9d1cb57dd5f2e70dc3239208d23705f7a3aae3e315c4df6d73c871b66c4995cce5f19738f731cd580e4c65358bb9e351c801c3b3c8e6089863deaa39b887eaea4c200b21fa86a24021c317bb5c9d8b3f76bdf9f3a7d26781a22402f0e4f41ca831b6d2da9e1e6878c34c79ddc7959af3ae9fc2ba0cfff1c0180a7e0f637f1aa3988a03c78f850098df1d4ba006edaec9025b24507d552d5dfe7625e7b81d817b5882b2b19bb95f05d54b27ed4ac70ed75cdd01732755d21ed92612c44197f875cddf3f7aa1d60e435ce1492679b9d60c4b8538f52408f321711ac1d2daa6dbbc33dc655abca10e2f5fd3ff27823995b9dcdb62c0bafc1963ab539ccb466f1c140479df34b0005f578f72fcdd76b17391332037b801f74f733a08

Як перевести сайт з HTTP на HTTPs

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

Як протокол HTTP виглядає у браузері
Так у браузері Google Chrome виглядає сайт, який використовує HTTP

Ще один фактор — HTTPs впливає на позицію у пошуковій видачі Google. При інших рівних сайт, який працює за HTTP, буде ранжуватися нижче, ніж сайт, який працює за HTTPs.

Заява в офіційному блозі Google

Щоб перевести сайт із HTTP на HTTPs, потрібно встановити SSL-сертифікат на хостингу. Це щось на зразок цифрового посвідчення сайту. Його можна купити окремо або отримати в подарунок при покупці хостингу.

Що далі

Розкажіть у коментарях, чи все було зрозуміло у статті. Можливо, у вас виникли якісь запитання або ви знайшли помилку.

Якщо хочете дізнатися про сертифікати: Які бувають SSL-сертифікати

Якщо цікаво почитати про інші протоколи: Що таке FTP