闈㈣瘯瀹橀棶锛氫綘浜嗚ВHTTP2.0鍚楋紵
Posted 鍓嶇绮捐
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了闈㈣瘯瀹橀棶锛氫綘浜嗚ВHTTP2.0鍚楋紵相关的知识,希望对你有一定的参考价值。
鍓嶈█
浠婃棩鏂囩珷鏄敱鎺橀噾鐨? 榛戦噾鍥㈤槦鍒嗕韩鐨勪竴绡囧埄HTTP2.0鐨勬枃绔犮€?/span>
姝f枃浠庝笅闈㈠紑濮嬶綖锝?/p>
浣滀负涓€鍙墠绔紑鍙戰煇讹紝HTTP鏄垜浠煡璇嗗湴鍥鹃噷闈㈠繀涓嶅彲灏戠殑涓€閮ㄥ垎锛屼篃鏄潰璇曞繀闂煡璇嗙偣銆侶TTP2鍙风О鍙互璁╂垜浠殑搴旂敤鏇村揩銆佹洿绠€鍗曘€佹洿绋冲畾锛屽畠瀹岀編瑙e喅浜?.1鐗堟湰鐨勮澶氶棶棰橈紝鏈枃鍜屽ぇ瀹朵竴璧疯亰鑱奌TTP2鐨勬敼杩涚偣銆?/p>
HTTP鍙戝睍鍙?/h2>
姝e紡璁睭TTP2涔嬪墠鎴戜滑鍏堣涓€涓婬TTP鐨勫彂灞曞彶銆?/p>
HTTP/0.9 - 鍗曡鍗忚
HTTP浜?990骞撮棶涓栵紝閭f椂鍊橦TTP闈炲父绠€鍗曪細鍙敮鎸丟ET鏂规硶锛涙病鏈夐閮紱鍙兘鑾峰彇绾枃鏈€?/p>HTTP/1.0 - 鎼缓鍗忚鐨勬鏋?br>1996骞达紝HTTP姝e紡琚綔涓烘爣鍑嗗叕甯冿紝鐗堟湰涓篐TTP/1.0銆?.0鐗堟湰澧炲姞浜嗛閮ㄣ€佺姸鎬佺爜銆佹潈闄愩€佺紦瀛樸€侀暱杩炴帴锛堥粯璁ょ煭杩炴帴锛夌瓑瑙勮寖锛屽彲浠ヨ鎼缓浜嗗崗璁殑鍩烘湰妗嗘灦銆?/p>
HTTP/1.1 - 杩涗竴姝ュ畬鍠?br>1997骞达紝1.1鐗堟湰鎺ヨ傅鑰岃嚦銆?.1鐗堟湰鐨勯噸澶ф敼杩涘湪浜庨粯璁ら暱杩炴帴锛涘己鍒跺鎴风鎻愪緵Host棣栭儴锛涚绾垮寲锛汣ache-Control銆丒Tag绛夌紦瀛樼殑鐩稿叧鎵╁睍銆?/p>
鐩墠瀛樺湪鐨勯棶棰?/h2>
鐜板湪鎴戜滑鍏堜笉鑱奌TTP2, 鐪嬩竴涓婬TTP鍙戝睍鍒?.1瀛樺湪鏈夊摢浜涢棶棰橈細
绾垮ご闃诲锛歍CP杩炴帴涓婂彧鑳藉彂閫佷竴涓姹傦紝鍓嶉潰鐨勮姹傛湭瀹屾垚鍓嶏紝鍚庣画鐨勮姹傞兘鍦ㄦ帓闃熺瓑寰呫€?/p>
澶氫釜TCP杩炴帴
铏界劧HTTP/1.1绠$嚎鍖栧彲浠ユ敮鎸佽姹傚苟鍙戯紝浣嗘槸娴忚鍣ㄥ緢闅惧疄鐜帮紝chrome銆乫irefox绛夐兘绂佺敤浜嗙绾垮寲銆傛墍浠?.1鐗堟湰璇锋眰骞跺彂渚濊禆浜庡涓猅CP杩炴帴锛屽缓绔婽CP杩炴帴鎴愭湰寰堥珮锛岃繕浼氬瓨鍦ㄦ參鍚姩鐨勯棶棰樸€?/p>澶撮儴鍐椾綑锛岄噰鐢ㄦ枃鏈牸寮?br>HTTP/1.X鐗堟湰鏄噰鐢ㄦ枃鏈牸寮忥紝棣栭儴鏈帇缂╋紝鑰屼笖姣忎竴涓姹傞兘浼氬甫涓奵ookie銆乽ser-agent绛夊畬鍏ㄧ浉鍚岀殑棣栭儴銆?/p>
瀹㈡埛绔渶瑕佷富鍔ㄨ姹?/p>
HTTP/2.0鐨勬椂浠f潵浜?/h2>
鍏堟潵涓€涓猟emo鎰熷彈涓€涓嬪悐鐐稿ぉ鐨凥TTP/2.0锛岃繖涓猟emo鏄姞杞?79寮犲浘鐗囷紝鏉ュ姣擧TTP/1.1鍜孒TTP/2.0鐨勬€ц兘銆?nbsp;HTTP/1.1 涓?.0 鎬ц兘姣旇緝
鐞嗚涓奌TTP/2.0浼氭瘮HTTP/1.1鏈変竴鍊嶅鐨勬€ц兘鎻愬崌锛屽急缃戠幆澧冧笅锛屾€ц兘鎻愬崌浼氭洿鍔犳槑鏄俱€?涓嬮潰涓ゅ紶鍥炬槸鎴戝湪璁剧疆缃戠粶鍦╢ast 3G 鍜宻low 3G鐨勬€ц兘瀵规瘮銆?/p>
鏄笉鏄HTTP/2.0鐨勯€熷害浜瀻浜嗗弻鐪硷紵2333锛屾帴涓嬫潵鎴戜滑姝e紡寮€濮嬭亰鑱?.0銆傜湅鐪?.0 鐩告瘮涓?.1鐨勪竴浜涢噸澶ф敼杩涖€?/p>
浜岃繘鍒跺垎甯у眰
HTTP2鎬ц兘鎻愬崌鐨勬牳蹇冨氨鍦ㄤ簬浜岃繘鍒跺垎甯у眰銆侶TTP2鏄簩杩涘埗鍗忚锛屼粬閲囩敤浜岃繘鍒舵牸寮忎紶杈撴暟鎹€屼笉鏄?.x鐨勬枃鏈牸寮忋€?/p>
鐪嬪浘鍚э紒寰堟竻鏅扮殑琛ㄨ揪浜咹TTP/1.1鐨勫搷搴斿拰2.0鐨勫尯鍒€?.1鍝嶅簲鏄枃鏈牸寮忥紝鑰?.0鎶婂搷搴斿垝鍒嗘垚浜嗕袱涓抚锛屽浘涓殑HEADERS锛堥閮級鍜孌ATA锛堟秷鎭礋杞斤級 鏄抚鐨勭被鍨嬨€備簡瑙f洿澶氬抚鐨勭被鍨嬩篃灏辨槸璇翠竴鏉TTP鍝嶅簲锛屽垝鍒嗘垚浜嗕袱涓抚鏉ヤ紶杈擄紝骞朵笖閲囩敤浜岃繘鍒舵潵缂栫爜銆?/p>
杩欓噷鎴戜滑鏉ユ彁涓変釜姒傚康銆?/p>
娴侊紙Stream锛夛細宸插缓绔嬬殑TCP杩炴帴涓婄殑鍙屽悜瀛楄妭娴侊紝鍙互鎵胯浇涓€涓垨澶氫釜娑堟伅銆?/p>
娑堟伅锛圡essage锛夛細涓€涓畬鏁寸殑HTTP璇锋眰鎴栧搷搴旓紝鐢变竴涓垨澶氫釜甯х粍鎴愩€傜壒瀹氭秷鎭殑甯у湪鍚屼竴涓祦涓婂彂閫侊紝杩欐剰鍛崇潃涓€涓狧TTP璇锋眰鎴栧搷搴斿彧鑳藉湪涓€涓祦涓婂彂閫併€?/p>
甯э紙Frame锛夛細閫氫俊鐨勫熀鏈崟浣嶃€?br>涓€涓猅CP杩炴帴涓婂彲浠ユ湁浠绘剰鏁伴噺鐨勬祦銆?/p>
澶氳矾澶嶇敤
涓婇潰鎻愬埌HTTP/1.1鐨勭嚎澶撮樆濉炲拰澶氫釜TCP杩炴帴鐨勯棶棰橈紝HTTP2鐨勫璺鐢ㄥ畬缇庤В鍐炽€侶TTP2璁╂墍鏈夌殑閫氫俊閮藉湪涓€涓猅CP杩炴帴涓婂畬鎴愶紝鐪熸瀹炵幇浜嗚姹傜殑骞跺彂銆傛垜浠潵鐪嬩竴涓婬TTP2鍏蜂綋鏄€庝箞瀹炵幇鐨勶細
HTTP2寤虹珛涓€涓猅CP杩炴帴锛屼竴涓繛鎺ヤ笂闈㈠彲浠ユ湁浠绘剰澶氫釜娴侊紙stream锛夛紝娑堟伅鍒嗗壊鎴愪竴涓垨澶氫釜甯у湪娴侀噷闈紶杈撱€傚抚浼犺緭杩囧幓浠ュ悗锛屽啀杩涜閲嶇粍锛屽舰鎴愪竴涓畬鏁寸殑璇锋眰鎴栧搷搴斻€傝繖浣垮緱鎵€鏈夌殑璇锋眰鎴栧搷搴旈兘鏃犳硶闃诲銆?鎴戜滑鍐嶆潵鍥炵湅涓婇潰鐨勯偅涓猟emo:
鎵撳紑鎺у埗鍙板彲浠ョ湅鍒帮紝HTTP/1.1鐨勬柟寮忥紝鍚庨潰鐨勫浘鐗囩殑鍔犺浇鏃堕棿涓昏鑰楁椂鍦╯talled锛宻talled鐨勬剰鎬濇槸浠嶵CP杩炴帴寤虹珛瀹屾垚锛屽埌鐪熸鍙互浼犺緭鏁版嵁涔嬮棿鐨勬椂闂村樊銆傝繖灏辨槸闃熷ご闃诲锛屽墠闈㈢殑璇锋眰娌℃湁澶勭悊锛屽悗闈㈢殑璇锋眰閮藉湪鎺掗槦绛夊緟銆?/p>
杩欓噷渚嬪瓙鎴戜滑鑳藉緢鐩磋鐨勭湅鍒板氨鏄璺鐢ㄨ捣鍒扮殑浼樺寲浣滅敤銆傚洜涓篐TTP2 瀹炵幇浜嗚姹傚苟鍙戯紝鍚庨潰鐨勮姹備笉鐢ㄥ啀绛夊緟锛屽姞杞芥椂闀垮綋鐒跺皯浜嗗緢澶氥€傛埅涓€寮燞TTP2鐨勫浘鐗囧姞杞借€楁椂璇︽儏鏉ョ湅鐪嬶紙瑕佺湅姣旇緝闈犲悗鐨勮姹傦級锛?/p>
鍜︼紵锛熶粈涔堟儏鍐碉紵鎴戜滑鍙戠幇鍚庨潰鐨勫緢澶氳姹備緷鏃ф湁鍦ㄦ帓闃熷搸锛屽彧鏄帓闃熺殑鏃堕棿鐩稿1.1灏戜簡寰堝銆備竴涓猅CP杩炴帴鍙互鏈変换鎰忔暟閲忕殑娴侊紝涔熷氨鏄悓鏃跺彲浠ュ苟鍙戜换鎰忔暟閲忕殑璇锋眰鍟婏紝涓哄暐杩樹細鎺掗槦鍛紵鍘熷洜灏辨槸璇锋眰澶鏃讹紝娴忚鍣ㄦ垨鏈嶅姟鍣ㄤ細鍙椾笉浜嗭紝杩欒秴鍑轰簡瀹冪殑澶勭悊鑳藉姏銆傛祦鎺у埗甯垜浠В鍐充簡杩欎釜闂锛屾祦鎺у埗浼氱鐞嗘暟鎹殑浼犺緭锛屽厑璁告帴鏀惰€呭仠姝㈡垨鍑忓皯鍙戦€佺殑鏁版嵁閲忥紝鍏嶅緱鎺ユ敹鏂逛笉鍫噸璐熴€傛墍浠ヨ姹傚お澶氭椂锛岃繕鏄細瀛樺湪鎺掗槦绛夊緟鐨勯棶棰橈紝鍥犱负涓嶇鏄鎴风鎴栨湇鍔″櫒绔紝鑳藉悓鏃跺鐞嗚姹傛垨鍝嶅簲閮芥槸鏈夐檺鐨勩€?/p>
澶撮儴鍘嬬缉
澶撮儴鍘嬬缉涔熸槸HTTP2鐨勪竴澶т寒鐐广€傚湪1.X鐗堟湰涓紝棣栭儴鐢ㄦ枃鏈牸寮忎紶杈擄紝閫氬父浼氱粰姣忎釜浼犺緭澧炲姞500-800瀛楄妭鐨勫紑閿€銆傜幇鍦ㄦ墦寮€涓€涓綉椤典笂鐧句釜璇锋眰宸叉槸甯告€侊紝鑰屾瘡涓姹傚甫鐨勪竴浜涢閮ㄥ瓧娈甸兘鏄浉鍚岀殑锛屼緥濡俢ookie銆乽ser-agent绛夈€侶TTP2涓烘閲囩敤HPACK鍘嬬缉鏍煎紡鏉ュ帇缂╅閮ㄣ€傚ご閮ㄥ帇缂╅渶瑕佸湪娴忚鍣ㄥ拰鏈嶅姟鍣ㄧ涔嬮棿锛?/p>
缁存姢涓€浠界浉鍚岀殑闈欐€佸瓧鍏革紝鍖呭惈甯歌鐨勫ご閮ㄥ悕绉帮紝浠ュ強甯歌鐨勫ご閮ㄥ悕绉板拰鍊肩殑缁勫悎
缁存姢涓€浠界浉鍚岀殑鍔ㄦ€佸瓧鍏革紝鍙互鍔ㄦ€佺殑娣诲姞鍐呭
閫氳繃闈欐€丠uffman缂栫爜瀵逛紶杈撶殑棣栭儴瀛楁杩涜缂栫爜
HTTP2鐨勯潤鎬佸瓧鍏告槸闀胯繖涓牱瀛愮殑锛堝彧鎴彇浜嗛儴鍒嗭紝瀹屾暣琛ㄦ牸鍦ㄨ繖閲岋級锛?/p>
鎵€浠ユ垜浠湪浼犺緭棣栭儴瀛楁鐨勬椂鍊欙紝渚嬪瑕佷紶杈搈ethod:GET,閭f垜浠彧闇€瑕佷紶杈撻潤鎬佸瓧鍏搁噷闈ethod:GET瀵瑰簲鐨勭储寮曞€煎氨鍙互浜嗭紝涓€涓瓧鑺傛悶瀹氥€傚儚user-agent銆乧ookie杩欑闈欐€佸瓧鍏搁噷闈㈠彧鏈夐閮ㄥ悕绉拌€屾病鏈夊€肩殑棣栭儴锛岀涓€娆′紶杈撻渶瑕乽ser-agent鍦ㄩ潤鎬佸瓧鍏镐腑鐨勭储寮曚互鍙婁粬鐨勫€硷紝鍊间細閲囩敤闈欐€丠uffman缂栫爜鏉ュ噺灏忎綋绉€?/p>
绗竴娆′紶杈撹繃user-agent 涔嬪悗鍛紝娴忚鍣ㄥ拰鏈嶅姟鍣ㄧ灏变細鎶婂畠娣诲姞鍒拌嚜宸辩殑鍔ㄦ€佸瓧鍏镐腑銆傚悗缁紶杈撳氨鍙互浼犺緭绱㈠紩浜嗭紝涓€涓瓧鑺傛悶瀹氥€?/p>
鎴戜滑鐢╓ireShark鏉ユ姄鍖呴獙璇佷竴涓嬶細
HTTP2鐩墠閮芥槸HTTPS鐨勮姹傦紝WireShark瀵笻TTPS缃戠珯鎶撳寘瑙e瘑璇峰弬鑰冭繖閲屻€?/p>
棣栨浼犺緭user-agent鍜岀浜屾浼犺緭user-agent
鐢变簬绗竴娆′紶杈撶殑鏃跺€欙紝瀛楀吀閲岄潰骞舵病鏈塽ser-agent鐨勫€硷紝杩欐椂鍊檜ser-agent鏄?3瀛楄妭锛岀浜屾浼犺緭鏃讹紝浠栧凡缁忓湪鍔ㄦ€佸瓧鍏搁噷闈簡锛屽彧浼犵储寮曪紝涓€涓瓧鑺傛悶瀹氥€?/p>
HPACK鐨勯閮ㄥ帇缂╁姏搴?/p>
Header瑙g爜鍚庣殑闀垮害鏈?71涓瓧鑺傦紝鑰孒EADERS娴佸彧鏈?46涓瓧鑺傘€傝繖鍙槸绗竴涓姹傦紝鍚庣画鐨勮姹傚帇缂╁姏搴︿細鏇村ぇ锛屽洜涓哄墠闈㈣姹傜敤鍒扮殑棣栭儴锛堥潤鎬佸瓧鍏镐腑娌℃湁鐨勶級浼氭坊鍔犲埌鍔ㄦ€佸瓧鍏镐腑锛屼娇寰楀悗缁姹傚彧闇€瑕佷紶杈撳瓧鍏搁噷闈㈢殑绱㈠紩銆?/p>
鏈嶅姟鍣ㄧ鎺ㄩ€?/h3>
鏈嶅姟鍣ㄧ鎺ㄩ€佷娇寰楁湇鍔″櫒鍙互棰勬祴瀹㈡埛绔渶瑕佺殑璧勬簮锛屼富鍔ㄦ帹閫佸埌瀹㈡埛绔€?br>渚嬪锛氬鎴风璇锋眰index.html锛屾湇鍔″櫒绔兘澶熼澶栨帹閫乻cript.js鍜宻tyle.css銆?瀹炵幇鍘熺悊灏辨槸瀹㈡埛绔彂鍑洪〉闈㈣姹傛椂锛屾湇鍔″櫒绔兘澶熷垎鏋愯繖涓〉闈㈡墍渚濊禆鐨勫叾浠栬祫婧愶紝涓诲姩鎺ㄩ€佸埌瀹㈡埛绔殑缂撳瓨锛屽綋瀹㈡埛绔敹鍒板師濮嬬綉椤电殑璇锋眰鏃讹紝瀹冮渶瑕佺殑璧勬簮宸茬粡浣嶄簬缂撳瓨銆?/p>
閽堝姣忎竴涓笇鏈涘彂閫佺殑璧勬簮锛屾湇鍔″櫒浼氬彂閫佷竴涓狿USH_PROMISE甯э紝瀹㈡埛绔彲浠ラ€氳繃鍙戦€丷ST_STREAM甯ф潵鎷掔粷鎺ㄩ€侊紙褰撹祫婧愬凡缁忎綅浜庣紦瀛橈級銆傝繖涓€姝ョ殑鎿嶄綔鍏堜簬鐖跺搷搴旓紙index.html锛夛紝瀹㈡埛绔簡瑙e埌鏈嶅姟鍣ㄧ鎵撶畻鎺ㄩ€佸摢浜涜祫婧愶紝灏变笉浼氬啀涓鸿繖浜涜祫婧愬垱寤洪噸澶嶈姹傘€傚綋瀹㈡埛绔敹鍒癷ndex.html鐨勫搷搴旀椂锛宻cript.js鍜宻tyle.css宸茬粡浣嶄簬缂撳瓨銆?/p>
鎯宠鎼竴涓狧TTP2鏈嶅姟鍣ㄧ殑璇濇帹鑽恘ode锛屽緢绠€鍗曘€傞摼鎺?/p>
鍙傝€冩枃绔?/h3>
HTTP/2绠€浠?/p>
HTTP/2 骞曞悗鍘熺悊
HTTP/2 澶撮儴鍘嬬缉鎶€鏈粙缁?/p>
浣跨敤 Wireshark 璋冭瘯 HTTP/2 娴侀噺
HTTP/2.0 鐩告瘮1.0鏈夊摢浜涢噸澶ф敼杩涳紵
HTTP/2 鏂扮壒鎬ф祬鏋?/p>
缁撹
HTTP/2绠€浠?/p>
HTTP/2 骞曞悗鍘熺悊
HTTP/2 澶撮儴鍘嬬缉鎶€鏈粙缁?/p>
浣跨敤 Wireshark 璋冭瘯 HTTP/2 娴侀噺
HTTP/2.0 鐩告瘮1.0鏈夊摢浜涢噸澶ф敼杩涳紵
HTTP/2 鏂扮壒鎬ф祬鏋?/p>
绠€鍗曡浜咹TTP2鐩告瘮1.1鐗堟湰鐨勯噸瑕佹敼杩涚偣锛屾劅鍙椾簡涓€涓媓2鐨勫己澶с€傝繕鏈変竴浜涙祦浼樺厛鍖栫瓑鐗规€ф枃涓湭娑夊強锛屾劅鍏磋叮鐨勫彲浠ュ湪鍙傝€冩枃绔犱腑鐪嬬湅銆傚鏈夐敊璇紝鎭宠鎸囨锛?/p>
以上是关于闈㈣瘯瀹橀棶锛氫綘浜嗚ВHTTP2.0鍚楋紵的主要内容,如果未能解决你的问题,请参考以下文章
鎴戣姳浜?涓湀鏁寸悊鐨凧ava闈㈣瘯瀹濆吀锛堟帹鑽愯吘璁啝鍐涙湅鍙嬶級
闈㈣瘯蹇呴棶鐨?JVM 杩愯鏃舵暟鎹尯锛屼綘鎳備簡鍚楋紵