Прежде всего, извините за неудобства. Я не знаю, правильный ли это форум, но я прочитал несколько тем, и есть несколько очень опытных людей по этому вопросу, так что, возможно, один из них может мне помочь.
Я провожу исследования для университета. В рамках этого исследования я хочу указать, что происходит, когда вы используете метод HTTP-запроса Get против сервера. Для этого я использовал curl -v в терминале Ubuntu против веб-домена.
Ниже прилагается классификация, которую я установил:
введите описание изображения здесь
-Синий прямоугольник включает протокол установления связи TLS с ALPN.
-Зеленое поле включает сообщение запроса, которое клиент отправляет на сервер, а также поля заголовка запроса.
-Красное поле включает ответное сообщение и поля заголовка, которые сервер отправляет клиенту.
-Последняя коробка включает «тело полезной нагрузки».
У меня два вопроса:
Линия между зеленым и красным квадратами, в которой говорится: «Состояние подключения изменено (обновлено MAX_CONCURRENT_STREAMS)», в какой раздел я должен ее поместить? В зеленом разделе, как будто это часть полей заголовка запроса, которые клиент отправляет на сервер? Или это линия, которая должна иметь отдельный цвет?
За исключением строки «Состояние подключения изменено (обновлено MAX_CONCURRENT_STREAMS)», согласны ли вы с сделанной мной классификацией? Как вы думаете, здесь ошибка?
Спасибо большое за помощь исследователю;)
Извините, если в формулировке ошибка. Английский не мой родной язык.
HTTP / 2 (и скоро будет выпущен HTTP / 3) теперь существует на двух разных уровнях:
GET
и HTTP-заголовки и тела.Если мы будем думать о ваших Зеленых и Красных частях как о частях 1, то Connection state changed...
сообщение является частью 2. Независимо от того, хотите ли вы включить их в HTTP-сообщения (клиент или сервер), решать вам, поскольку технически они являются частью HTTP / 2. Лично я, вероятно, отнесу когда к отдельным управляющим сообщениям.
Также некоторые сообщения после рукопожатия TLS и до первого GET, вероятно, принадлежат к той же категории - начиная с начала строки. Using HTTP/2, server...
до начала строки включительно Using Stream ID: 1...
. Хотя рукопожатие TLS используется для согласования HTTP / 2 (через расширение ALPN), эти сообщения являются тем, что происходит после, и не имеют ничего общего с рукопожатием TLS. Они являются частью протокола HTTP / 2, а не протокола TLS.
Вопрос 2 первый: выглядит правдоподобно.
Вопрос 1: Это сообщение принадлежит к той же группе, что и исходные сообщения curl. Он регистрирует изменение состояния клиента curl, а строки выше и ниже, очевидно, являются заголовками протокола HTTP.