Чем отличается http от https

r/>HTTP (HyperText Transfer Protocol) и HTTPS (HyperText Transfer Protocol Secure) — это протоколы, используемые для передачи данных между веб-браузером пользователя и сервером. Они являются основой работы интернета, особенно веб-сайтов. Главное различие между ними заключается в уровне безопасности передаваемых данных, но также имеются отличия в используемых портах, методах шифрования, принципах идентификации и распространении.

📌 1. Основы HTTP

HTTP — это текстовый протокол прикладного уровня, разработанный для передачи гипертекста (HTML, CSS, JS и т. д.) между клиентом (чаще всего браузером) и сервером. Работает по принципу запрос-ответ.

  • Клиент отправляет HTTP-запрос на сервер (например, GET, POST).

  • Сервер отвечает HTTP-ответом (с кодом ответа, заголовками и телом).

HTTP — незащищённый протокол. Это означает, что все данные, передаваемые через HTTP, отправляются в открытом виде (plain text). Если кто-то перехватит соединение (например, с помощью сниффера), он сможет прочитать содержимое.

🔒 2. Основы HTTPS

HTTPS — это расширение HTTP, которое использует протокол шифрования TLS (раньше — SSL) поверх стандартного HTTP. Благодаря этому весь трафик между клиентом и сервером становится зашифрованным и защищённым от перехвата, подделки и вмешательства.

  • Все запросы и ответы проходят через TLS-шифрование.

  • Сервер предъявляет цифровой сертификат, подтверждающий его подлинность.

  • Подключение происходит через защищённый порт (443).

⚙️ 3. Механизм работы HTTPS

  1. Инициация соединения:

    • Клиент инициирует соединение и запрашивает HTTPS.

    • Сервер отправляет SSL/TLS-сертификат, выданный удостоверяющим центром (CA).

  2. Проверка подлинности:

    • Клиент (браузер) проверяет, действительно ли сертификат валиден и выдан авторитетным центром сертификации.
  3. Установка защищённого канала:

    • Происходит TLS Handshake — обмен ключами для создания симметричного шифрования.

    • После завершения рукопожатия данные шифруются и передаются через защищённый канал.

🔑 4. Шифрование и безопасность

Критерий HTTP HTTPS
Передача данных Открытая, в незашифрованном виде Шифруется с использованием TLS/SSL
--- --- ---
Защита от перехвата Нет Да, защита от атак типа «man-in-the-middle»
--- --- ---
Аутентификация сервера Отсутствует Есть: сервер должен предъявить действующий SSL/TLS-сертификат
--- --- ---
Целостность данных Не гарантируется Обеспечивается проверками (MAC, HMAC и др.)
--- --- ---
Устойчивость к атаке Уязвим к MITM, DNS-spoofing, sniffing Защищён от большинства атак, если используется надёжный TLS-стек
--- --- ---

🧱 5. Используемые порты

  • HTTP использует порт 80 по умолчанию.

  • HTTPS использует порт 443.

Это значит, что при подключении к серверу браузер (или клиентское приложение) по умолчанию обращается к соответствующему порту в зависимости от протокола.

🧾 6. SSL/TLS-сертификаты

SSL/TLS-сертификат — это криптографически подписанный файл, содержащий:

  • публичный ключ сервера,

  • имя домена (или список доменов),

  • срок действия,

  • имя центра сертификации (CA).

Сертификаты бывают:

  • DV (Domain Validation) — минимальная проверка,

  • OV (Organization Validation) — проверка организации,

  • EV (Extended Validation) — расширенная валидация, зелёная строка в адресной строке браузера.

⚠️ 7. Влияние HTTPS на SEO и UX

  1. Поисковые системы (Google, Bing):

    • HTTPS-сайты имеют преимущество в ранжировании.

    • HTTP-сайты могут быть понижены в выдаче.

  2. Браузеры:

    • Все современные браузеры помечают HTTP-сайты как «Not Secure».

    • HTTPS-сайты получают иконку замка 🔒.

  3. Пользовательское доверие:

    • HTTPS сигнализирует пользователям о безопасности.

    • Особенно важно для сайтов с авторизацией, платёжными формами, формами входа и т. д.

📊 8. Производительность

Ранее считалось, что HTTPS медленнее, из-за затрат на шифрование и рукопожатие TLS. Однако:

  • Современные реализации TLS (например, TLS 1.3) очень быстрые.

  • Браузеры используют сессионное кэширование и возобновление сеансов.

  • Комбинация с HTTP/2 и QUIC делает HTTPS-сайты быстрее, чем HTTP.

🔍 9. Распространение HTTPS

Ранее HTTPS использовали только банки и онлайн-магазины. Сейчас же:

  • HTTPS используется по умолчанию.

  • Сертификаты можно получить бесплатно через Let’s Encrypt.

  • Большинство хостингов и CDN (например, Cloudflare) предоставляют HTTPS "из коробки".

📘 10. Пример различий в адресной строке:

HTTP:

http://example.com/login

HTTPS:

https://example.com/login

В первом случае логин и пароль передаются в открытом виде. Во втором — шифруются.

📎 11. Пример атаки при HTTP

Атака "man-in-the-middle" (MITM):

  • Злоумышленник перехватывает незашифрованный трафик между пользователем и сервером.

  • Может подменить содержимое страницы, внедрить вредоносный код или украсть данные (пароли, куки, токены).

С HTTPS:

  • Даже если MITM подключается, трафик зашифрован.

  • Без приватного ключа злоумышленник не сможет расшифровать данные.

📄 12. Заголовки, специфичные для HTTPS

С помощью HTTPS можно использовать специальные HTTP-заголовки:

  • Strict-Transport-Security (HSTS) — заставляет браузер всегда использовать HTTPS.

  • Content-Security-Policy — защита от XSS и других атак.

  • Secure и HttpOnly для куки.

Таким образом, HTTPS представляет собой современный стандарт защищённой передачи данных в интернете, дополняющий HTTP механизмами шифрования, проверки подлинности и защиты целостности.