Ответ
HTTP (HyperText Transfer Protocol) — протокол для передачи данных в открытом, незашифрованном виде. Все данные (логины, пароли, cookies) передаются как обычный текст.
HTTPS (HTTP Secure) — это HTTP, работающий поверх криптографических протоколов SSL/TLS. Он обеспечивает:
- Шифрование — защищает данные от перехвата и чтения.
- Целостность — данные не могут быть изменены при передаче без обнаружения.
- Аутентификацию — подтверждает, что вы подключены к настоящему серверу (через SSL-сертификаты).
| Технические отличия: | Аспект | HTTP | HTTPS |
|---|---|---|---|
| Порт по умолчанию | 80 | 443 | |
| Протокол | Прикладной уровень (7) | Прикладной уровень + SSL/TLS (между транспортным и прикладным) | |
| URL-схема | http:// |
https:// |
|
| Сертификат | Не требуется | Требуется SSL-сертификат от доверенного центра (CA) |
Почему HTTPS обязателен сегодня:
- Защита пользовательских данных.
- Требование для современных браузерных API (Geolocation, Push-уведомления).
- Фактор ранжирования в поисковых системах (Google).
- Предотвращение атак "человек посередине" (MITM).
Пример проверки в Java:
URL url = new URL("https://secure-site.com");
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
// Соединение автоматически шифруется. Можно проверить сертификат:
conn.connect();
Certificate[] certs = conn.getServerCertificates();
// Проверка срока действия, издателя и т.д.