Ответ
Нет, для работы чистого HTTP SSL/TLS не требуется — это незашифрованный протокол. Однако в современной разработке использование HTTPS (HTTP поверх SSL/TLS) является обязательным best practice.
Проблемы HTTP (без SSL/TLS):
- Конфиденциальность: все данные (логины, пароли, cookies) передаются в открытом тексте.
- Целостность: данные могут быть незаметно изменены при передаче (MITM-атака).
- Аутентичность: нельзя гарантировать, что вы подключены к настоящему серверу.
Пример незащищённого HTTP-запроса (видимого для перехватчика):
POST /login HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
username=admin&password=123456
HTTPS решает эти проблемы, обеспечивая:
- Шифрование передаваемых данных.
- Целостность данных с помощью кодов аутентификации сообщений (MAC).
- Аутентификацию сервера (а иногда и клиента) с помощью цифровых сертификатов.