HTTP і HTTPS: що змінюється, коли сайт захищений
Кожна адреса в браузері починається з http:// або https://, і різниця в одній літері — це різниця між листівкою й запечатаним конвертом. HTTP — протокол, якою браузер і…
Оновлено:
Кожна адреса в браузері починається з http:// або https://, і різниця в одній літері — це різниця між листівкою й запечатаним конвертом. HTTP — протокол, якою браузер і сервер обмінюються сторінками; HTTPS — той самий протокол, загорнутий у шифрування TLS. Ця стаття пояснює, як влаштований HTTP-запит, що саме додає HTTPS, чому браузери сьогодні позначають звичайний HTTP як «незахищений», і що робити власнику сайту, щоб його сторінки не мали змішаного вмісту.
Як працює HTTP
HTTP — текстовий протокол «запит — відповідь». Браузер надсилає запит:
GET /articles/ HTTP/1.1
Host: versuss.space
Accept: text/html
User-Agent: Mozilla/5.0 ...
Cookie: session=7f3a9c1e
Сервер відповідає кодом статусу, заголовками й тілом:
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Cache-Control: max-age=600
Content-Length: 18422
<!doctype html>...
Методи описують намір: GET — отримати, POST — надіслати дані (форма, вхід), PUT/PATCH — змінити, DELETE — видалити. Коди статусу: 2xx — успіх, 3xx — перенаправлення (301 назавжди, 302 тимчасово), 4xx — помилка клієнта (404 не знайдено, 403 заборонено, 401 потрібна автентифікація), 5xx — помилка сервера. Заголовки несуть метадані: тип вмісту, кешування, cookie, стиснення, мову. Протокол не має стану — кожен запит незалежний, тому для «пам’яті» використовують cookie.
Версії: HTTP/1.1 (1997) відкриває окреме з’єднання на кілька запитів; HTTP/2 (2015) мультиплексує багато запитів в одному з’єднанні й стискає заголовки; HTTP/3 (2022) працює поверх QUIC (UDP), швидше встановлює з’єднання й не гальмує все через один втрачений пакет. HTTP/2 і HTTP/3 браузери підтримують лише через HTTPS.
Що додає HTTPS
HTTPS — це HTTP усередині TLS-з’єднання. Перед першим запитом браузер і сервер виконують рукостискання: сервер надсилає сертифікат, браузер перевіряє його (ім’я, термін, ланцюжок довіри), сторони узгоджують сеансовий ключ за алгоритмом обміну ключами (ECDHE), і далі весь трафік шифрується. TLS гарантує три речі:
- Конфіденційність: провайдер, оператор Wi-Fi, будь-хто на шляху бачить лише домен (через SNI і DNS), але не сторінки, паролі, форми чи cookie.
- Цілісність: ніхто по дорозі не змінить вміст — не вставить рекламу, скрипт чи інше «оновлення».
- Автентичність: сертифікат підтверджує, що сервер справді контролює домен в адресному рядку.
Без HTTPS усе це відсутнє: у відкритій Wi-Fi-мережі cookie сеансу читається за секунди, провайдер вставляє свою рекламу, а сторінка входу може бути підмінена. Тому браузери позначають HTTP «Не захищено», Google надає HTTPS перевагу в ранжуванні, а сучасні API (геолокація, камера, service workers, HTTP/2) працюють лише через HTTPS.
Змішаний вміст
Сторінка завантажена по HTTPS, але тягне картинку, скрипт чи стиль по http:// — це змішаний вміст. Скрипти й стилі по HTTP браузер блокує (їх можна підмінити й отримати контроль над сторінкою), картинки — блокує або показує з попередженням, і замок біля адреси зникає. Типова причина — абсолютні адреси http:// у старому вмісті або сайт за проксі, який не повідомляє WordPress чи іншій CMS, що з’єднання захищене, і вона генерує http://-посилання. Виправлення: відносні адреси або https:// усюди, коректні налаштування «за проксі» в CMS, заголовок Content-Security-Policy: upgrade-insecure-requests, який змушує браузер підняти всі підресурси до HTTPS.
Як перевірити, що з’єднання справді захищене
- Власникам сайтів: HTTPS для всього, з безкоштовним сертифікатом і автооновленням; перенаправлення 301 з HTTP на HTTPS; HSTS, щоб браузери не повертались до HTTP.
- Перевіряйте сайт на змішаний вміст після міграції й після додавання зовнішніх ресурсів.
- Увімкніть HTTP/2 або HTTP/3 на сервері чи CDN — це безкоштовне прискорення.
- Користувачам: не вводьте паролі й дані карток на сторінках без замка; увімкніть режим «лише HTTPS» у браузері.
- Пам’ятайте: замок означає захищене з’єднання з цим доменом, а не чесність його власника — фішингові сайти теж мають HTTPS.
Часті запитання
Чи HTTPS повільніший?
Рукостискання додає один-два обміни при першому з’єднанні, але HTTP/2 і HTTP/3, доступні лише через HTTPS, дають виграш, який це перекриває. На практиці HTTPS-сайт швидший.
Чи бачить провайдер, які сторінки я відкриваю через HTTPS?
Він бачить домен (через DNS і SNI), обсяг і час трафіку, але не адреси сторінок, не вміст, не паролі. Зашифрований DNS і Encrypted Client Hello ховають і домен.
Що означає помилка 502 чи 503?
Сервер (або проксі перед ним) не зміг отримати відповідь від застосунку: він перевантажений, перезапускається або впав. Це проблема сайту, не вашого з’єднання.
HTTP — це розмова, яку чує весь коридор; HTTPS — та сама розмова за зачиненими дверима з перевіреним співрозмовником.
Коротко: HTTP — текстовий протокол запитів і відповідей із методами, кодами статусу й заголовками, без стану. HTTPS загортає його в TLS і дає конфіденційність, цілісність та підтвердження домену через сертифікат; без нього трафік читається й підміняється, а сучасні функції браузера недоступні. Сайтам потрібен HTTPS усюди без змішаного вмісту, а користувачам — звичка перевіряти замок і домен перед введенням даних.