30.葫蘆娃大戰(zhàn)Http2

0 葫蘆娃之亂
http1.1末年,葫蘆娃與妖精割據(jù)一方,他們各為其主、連年爭戰(zhàn),搞得民不聊生。為了提高生活質(zhì)量,http當(dāng)局振臂一呼,組建新的權(quán)術(shù)部門http2,在葫蘆娃與妖精之間合縱連橫,最終成功拿捏膨脹過頭的葫蘆娃以及占山為王的妖精,史稱葫蘆娃之亂。
1 header壓縮

針對葫蘆娃膨脹問題,http1.1當(dāng)局也是焦頭爛額,緊急出臺了壓縮葫蘆娃的方案供妖精們參考。比如咱們在http的response header中如果看到了content-encoding: gzip,那就表明這只葫蘆娃是被gzip壓縮過的。要想知道它原來的樣子,需要先解壓釋放出來才行。
但是創(chuàng)業(yè)初期,條件有限,妖精只學(xué)會了如何壓縮body,卻忘記了壓縮header,導(dǎo)致web上流轉(zhuǎn)的全是大頭娃娃。 直到http2攜帶新算法hpack橫空出世,才算推動了對header的壓縮進程,自此葫蘆娃再膨脹也可輕松拿捏 。
2 二進制分幀層
為了促進葫蘆娃之間的友好交流,各地修建信息高速公路,允許各家的葫蘆娃們線上交流。但問題是有些家庭他不體面,生葫蘆娃那都是一串一串的,所謂葫蘆娃葫蘆娃,一根藤上七朵花。無奈之下,http1.1當(dāng)局規(guī)定每家最多同時只允許6條葫蘆娃出門,多余的只能在家等待排隊。
為了盡盡快出門,葫蘆娃們也是奇招盡出,比如就有家庭把7個葫蘆娃合一個葫蘆小金剛的(雪碧圖)。http當(dāng)局顯然也感覺到這不是長久之計,每家出動6個葫蘆娃就是占用server的6條tcp連接,而tcp有慢啟動問題,這也意味著網(wǎng)絡(luò)帶寬的利用率不高。于經(jīng)過仔細(xì)借鑒,http當(dāng)局推出了基于二進制分幀層的多路復(fù)用方案。
具體就是把葫蘆娃們 打散成Frame,變成散裝葫蘆娃,到達目的地后再把葫蘆娃組裝出來 。這樣就取消了每家最多同時6條葫蘆娃出門的限制,也因此不再需要搶占6條tcp連接。通過多路復(fù)用同一條tcp連接,可以提高網(wǎng)絡(luò)帶寬的利用率,一家人出門終于可以整整齊齊了。
葫蘆娃:每家限6人不公平。http當(dāng)局:還沒有限號呢,你就偷著樂吧
3 https加密
鑒于各地妖患橫行,為了保護野生葫蘆娃們的出行安全,http當(dāng)局引入了SSL化妝技術(shù),把http強化為https。只要出門前化上妝,路上就絕對不會被妖精識別出來。時至今日,出門前化個妝,已經(jīng)成為野外生存的必備技能,深受廣大葫蘆娃特別是小姐姐們的喜愛。簡單不方便,安全又放心。畢竟 出門在外,安全第一,友誼第二,比賽第三 嘛。
雖然http當(dāng)局規(guī)定http2與SSL各賣各的,但眾所周知:規(guī)定是規(guī)定,執(zhí)行是執(zhí)行。一方面占據(jù)瀏覽器6成江山chrome對所有不帶SSL證書的網(wǎng)站持續(xù)打壓,另一方面后端扛把子golang規(guī)定:想上http2必須出示SSL證書。時至今日,強買強賣已成定局,http當(dāng)局也是睜一只眼閉一只眼。
4 妖精:想一起來打葫蘆娃娃嘛
請加公眾號panda-unique,拉你入群呀 ~
