Что такое HTTP и HTTPS? Чем они отличаются?
HTTP (HyperText Transfer Protocol) — протокол прикладного уровня для передачи гипертекстовых документов. HTTPS — его защищённое расширение, использующее шифрование через TLS/SSL.
Основой HTTP является технология «клиент-сервер»:
- Клиенты (потребители) — инициируют соединение и посылают запрос
- Серверы (поставщики) — ожидают соединения, обрабатывают запрос и возвращают ответ
HTTP не сохраняет состояния (stateless) — каждая пара «запрос-ответ» независима. Для идентификации ресурсов используются глобальные URI.
Структура HTTP-сообщения
- Стартовая строка (starting line) — определяет тип сообщения (метод и URL для запроса, код статуса для ответа)
- Заголовки (headers) — характеризуют тело сообщения, параметры передачи и прочие метаданные
- Тело сообщения (message body) — непосредственно данные, отделённое от заголовков пустой строкой
Заголовки и тело могут отсутствовать, но стартовая строка обязательна.
Различия HTTP и HTTPS
| Характеристика | HTTP | HTTPS |
|---|---|---|
| Шифрование | Нет | TLS/SSL |
| Порт по умолчанию | 80 | 443 |
| Сертификат | Не требуется | Требуется SSL/TLS-сертификат |
| Скорость | Быстрее (нет шифрования) | Чуть медленнее (overhead на шифрование) |
| Безопасность | Данные передаются открыто | Защита от перехвата и подмены |
| SEO | Понижение в ранжировании | Приоритет в поисковых системах |
HTTPS «упаковывает» данные в криптографический протокол TLS (ранее SSL), что обеспечивает защиту от атак, основанных на прослушивании сетевого соединения, при условии, что сертификат сервера валиден и ему доверяют.
На собеседовании: упомяните структуру HTTP-сообщения (стартовая строка, заголовки, тело), stateless-природу протокола и разницу портов (80 vs 443). Частая ошибка — говорить «SSL» вместо «TLS»: SSL устарел, современный стандарт — TLS 1.2/1.3.