Основные понятия HTTP

Hypertext Transfer Protocol (HTTP) — это протокол уровня приложения (т.е. прикладной по 7-OSI).

Характеристики:

Виды:

HTTP/1.1 — базовый.

HTTP/2 — представил мультиплексированный сеансовый уровень поверх существующих протоколов TLS и TCP для обмена параллельными сообщениями

HTTP/3 — обеспечивает большую независимость для параллельных сообщений, используя QUIC в качестве безопасного мультиплексированного транспорта по UDP вместо TCP.


Основная семантика

Схема взаимодействия в HTTP: Клиент создает сообщения-запросы, которые сообщают о его намерениях, и направляет эти сообщения на идентифицированный исходный сервер. Сервер прослушивает запросы, анализирует каждое полученное сообщение, интерпретирует семантику сообщения относительно идентифицированного целевого ресурса и отвечает на этот запрос одним или несколькими ответными сообщениями. Клиент проверяет полученные ответы, чтобы увидеть, были ли выполнены его намерения, определяя, что делать дальше, на основе кодов состояния и полученного контента.

Семантика HTTP включает: 


Основные понятия

1. Resources. Цель HTTP-запроса называется «ресурсом». Большинство ресурсов идентифицируются с помощью унифицированного идентификатора ресурса (URI).

2. Representations. «Представление» — это информация, состояние ресурса. Состоит из неограниченного потока данных представления и метаданных.

3. Connections, Clients, and Servers. HTTP — клиент-серверный протокол, работающий через «соединение» транспортного или сеансового уровня. Разница между клиентом и сервером на уровне ПО только в абстрактной роли — какая программа слушает запросы и дает ответы, а какая делает запросы. HTTP не хранит состояние — семантику каждого сообщения запроса можно понять изолированно.

4. Messages. Запрос содержит метод, заголовки-модификаторы, метаданные о клиенте и запросе, данные для обработки. Ответ содержит код статуса, заголовки, метаданные ресурса и представления, содержимое в соответствии с кодом статуса.

5. User Agents. Любые инициаторы запроса. Обычно веб-браузеры и поисковые роботы :)

6. Origin Server. ПО, отвечающее на запросы.

7. Intermediaries. Посредники. Существует три распространенных формы HTTP-"посредника": прокси (для безопасных перенаправлений, общих кешей и т.д.), шлюз (для инкапсуляции, балансировки нагрузки и т.д.) и туннель (слепой ретранслятор сообщений). Ещё бывают посредники нижних уровней OSI, которые могут генерить уязвимости (например, перехватчики TCP-пакетов на уровне точек доступа к сети)

8. Caches. Это локальное хранилище прошлых ответов, для экономии сетевого трафика.


Пример:

Запрос

GET /hello.txt HTTP/1.1 

User-Agent: curl/7.64.1 

Host: www.example.com 

Accept-Language: en, mi

Ответ

HTTP/1.1 200 OK 

Дата: Пн, 27 Июл 2009 12:28:53 GMT 

Сервер: Apache 

Последнее изменение: Ср, 22 Июл 2009 19:15:56 GMT 

ETag: "34aa387-d-1568eb00" 

Accept-Ranges: байты 

Content-Length: 51 

Vary: Accept-Encoding 

Content-Type: text/plain 

Привет, мир! Мое ​​содержимое включает завершающий CRLF.


Источник: RFC9110, Internet Engineering Task Force (IETF)

Другие заметки

← К автору