Без HTTP в інтернеті перестали б працювати сайти, а без HTTPs на них було б небезпечно залишати особисті дані. Докладніше про те, що таке HTTP і HTTPs, у чому різниця між цими двома технологіями та як вони влаштовані — у статті.
Зміст
- Що таке HTTP
- Як працює HTTP
- Що таке HTTPs
- Як працює HTTPs
- Відмінності HTTP від HTTPs
- Як перекласти сайт на HTTPs
Що таке HTTP
HTTP — це протокол передачі даних, на основі якого працює всесвітня павутина. Завдяки цьому протоколу ми можемо заходити на сайти в браузері та взаємодіяти з ними: переходити з однієї сторінки на іншу, завантажувати файли та переглядати зображення, обмінюватися повідомленнями та оплачувати покупки.
Абревіатура HTTP розшифровується як HyperText Transfer Protocol — протокол передачі гіпертексту (тобто текстових документів, які містять посилання інші документи). Нині за його допомогою передають будь-які формати даних.
Як працює HTTP
Протокол HTTP використовує в роботі технологію клієнт-сервер: клієнт відправляє на сервер запит, де спеціальна програма його обробляє, формує відповідь і повертає клієнту.
У ролі клієнта зазвичай виступає браузер, але його функції може виконувати й інша програма. Наприклад, пошуковий робот, який подорожує сайтами і сканує їх для індексації в пошукових системах. У ролі сервера виступає веб-сервер — спеціальна програма на фізичному сервері, де зберігається сайт.
Наприклад, щоб відобразити будь-яку сторінку, ваш браузер надсилає серверу запит на отримання HTML-документа з її вмістом. Далі браузер вивчає документ і запитує додаткові файли, необхідні для відображення сторінки: стилі елементів, зображення, скрипти. Потім браузер збирає все це разом, як зазначено в HTML-документі, та виводить на екран комп’ютера результат.
Інший приклад — коли браузер надсилає якісь дані серверу. Скажімо, логін та пароль для входу до облікового запису. Щоб сформувати HTML-документ з головною сторінкою облікового запису, сервер перевіряє деталі входу в спеціальній таблиці всередині бази даних, де зберігаються дані всіх користувачів. Якщо у таблиці є користувач із зазначеними даними, сервер формує HTML-документ і відправляє браузеру, як у прикладі вище. Якщо такого користувача немає або деталі входу неправильні, в движку сайту прописаний спеціальний сценарій на цей випадок — надіслати повідомлення з помилкою, яку браузер відобразить на екрані.
На різні випадки життя у протоколі HTTP передбачено десятки різних помилок. Докладніше читайте про них у нашій окремій статті:
Що таке HTTPs
HTTPs — це розширення для протоколу HTTP, що робить його безпечним. Справа в тому, що дані передаються за HTTP у відкритому вигляді. Це створює ризик розкрити конфіденційну інформацію, якщо хтось перехопить трафік. HTTPs вирішує цю проблему, додаючи в початковий протокол можливість шифрування даних.
Абревіатура HTTPs розшифровується як HyperText Transfer Protocol Secure — безпечний протокол передачі гіпертексту. Безпека досягається за рахунок об’єднання протоколу HTTP з криптографическим протоколом TLS.
Як працює HTTPs
Протокол HTTPs передбачає, що під час встановлення з’єднання клієнт і сервер домовляються про використання тимчасового ключа, за допомогою якого будуть зашифровувати та розшифровувати повідомлення. Цей ключ називається «сеансовий», тому що діє лише протягом поточного сеансу на сайті. Кожного сеансу генерується новий ключ.
Метод, у якому для зашифрування та розшифровування повідомлень використовується один ключ, називається «симетричне шифрування». Головна його складність — безпечно передати ключ від однієї сторони іншій. У роботі HTTPs протоколу для цього використовується ще один метод — «асиметричне шифрування».
Суть асиметричного шифрування полягає в тому, що використовуються два ключі: один вміє лише зашифровувати повідомлення (відкритий ключ), інший — лише розшифровувати (закритий ключ). Обома ключами володіє одна сторона, в нашому випадку сервер. Закритий ключ зберігається в секреті, а відкритий можна вільно передавати клієнтам, щоб вони з його допомогою зашифровували повідомлення та надсилали їх на сервер.
Якщо відкинути технічні нюанси і спростити, схематично встановлення безпечного з’єднання виглядає так:
Закономірне питання — чому не використовувати лише асиметричне шифрування, навіщо задіяти одразу два методи? Справа в швидкості: симетричне шифрування швидше за асиметричне, на розшифрування і зашифрування повідомлень потрібно менше обчислювальних ресурсів.
Чим відрізняється HTTP від HTTPs
HTTP використовує в роботі порт 80, а HTTPs — порт 443. Але головна відмінність цих двох протоколів у тому, що HTTPs безпечно передавати особисті дані, а HTTP — ні.
Якщо зловмисник перехопить трафік, надісланий за протоколом HTTP, він зможе побачити все, що ви ввели на сайті: контактну інформацію, логін та пароль, деталі банківської картки. Щоб не розкрити конфіденційні дані, потрібно вводити їх тільки на сайтах, які працюють по HTTPs. За яким саме протоколом встановлено з’єднання з сайтом завжди можна переглянути в адресному рядку браузера.
Якщо перехоплять трафік, надісланий за протоколом HTTPs, повідомлення буде виглядати як набір випадкових символів. Щоб його прочитати, потрібен ключ. Але їх спеціально роблять такими довгими, що навіть у найпотужнішого комп’ютера пішли б роки безперервної роботи, щоб їх підібрати.
У результаті зашифровані деталі банківської карти будуть виглядати приблизно отак:
ed1e1176bf04218beb8ae742ff708a201a9d1cb57dd5f2e70dc3239208d23705f7a3aae3e315c4df6d73c871b66c4995cce5f19738f731cd580e4c65358bb9e351c801c3b3c8e6089863deaa39b887eaea4c200b21fa86a24021c317bb5c9d8b3f76bdf9f3a7d26781a22402f0e4f41ca831b6d2da9e1e6878c34c79ddc7959af3ae9fc2ba0cfff1c0180a7e0f637f1aa3988a03c78f850098df1d4ba006edaec9025b24507d552d5dfe7625e7b81d817b5882b2b19bb95f05d54b27ed4ac70ed75cdd01732755d21ed92612c44197f875cddf3f7aa1d60e435ce1492679b9d60c4b8538f52408f321711ac1d2daa6dbbc33dc655abca10e2f5fd3ff27823995b9dcdb62c0bafc1963ab539ccb466f1c140479df34b0005f578f72fcdd76b17391332037b801f74f733a08
Як перевести сайт з HTTP на HTTPs
Це варто зробити власникам сайтів, де відвідувачі вводять особисті дані. Тому що браузери позначають сайти, які приймають дані за протоколом HTTP, як небезпечні. Така позначка може негативно вплинути на бажання відвідувачів взаємодіяти із сайтом.
Ще один фактор — HTTPs впливає на позицію у пошуковій видачі Google. При інших рівних сайт, який працює за HTTP, буде ранжуватися нижче, ніж сайт, який працює за HTTPs.
Заява про це в офіційному блозі Google
Щоб перевести сайт із HTTP на HTTPs, потрібно встановити SSL-сертифікат на хостингу. Це щось на зразок цифрового посвідчення сайту. Його можна купити окремо або отримати в подарунок при покупці хостингу.
Що далі
Розкажіть у коментарях, чи все було зрозуміло у статті. Можливо, у вас виникли якісь запитання або ви знайшли помилку.
Якщо хочете дізнатися більше про SSL-сертифікати:
Якщо цікаво почитати про інші протоколи