HTTPS: защита соединения с сайтом
HTTPS защищает канал между браузером и сервером — но не заменяет безопасность самого приложения.
HTTPS — использование протокола HTTP поверх TLS (Transport Layer Security): те же сообщения запрос-ответ, но соединение, по которому они передаются, защищено. Это важно, потому что обычный HTTP-запрос идёт по сети без транспортного шифрования: любой, кто технически способен перехватить трафик между браузером и сервером (например, в общей Wi-Fi сети), может его прочитать или незаметно изменить.
| HTTP | HTTPS | |
|---|---|---|
| Данные в пути | Без шифрования | Зашифрованы |
| Можно ли перехватить и прочитать | Да, технически возможно | Практически нет — без ключа шифрования содержимое нечитаемо |
| Можно ли незаметно подменить данные в пути | Да | Нет — подмена нарушает проверку целостности, и соединение считается недействительным |
| Подтверждение личности сервера | Нет | Сертификат подтверждает, что сервер — тот, за кого себя выдаёт |
TLS решает три задачи: конфиденциальность (данные в пути нечитаемы для посторонних), целостность (получатель может обнаружить, что данные были изменены в пути) и подлинность сервера (сертификат подтверждает, что вы говорите именно с тем сервером, а не с подменённым).
Мы намеренно не разбираем математику шифрования — для веб-разработки на уровне этой главы достаточно знать, зачем HTTPS нужен и что именно он защищает. В разработке локально (раздел 22.34) чаще всего используют обычный HTTP на своём компьютере — шифровать канал внутри одной машины не требуется; HTTPS становится нужен, когда приложение реально развёрнуто и доступно через интернет.