Чим HTTPS відрізняється від HTTP?
1. Базова різниця
| Характеристика | HTTP | HTTPS |
|---|---|---|
| Розшифрування | HyperText Transfer Protocol | HyperText Transfer Protocol Secure |
| Безпека | Не шифрує дані | Шифрує дані (TLS/SSL) |
| Порт за замовчуванням | 80 | 443 |
| Префікс в URL | http:// | https:// |
| Сертифікат | Не потрібен | Потрібен SSL/TLS-сертифікат |
| Використовується для | Внутрішні мережі, тести, старі сайти | Усі сучасні сайти й API |
Простіше кажучи: HTTPS = HTTP + шифрування + автентифікація + захист цілісності.
2. Що таке HTTP
HTTP - це простий текстовий протокол для передачі даних між клієнтом (браузером, застосунком) і сервером.
Коли ти надсилаєш запит GET /, браузер відкрито надсилає його по мережі, а сервер відповідає текстом.
Приклад (у вигляді "сирих" даних):
GET /login HTTP/1.1
Host: example.comВідповідь:
HTTP/1.1 200 OK
Content-Type: text/htmlМінус: усе передається у відкритому вигляді, включно з паролями, cookies і токенами - будь-хто, хто перехопить трафік (наприклад, через Wi-Fi), зможе прочитати чи підмінити дані.
3. Що додає HTTPS
HTTPS використовує TLS (Transport Layer Security) - це шар між TCP і HTTP, який:
- шифрує дані, що передаються (ніхто не може їх прочитати);
- автентифікує сервер (гарантія, що ти спілкуєшся зі справжнім сайтом);
- перевіряє цілісність даних (ніхто не підмінив повідомлення дорогою).
4. Як працює HTTPS (у 3 кроки)
- Клієнт підключається до сервера на порту 443 і каже: "Хочу встановити захищене з'єднання".
- Сервер надсилає свій TLS-сертифікат, виданий довіреним центром (CA).
- TLS-рукостискання (handshake):
- клієнт перевіряє сертифікат,
- сторони домовляються про алгоритми шифрування,
- створюють спільний сеансовий ключ,
- тепер увесь трафік шифрується цим ключем.
Далі HTTP-запити йдуть всередині зашифрованого тунелю TLS. Ззовні видно лише те, що ти підключений до сайту, але не те, що саме ти передаєш.
5. Навіщо потрібен сертифікат
SSL/TLS-сертифікат:
- підтверджує, що сайт - справжній (його видав довірений центр, наприклад Let's Encrypt);
- містить публічний ключ для встановлення захищеного каналу;
- має термін дії (зазвичай 90 днів чи 1 рік).
Без сертифіката браузери:
- показують червоне попередження "Не захищено";
- можуть блокувати доступ до сайту.
6. Чому HTTPS - стандарт сьогодні
- Захист логінів, паролів, платежів, токенів і cookies.
- SEO: Google понижає сайти без HTTPS.
- Сучасні API, Service Workers, PWA - вимагають HTTPS.
- Усі браузери за замовчуванням переходять на
https://.
7. Аналогія
HTTP - це листівка: усі на пошті можуть її прочитати. HTTPS - це конверт із замком: лише адресат може відкрити й зрозуміти, що всередині.
8. Технічно
| Компонент | HTTP | HTTPS |
|---|---|---|
| Протокол рівня OSI | Прикладний | Прикладний (поверх TLS) |
| Порт | 80 | 443 |
| Шифрування | Немає | TLS (AES, RSA, ECDHE та ін.) |
| Перевірка цілісності | Немає | Є (HMAC) |
| Продуктивність | Швидше (без шифрування) | Трохи повільніше, але безпечно |
| Сумісність | Усі клієнти | Усі сучасні клієнти |
9. У Node.js це виглядає так
-
HTTP-сервер:
javascriptimport http from 'node:http'; http.createServer((req, res) => res.end('Hello HTTP')).listen(80); -
HTTPS-сервер:
javascriptimport https from 'node:https'; import fs from 'node:fs'; const options = { key: fs.readFileSync('key.pem'), cert: fs.readFileSync('cert.pem'), }; https.createServer(options, (req, res) => { res.end('Hello HTTPS'); }).listen(443);
10. Коротко
HTTP - передає дані відкритим текстом. HTTPS - використовує шифрування (TLS) і сертифікат для безпечної передачі.
Сьогодні HTTPS - обов'язковий стандарт: він захищає користувачів, підвищує довіру, покращує SEO і забезпечує безпеку всієї веб-інфраструктури.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.