Skip to main content

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

1. Базова різниця

ХарактеристикаHTTPHTTPS
РозшифруванняHyperText Transfer ProtocolHyperText Transfer Protocol Secure
БезпекаНе шифрує даніШифрує дані (TLS/SSL)
Порт за замовчуванням80443
Префікс в URLhttp://https://
СертифікатНе потрібенПотрібен SSL/TLS-сертифікат
Використовується дляВнутрішні мережі, тести, старі сайтиУсі сучасні сайти й API

Простіше кажучи: HTTPS = HTTP + шифрування + автентифікація + захист цілісності.

2. Що таке HTTP

HTTP - це простий текстовий протокол для передачі даних між клієнтом (браузером, застосунком) і сервером. Коли ти надсилаєш запит GET /, браузер відкрито надсилає його по мережі, а сервер відповідає текстом.

Приклад (у вигляді "сирих" даних):

javascript
GET /login HTTP/1.1 Host: example.com

Відповідь:

javascript
HTTP/1.1 200 OK Content-Type: text/html

Мінус: усе передається у відкритому вигляді, включно з паролями, cookies і токенами - будь-хто, хто перехопить трафік (наприклад, через Wi-Fi), зможе прочитати чи підмінити дані.

3. Що додає HTTPS

HTTPS використовує TLS (Transport Layer Security) - це шар між TCP і HTTP, який:

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

4. Як працює HTTPS (у 3 кроки)

  1. Клієнт підключається до сервера на порту 443 і каже: "Хочу встановити захищене з'єднання".
  2. Сервер надсилає свій TLS-сертифікат, виданий довіреним центром (CA).
  3. 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. Технічно

КомпонентHTTPHTTPS
Протокол рівня OSIПрикладнийПрикладний (поверх TLS)
Порт80443
ШифруванняНемаєTLS (AES, RSA, ECDHE та ін.)
Перевірка цілісностіНемаєЄ (HMAC)
ПродуктивністьШвидше (без шифрування)Трохи повільніше, але безпечно
СумісністьУсі клієнтиУсі сучасні клієнти

9. У Node.js це виглядає так

  • HTTP-сервер:

    javascript
    import http from 'node:http'; http.createServer((req, res) => res.end('Hello HTTP')).listen(80);
  • HTTPS-сервер:

    javascript
    import 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 і забезпечує безпеку всієї веб-інфраструктури.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.