HTTP — это протокол передачи гипертекста, используемый для передачи данных в исходном виде между клиентом (браузером) и сервером. Данные не шифруются, что делает их уязвимыми для перехвата и мошенничества.
HTTPS — это защищенная версия HTTP. Он использует протоколы TLS или SSL поверх HTTP для шифрования данных. Это обеспечивает конфиденциальность, целостность и подлинность передаваемых данных.
Основные отличия:
- Безопасность: HTTPS использует шифрование, HTTP — нет.
- Порт по умолчанию: HTTP использует порт 80, HTTPS — порт 443.
- Сертификат: HTTPS требует наличия SSL/TLS сертификата на сервере для установления защищенного соединения.
- Адресная строка: В браузере URL для HTTPS начинается с
https:// и часто отображается значок замка. Для HTTP — http://.
- Применимость: HTTPS критически важен для сайтов, обрабатывающих конфиденциальную информацию (электронная коммерция, банкинг, личные данные). HTTP подходит для статичных сайтов без обмена чувствительными данными.
Пример установления защищенного соединения HTTPS:
- Клиент отправляет запрос на HTTPS-сайт.
- Сервер отправляет клиенту свой SSL/TLS сертификат и публичный ключ.
- Клиент проверяет сертификат (подлинность, срок действия).
- Клиент генерирует симметричный ключ сессии, шифрует его публичным ключом сервера и отправляет серверу.
- Сервер расшифровывает симметричный ключ сессии своим приватным ключом.
- Клиент и сервер используют этот симметричный ключ для шифрования и расшифровки всех последующих данных в этой сессии.