Это один из наиболее частых вопросов, которые я встречаю на занятиях про API от наших студентов. Его же спрашивают на собеседованиях. Поэтому давайте разберёмся, в чём же отличия.
HTTP - это протокол прикладного уровня.
Он включает в себя варианты использования:
👉 HTTP — данные идут «в открытом виде»
Любой, кто перехватил трафик, увидит весь запрос и ответ как текст.
Если трафик в HTTP (незащищённый), то перехватчик сможет видеть:
🔺 Полный URL (включая query-параметры)
🔺 Все HTTP-заголовки (включая Authorization, Cookie, User-Agent)
🔺 Тело запроса/ответа — JSON, формы, файлы.
❗️ То есть любые передаваемые пароли, токены, номера карт, персональные данные будут перехвачены.
👉 HTTPS — тот же HTTP поверх шифрованного канала TLS
Перехватчик трафика не увидит содержимого запросов и ответов - оно зашифровано, он увидит только:
🔺 линию связи: IP-адрес сервера, порт (обычно 443), объём и тайминги пакетов.
🔺 может увидеть SNI (Server Name Indication) - имя хоста, переданное открыто в TLS ClientHello (в большинстве реализаций)
🔺 НЕ видит содержимое заголовков и тела запросов - они зашифрованы. Токены/пароли/JSON недоступны.
❗️ При перехвате трафика все персональные данные будут защищены.
👉 Как перехватывают трафик?
⚪ Открытая Wi-Fi сеть (public hotspot)
Пользователь подключается к общему Wi-Fi, злоумышленник в той же сети запускает сниффер.
Без HTTPS — все данные видно.
С HTTPS — трафик зашифрован.
⚪ Компрометация роутера / провайдера
Подменённый DNS или перенаправление на прокси. Может потребоваться поддельный сертификат.
⚪ Браузерные расширения / вредоносное ПО
Может читать/перехватывать запросы на клиенте до шифрования (например, JS-обработчики, extensions).
⚪ Атакующий выдает себя за шлюз в локальной сети (ARP poisoning) и проксирует (перенаправляет) трафик через себя.
⚪ И другие способы атак.
Чтобы обеспечить работу HTTPS, на сервер должны установить сертификаты SSL/TLS
Без них HTTPS просто не сможет работать и будет просто HTTP.
#RestApiGA #АрхитектураGA
