HTTP/HTTPS

Протокол, по которому браузер и приложения обмениваются данными с сайтами; HTTPS — тот же протокол внутри зашифрованного соединения.

HTTP (HyperText Transfer Protocol) — протокол, на котором работает веб. Браузер или приложение отправляет запрос — «дай страницу», «сохрани заказ», — а сервер возвращает ответ с кодом результата и данными. HTTPS — тот же HTTP, но внутри защищенного соединения TLS: посторонние не могут ни прочитать, ни подменить передаваемые данные.

Как выглядит обмен

GET /glossary/ HTTP/1.1
Host: kpr-it.com
Accept: text/html

HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Cache-Control: max-age=600

<!doctype html>...

Запрос состоит из метода (GET), адреса и заголовков; ответ — из кода состояния, заголовков и тела. Методы — GET, POST, PUT, DELETE — те же, на которых строится REST API.

Коды ответов

  • 2xx — успех: 200 OK, 201 Created.
  • 3xx — перенаправление: 301 — адрес переехал навсегда (так сохраняют поисковый вес при смене адресов), 304 — не изменилось, бери из кэша.
  • 4xx — ошибка клиента: 400 — неверный запрос, 401 — нужен вход, 403 — нет прав, 404 — не найдено, 429 — слишком много запросов.
  • 5xx — ошибка сервера: 500 — внутренняя ошибка, 502 и 504 — прокси не дождался ответа приложения.

Версии протокола

  • HTTP/1.1 (1997) — текстовый протокол, одно соединение обрабатывает запросы по очереди.
  • HTTP/2 (2015) — двоичный формат, много запросов одновременно по одному соединению, сжатие заголовков.
  • HTTP/3 (2022) — работает поверх протокола QUIC на UDP: соединение устанавливается быстрее и лучше переносит потери пакетов в мобильных сетях. Подробнее о TCP и UDP — в термине TCP/IP.

Почему только HTTPS

По обычному HTTP пароль, номер карты или содержимое формы видны любому участку сети между пользователем и сервером, а ответ можно подменить. Браузеры помечают такие сайты как небезопасные, а поисковики учитывают HTTPS при ранжировании. Заголовок HSTS дополнительно запрещает браузеру открывать сайт по незащищенному протоколу.

Сертификаты в России

Для HTTPS сайту нужен сертификат. Помимо международных удостоверяющих центров, с 2022 года российским сайтам выдает сертификаты Национальный удостоверяющий центр Минцифры; их поддерживают Яндекс Браузер и некоторые другие. Для государственных систем применяются также шифрование и сертификаты по ГОСТ.