7.1 KiB
title, status, type, tags, created, updated, source, aliases
| title | status | type | tags | created | updated | source | aliases | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| HTTP, HTTPS и HTTP/3 | processing | concept |
|
2026-06-04 | 2026-06-05 | 00_базовые_понятия.pdf |
|
HTTP, HTTPS и HTTP/3
HTTP (HyperText Transfer Protocol) — прикладной протокол для доступа к ресурсам WWW. Клиент и сервер обмениваются отдельными сообщениями: клиент отправляет HTTP-запрос, сервер возвращает HTTP-ответ.
Главное
- HTTP сам по себе не хранит состояние между запросами. Сессии поверх HTTP обычно поддерживаются через cookies или токены.
- HTTP/1.0 часто открывал новое TCP-соединение на каждый обмен запросом и ответом.
- HTTP/1.1 добавил постоянные соединения и конвейерную обработку.
- HTTP/2 использует бинарные фреймы, сжатие заголовков и мультиплексирование нескольких потоков в одном TCP-соединении.
- HTTPS — это HTTP поверх TLS. Он защищает конфиденциальность, целостность и аутентичность соединения.
- HTTP/3 переносит семантику HTTP на QUIC поверх UDP и уменьшает проблему head-of-line blocking.
HTTP-запрос
Стартовая строка запроса состоит из метода, цели запроса и версии протокола:
GET /index.html HTTP/1.1
Основные методы:
| Метод | Что делает |
|---|---|
GET |
Получить ресурс; параметры часто передаются в query string. |
POST |
Отправить данные на сервер: форма, JSON, файл. |
HEAD |
Получить только заголовки, как у GET, без тела ответа. |
PUT |
Создать или полностью заменить ресурс. |
PATCH |
Частично изменить ресурс. |
DELETE |
Удалить ресурс. |
OPTIONS |
Узнать доступные методы/возможности сервера. |
HTTP-сообщение
И запрос, и ответ имеют общую структуру:
- Стартовая строка.
- Заголовки.
- Пустая строка.
- Необязательное тело.
Заголовок записывается как Имя-Заголовка: значение. Имя не чувствительно к регистру.
Частые заголовки запроса:
Host— конкретный домен или IP, к которому обращается клиент.User-Agent— сведения о клиенте: браузер, ОС, версия.Accept— какие типы данных клиент готов принять.Cookie— cookies клиента.Authorization— данные аутентификации, например Bearer-токен.
HTTP-ответ
Строка статуса ответа содержит версию протокола, код состояния и текстовое пояснение:
HTTP/1.1 200 OK
Классы кодов:
1xx— информационные.2xx— успешная обработка.3xx— перенаправление.4xx— ошибка клиента.5xx— ошибка сервера.
Частые коды:
200 OK— запрос успешно обработан.302 Found— временное перенаправление.400 Bad Request— некорректный запрос.403 Forbidden— доступ запрещён.404 Not Found— ресурс не найден.500 Internal Server Error— внутренняя ошибка сервера.
HTTPS
HTTPS использует TLS поверх TCP-соединения. Порт по умолчанию — 443, у обычного HTTP — 80.
Базовый смысл TLS:
- сервер предъявляет сертификат;
- клиент проверяет сертификат через центр сертификации;
- стороны согласуют ключи;
- дальнейший трафик шифруется и защищается от подмены.
SSL — устаревшее название семейства протоколов, в современных системах фактически используется TLS, но термин "SSL-сертификат" всё ещё распространён.
HTTP/3
HTTP/3 работает поверх QUIC, а QUIC работает поверх UDP. QUIC объединяет надёжную доставку, шифрование TLS 1.3 и управление потоками.
Ключевые отличия:
| HTTP/2 | HTTP/3 |
|---|---|
| Поверх TCP | Поверх UDP/QUIC |
| TLS-хендшейк отдельно | TLS 1.3 встроен в QUIC |
| Потеря TCP-пакета может блокировать все потоки | Потеря пакета влияет только на конкретный поток |
| Соединение привязано к IP/порту | QUIC поддерживает connection migration через connection ID |
HTTP/3 не меняет смысл методов, заголовков и кодов ответа. Меняется транспортный слой.
Простыми словами для экзамена
HTTP — это правила разговора браузера и сервера.
Запрос отвечает на вопрос: "что клиент хочет?". Ответ отвечает: "что сервер вернул?".
Пример GET:
GET /posts/?page=2 HTTP/1.1
Host: example.com
Пример POST:
POST /login/ HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
username=ivan&password=secret
Главное различие:
GETобычно получает данные; параметры видны в URL.POSTобычно отправляет данные в теле запроса; подходит для форм, создания объектов, логина.
HTTPS — это не "другой HTTP", а HTTP внутри защищённого TLS-соединения. Порт HTTP — 80, HTTPS — 443.
HTTP/3 использует QUIC поверх UDP. Для экзамена достаточно помнить: HTTP/3 уменьшает задержки и проблему блокировки потоков при потере пакетов.
Связи
- TCP vs UDP
- IP-адрес
- DNS
- URI, URL, URN
- Сетевые порты