亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

HTTP/2協議中二進制楨的示例分析

發布時間:2021-11-18 09:33:40 來源:億速云 閱讀:330 作者:小新 欄目:大數據

這篇文章將為大家詳細講解有關HTTP/2協議中二進制楨的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。


 
一、楨格式

HTTP/2協議中二進制楨的示例分析

 
1.楨格式說明

楨的格式由9個字節的楨頭和楨數據Payload構成;楨頭由3個字節的楨長度、1個字節的楨類型、1個字節的標志位、4個字節的流標識符(含1位R保留位)構成。

楨長度
楨長度由24位3個字節大小表示。取值在2^14(16,384)與2^24-1(16,777,215)之間;可在接收方SETTINGS_MAX_FRAME_SIZE設置。

楨類型
楨類型用8位1個字節表示,說明楨的格式和語義。具體楨的類型詳見下文介紹。

標志位
標志位用8位1個字節表示。例如:END_HEADERS標志表示頭數據傳輸結束;END_STREAM表示單方向數據傳輸結束。

R
R即1位保留字段,未定義,以0x0結尾。

流標識符
流標識符用31位表示,上限為2^31。接收方可以根據流標識ID進行組裝,同一個Stream中內Frame必須是有序的,所以接受方根據流ID可以拼接成有序的流。另外:客戶端發起的流用奇數表識;服務器發起的流用偶數標識。正因為使用了流標識,接收端可以將并發的Stream進行有序拼接,實現多路復用。

楨數據
傳輸的數據內容Payload由楨類型決定。

 
2.Wireshark抓包截圖

HTTP/2協議中二進制楨的示例分析

 
二、楨類型
 1.DATA楨

數據楨主要存儲HTTP/2數據報文,具體格式如下圖:

HTTP/2協議中二進制楨的示例分析

字段含義
Padding: 8位填充字節,填充字節可以改變DATA楨的大小,可以啟到安全性功能
Pad Length: 填充字節的長度;PADDED標記為true時表明有填充字節
Data: 具體傳輸的數據

Wireshark抓包截圖

HTTP/2協議中二進制楨的示例分析

 2.Header楨

Header楨的結構如下圖:

HTTP/2協議中二進制楨的示例分析

字段含義
Pad Length:填充字節的長度,填充字節含義同上述Data楨
E:表識流是否為獨占的。設置PRIORITY時才有值
Stream Dependency:該流的依賴流。設置PRIORITY時才有值
Weight:流優先級權重。設置PRIORITY時才有值
Header Block Fragment:Header塊片段
Padding:填充的字節長度

Wireshark抓包截圖

HTTP/2協議中二進制楨的示例分析


 
 3.PRIORITY幀

發送流的優先級,格式如下,各字段含義與抓包截圖見Header楨。

HTTP/2協議中二進制楨的示例分析

 4.RST_STREAM幀

當發生錯誤或者取消時,用于終止一個流。

HTTP/2協議中二進制楨的示例分析

字段含義
Error Code: 32位錯誤代碼,指發生錯誤的原因。

Wireshark抓包截圖

HTTP/2協議中二進制楨的示例分析


 
 5.SETTINGS幀

用于傳達連接端點之間的配置參數。
SETTINGS幀的標記ACK為0表示被對等的SETTINGS楨使用;ACK不為0時表示FRAME_SIZE_ERROR的連接錯誤。

楨格式

HTTP/2協議中二進制楨的示例分析

Identifier參數含義
SETTINGS_HEADER_TABLE_SIZE:通知接收方header解碼表(解碼header塊)的最大尺寸
SETTINGS_ENABLE_PUSH:初始值1表示允許服務端推送,0表示不允許服務端推送
SETTINGS_MAX_CONCURRENT_STREAMS:最大的并發流數(發送者)
SETTINGS_INITIAL_WINDOW_SIZE:stream窗口大小,默認為65535
SETTINGS_MAX_FRAME_SIZE:楨負載大小
SETTINGS_MAX_HEADER_LIST_SIZE:Header列表的最大值

Wireshark抓包截圖

HTTP/2協議中二進制楨的示例分析


 
 6.PUSH_PROMISE幀

服務端向客戶端推送的楨,客戶端可以返回RST_STREAM拒絕。
圖中R為保留位。

HTTP/2協議中二進制楨的示例分析

 7.PING幀

心跳檢測,測量發送往還時間,確定連接是否正常。
標記ACK為0即false表示為PING楨的響應(response);1即True表示PING楨。
楨格式

HTTP/2協議中二進制楨的示例分析

Wireshark抓包截圖

HTTP/2協議中二進制楨的示例分析

 8.GOAWAY幀

用于關閉連接或者發出錯誤,允許停止接受新的流并完成前面的流處理。
楨格式

HTTP/2協議中二進制楨的示例分析

Wireshark抓包截圖

HTTP/2協議中二進制楨的示例分析

 9.WINDOW_UPDATE幀

用于連接和流的流量控制。

HTTP/2協議中二進制楨的示例分析

Wireshark抓包截圖

HTTP/2協議中二進制楨的示例分析

 
10.CONTINUATION

CONTINUATION一種持續楨用于繼續傳輸Header頭塊片段。通常在Header塊比較大,在HEADERS、PUSH_PROMISE、CONTINUATION楨之后繼續傳輸。 

關于“HTTP/2協議中二進制楨的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西乡县| 红安县| 织金县| 宣城市| 淮滨县| 上高县| 三门县| 宽甸| 晋城| 碌曲县| 济源市| 浙江省| 金平| 鄄城县| 达拉特旗| 道孚县| 孝义市| 云阳县| 肇源县| 高密市| 靖江市| 大新县| 水城县| 岳普湖县| 台安县| 夏津县| 耒阳市| 昌都县| 昆明市| 沅江市| 荔浦县| 博白县| 延津县| 辽源市| 体育| 聂荣县| 武宣县| 寿阳县| 罗平县| 荆门市| 隆林|