На каком уровне находится HTTP в модели OSI?

Некоторые говорят, что HTTP находится на сеансовом уровне в модели OSI.

Но в «Компьютерной сети» Таненбаума говорится, что HTTP находится на прикладном уровне в модели OSI.

Также некоторые говорили, что HTTP не имеет концепции сеанса. Означает ли это, что HTTP не может быть на сеансовом уровне?

Так находится ли HTTP на сеансовом уровне? Спасибо.

Обновление: для HTTP/2 какой уровень в модели OSI?


person Tim    schedule 26.07.2016    source источник
comment
то, что в обеих спецификациях используется слово сеанс, не означает, что сеанс означает одно и то же в обоих. это синоним.   -  person Marc B    schedule 26.07.2016


Ответы (2)


На каком уровне находится HTTP в модели OSI?

Он находится на прикладном уровне. См. следующие цитаты из RFC 7230, одного из документов, который в настоящее время определяет протокол HTTP/1.1. :

Протокол передачи гипертекста (HTTP) — это протокол запроса/ответа на уровне приложений без сохранения состояния, который использует расширяемую семантику и полезные данные с самоописанием для гибкого взаимодействия с сетевыми информационными гипертекстовыми системами.

HTTP — это протокол запроса/ответа без сохранения состояния, который работает путем обмена сообщениями через надежное «соединение» транспортного или сеансового уровня.


Кроме того, некоторые говорят, что в HTTP нет концепции сеанса. Означает ли это, что HTTP не может быть на сеансовом уровне?

Как упоминалось ранее в цитатах из RFC 7230, протокол HTTP не имеет состояния. strong>, где каждый запрос от клиента к серверу (должен) содержать всю информацию, необходимую для понимания запроса, без использования какого-либо сохраненного контекста на сервере.

RFC 6265 определяет некоторые механизмы управления состоянием в HTTP, такие как файлы cookie, позволяющие управлять сеансом на сервере. сторона (но это никоим образом не делает HTTP с сохранением состояния).

Концепция сеанса в HTTP отличается от концепции сеанса в модели OSI. В любом случае, HTTP — это протокол прикладного уровня.

Модель OSI

Модель OSI (Взаимодействие открытых систем) — это концептуальная модель, созданная Международной организацией по стандартизации, которая позволяет различным системам связи обмениваться данными с использованием стандартных протоколов.

Он обеспечивает стандарт для различных компьютерных систем, чтобы они могли общаться друг с другом, и может рассматриваться как универсальный язык для компьютерных сетей. Он основан на концепции разделения системы связи на семь абстрактных уровней, каждый из которых накладывается на предыдущий.

Следующая картинка, заимствованная из Cloudflare, хорошо иллюстрирует ну на что похожа модель OSI:

Модель OSI

Прикладной уровень — это единственный уровень, который напрямую взаимодействует с данными от пользователя. Таким образом, программные приложения, такие как веб-браузеры и почтовые клиенты, полагаются на прикладной уровень для инициирования связи.

Но следует четко указать, что клиентские программные приложения не являются частью прикладного уровня: скорее, прикладной уровень отвечает за протоколы (такие как HTTP и SMTP) и манипулирование данными, на которые опирается программное обеспечение. предоставлять значимые данные пользователю.

Модель OSI против модели TCP/IP

Хотя модель OSI является исчерпывающей эталонной структурой для общих сетевых систем, важно отметить, что современный Интернет не строго следует модели OSI.

Современный Интернет более тесно связан с более простым набором интернет-протоколов, который широко известен как TCP/IP, поскольку основными протоколами в наборе являются TCP (Протокол управления передачей) и IP (Интернет-протокол).

На следующем рисунке показано, как модели OSI и TCP/IP соотносятся друг с другом:

Модель OSI против TCP/IP


Обновление: этот раздел был добавлен в связи с вознаграждением, начатым noɥʇʎԀʎzɐɹƆ, который запросил обновите этот ответ, указав подробности HTTP/2.

Несмотря на кавычки документа, определяющего протокол HTTP/1.1, все вышесказанное относится и к HTTP/2. См. следующую цитату из RFC 7540, документа, определяющего протокол HTTP/2:

Соединение HTTP/2 — это протокол прикладного уровня, работающий поверх соединения TCP. Клиент является инициатором TCP-соединения.

person cassiomolin    schedule 20.02.2019
comment
Я хочу подчеркнуть, что модель OSI является эталонной моделью. Это не стандарт, на котором можно основываться, особенно для уровней с 5 по 7. HTTP также можно рассматривать как протокол уровня представления. Сам по себе он не взаимодействует с компьютером, но HTML-агент использует HTTP для передачи данных. - person inetphantom; 31.10.2019
comment
Итак, правильно ли считать, что HTTP отвечает как за прикладной уровень, так и за уровень представления? Кодирование и шифрование (https) являются частью уровня представления, верно? и они настроены как часть протокола http/s - person Mikel San Vicente; 26.03.2021
comment
@MikelSanVcente Не совсем. Уровень представления не существует в модели TPP/IP. - person cassiomolin; 26.03.2021
comment
верно, а если мы говорим о модели OSI? концептуально это будет и то, и другое? - person Mikel San Vicente; 26.03.2021
comment
@MikelSanVicente В модели OSI уровень представления предназначен для протоколов сжатия и шифрования. Некоторые протоколы, подходящие для этого уровня, — это SSL (уровень защищенных сокетов) и TLS (безопасность транспортного уровня). HTTP/HTTPS находятся поверх них, все еще на уровне представления. - person cassiomolin; 26.03.2021
comment
правильно, я понимаю, что вы имеете в виду. Спасибо - person Mikel San Vicente; 26.03.2021

Протокол передачи гипертекста (HTTP) – это веб-протокол прикладного уровня, лежащий в основе Интернета. Он определен в [RFC 1945] и [RFC 2616].

person Aman Gupta    schedule 20.02.2019
comment
Они устарели почти полвека назад в соответствии с RFC 7230, хотя и 7235. - person Quentin; 20.02.2019
comment
Протокол передачи гипертекста (HTTP) — это протокол прикладного уровня без сохранения состояния ‹----, написанный в RFC 7230. - person Aman Gupta; 20.02.2019
comment
Это не делает ваши ссылки менее устаревшими. - person Quentin; 20.02.2019