Что такое протокол HTTPS и чем он отличается от HTTP?

«Что такое протокол HTTPS и чем он отличается от HTTP?» — вопрос из категории HTTP и веб-протоколы, который задают на 27% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

HTTPS (HyperText Transfer Protocol Secure) — это расширение HTTP, которое добавляет шифрование и аутентификацию с помощью протоколов TLS/SSL.

Основные отличия от HTTP:

  1. Шифрование (Конфиденциальность): Все данные (заголовки, тело запроса) передаются в зашифрованном виде, защищая их от перехвата.
  2. Целостность данных: TLS гарантирует, что данные не были изменены при передаче.
  3. Аутентификация: Сертификат позволяет клиенту убедиться, что он подключился к настоящему серверу, а не к подменённому.

Практическое значение:

  • Браузеры помечают сайты без HTTPS как «Небезопасные».
  • Обязателен для сайтов, обрабатывающих пароли, платёжную информацию или любые персональные данные.
  • Использует порт 443 по умолчанию (в отличие от порта 80 для HTTP).

Пример проверки использования HTTPS в Python:

import requests

response = requests.get('https://example.com')
# Проверяем, что запрос был выполнен по HTTPS
print(response.url.startswith('https://'))  # True
# Проверяем данные сертификата
print(response.request.url)  # 'https://example.com/'