Auto | arch-x1: 2026-06-04 09:06:53

This commit is contained in:
Dmitry
2026-06-04 09:06:53 +03:00
parent bfa7cf419b
commit 3c1743632e
7 changed files with 417 additions and 7 deletions
@@ -0,0 +1,123 @@
---
title: HTTP, HTTPS и HTTP/3
status: seed
type: concept
tags: [web, network, networking, protocols, http, https, http3]
created: 2026-06-04
updated: 2026-06-04
source: "[[00_базовые_понятия.pdf]]"
aliases:
- HTTP, HTTPS и HTTP/3
---
# 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-запрос
Стартовая строка запроса состоит из метода, цели запроса и версии протокола:
```http
GET /index.html HTTP/1.1
```
Основные методы:
| Метод | Что делает |
|-------|------------|
| `GET` | Получить ресурс; параметры часто передаются в query string. |
| `POST` | Отправить данные на сервер: форма, JSON, файл. |
| `HEAD` | Получить только заголовки, как у `GET`, без тела ответа. |
| `PUT` | Создать или полностью заменить ресурс. |
| `PATCH` | Частично изменить ресурс. |
| `DELETE` | Удалить ресурс. |
| `OPTIONS` | Узнать доступные методы/возможности сервера. |
## HTTP-сообщение
И запрос, и ответ имеют общую структуру:
1. Стартовая строка.
2. Заголовки.
3. Пустая строка.
4. Необязательное тело.
Заголовок записывается как `Имя-Заголовка: значение`. Имя не чувствительно к регистру.
Частые заголовки запроса:
- `Host` — конкретный домен или IP, к которому обращается клиент.
- `User-Agent` — сведения о клиенте: браузер, ОС, версия.
- `Accept` — какие типы данных клиент готов принять.
- `Cookie` — cookies клиента.
- `Authorization` — данные аутентификации, например Bearer-токен.
## HTTP-ответ
Строка статуса ответа содержит версию протокола, код состояния и текстовое пояснение:
```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 не меняет смысл методов, заголовков и кодов ответа. Меняется транспортный слой.
## Связи
- [[TCP vs UDP]]
- [[IP-адрес]]
- [[DNS]]
- [[URI, URL, URN]]
- [[Сетевые порты]]
@@ -0,0 +1,75 @@
---
title: URI, URL, URN
status: seed
type: concept
tags: [web, network, networking, uri, url, urn]
created: 2026-06-04
updated: 2026-06-04
source: "[[00_базовые_понятия.pdf]]"
aliases:
- URI, URL, URN
---
# URI, URL, URN
URI, URL и URN — способы идентифицировать ресурс. Для экзамена важно различать: URL указывает, где и как получить ресурс; URN даёт устойчивое имя; URI — общее понятие.
## URL
URL (Uniform Resource Locator) — адрес ресурса в сети и способ его получения.
Синтаксис:
```text
схема://хост:порт/путь?параметры#фрагмент
```
Пример:
```text
https://home.mephi.ru/study_groups?level=1&organization_id=1&term_id=20
```
Компоненты:
- схема — чаще всего `http` или `https`;
- хост — домен или IP-адрес;
- порт — необязателен, если используется порт по умолчанию;
- путь — расположение ресурса на сервере;
- query string — параметры после `?`;
- фрагмент — часть документа после `#`, часто соответствует `id` HTML-элемента.
## URN
URN (Uniform Resource Name) — имя ресурса без указания его сетевого расположения.
Синтаксис:
```text
urn:NID:NSS
```
Пример:
```text
urn:uuid:d5aa821e-52bb-4f7e-a782-7662ed5eaf5c
```
URN полезен, когда ресурс должен сохранять идентичность независимо от места хранения. Пример: ISBN книги.
## URI
URI (Uniform Resource Identifier) — общий идентификатор ресурса. URI может быть URL, URN или совмещать оба подхода.
Синтаксис:
```text
схема:[//[пользователь:пароль@]хост[:порт]][/]путь[?запрос][#фрагмент]
```
Главное правило: все URL являются URI, но не все URI являются URL.
## Связи
- [[HTTP, HTTPS и HTTP3]]
- [[DNS]]
- [[IP-адрес]]