99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

http2協(xié)議

2018-02-24 16:00 更新

6. http2協(xié)議

背景介紹就到此為止了,歷史的腳步將我們推到了今天這一步。現(xiàn)在讓我們深入看看該協(xié)議的規(guī)范,看看那些細(xì)節(jié)和概念。

6.1. 二進(jìn)制

http2是一個二進(jìn)制協(xié)議。

仔細(xì)想想,如果你是一個曾經(jīng)跟互聯(lián)網(wǎng)協(xié)議打過交道,那你很可能本能反對二進(jìn)制協(xié)議,你甚至準(zhǔn)備好了一大堆理由來證明基于文本/ascii的協(xié)議是多么的有用,正如你曾無數(shù)次地通過手工輸入HTTP請求來通過telnet遠(yuǎn)程登陸。

二進(jìn)制的http2可以使成幀更便捷。在HTTP1.1和其他基于文本的協(xié)議中,識別幀的起始和結(jié)束相當(dāng)復(fù)雜。而在移除掉可選的空白符和其他冗余后,實現(xiàn)這些會變得更容易。

另一方面,從幀結(jié)構(gòu)中分離出協(xié)議本身的部分也變得更容易。而在HTTP1中,各個部分相互交織,一團(tuán)亂麻。

協(xié)議的壓縮特點和其經(jīng)常運行在TLS之上的事實讓純文本的屬性值變得毫無作用,畢竟也無法從數(shù)據(jù)流上看到文本。我們需要習(xí)慣于使用類似Wireshark的工具來從協(xié)議層面對http2一探究竟。

調(diào)試這樣的協(xié)議將需要curl這樣的工具,要進(jìn)一步地分析網(wǎng)絡(luò)數(shù)據(jù)流需要類似Wireshark的http2解析器。

6.2. 二進(jìn)制格式

http2發(fā)送二進(jìn)制幀。幀的類型有很多種,但他們都有如下的公共字段:

Type, Length, Flags, Steam Identifier和frame payload

BREACH和CRIME攻擊的隱患。通過向流中注入一些已知的文本來觀察輸出的變化,攻擊者可以推出原始發(fā)送的數(shù)據(jù)。

為協(xié)議的動態(tài)內(nèi)容進(jìn)行壓縮并使其免于被攻擊,需要仔細(xì)且全面的考慮。而這正是HTTPbis小組嘗試去做的。

HPACKHTTP/2頭部壓縮,顧名思義它是一個專為http2頭部設(shè)計的壓縮格式。確切的講,它甚至被制定寫入在另外一個單獨的草案里。新的格式同時引入了一些其他對策讓破解壓縮變得困難,例如采用幀的可選填充和用一個bit作為標(biāo)記,來讓中間人不壓縮指定的頭部。

用Roberto Peon(HPACK的設(shè)計者之一)的話說,“HPACK旨在提供一個一致性的實現(xiàn)使信息量的損失盡可能少,使編解碼快速而方便,使接收方能控制壓縮文本的大小,允許代理重新建立索引(如,通過代理在前后端共享狀態(tài)),以及對哈夫曼編碼串的更快速比較”。

6.6. 重置 - 后悔藥

HTTP 1.1的有一個缺點是:當(dāng)一個含有確切值的Content-Length的HTTP消息被送出之后,你就很難中斷它了。當(dāng)然,通常你可以斷開整個TCP鏈接(但也不總是可以這樣),但這樣導(dǎo)致的代價就是需要重新通過三次握手建立一個新的TCP連接。

一個更好的方案是只終止當(dāng)前傳輸?shù)南⒉⒅匦掳l(fā)送一個新的。在http2里面,我們可以通過發(fā)送RST_STREAM幀來實現(xiàn)這種需求,從而避免浪費帶寬和中斷已有的連接。

6.7. 服務(wù)器推送

這個功能通常被稱作“緩存推送”。主要的思想是:當(dāng)一個客戶端請求資源X,而服務(wù)器知道它很可能也需要資源Z的情況下,服務(wù)器可以在客戶端發(fā)送請求前,主動將資源Z推送給客戶端。這個功能幫助客戶端將Z放進(jìn)緩存以備將來之需。

服務(wù)器推送需要客戶端顯式的允許服務(wù)器提供該功能。但即使如此,客戶端依然能自主選擇是否需要中斷該推送的流。如果不需要的話,客戶端可以通過發(fā)送一個RST_STREAM幀來中止。

6.8. 流量控制

http2上面每個流都擁有自己的公示的流量窗口,它可以限制另一端發(fā)送數(shù)據(jù)。如果你正好知道SSH的工作原理的話,這兩者非常相似。

對于每個流來說,兩端都必須告訴對方自己還有更多的空間來接受新的數(shù)據(jù),而在該窗口被擴(kuò)大前,另一端只被允許發(fā)送這么多數(shù)據(jù)。只有數(shù)據(jù)幀受流量控制。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號