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 года российским сайтам выдает сертификаты Национальный удостоверяющий центр Минцифры; их поддерживают Яндекс Браузер и некоторые другие. Для государственных систем применяются также шифрование и сертификаты по ГОСТ.