闈㈣瘯瀹橀棶锛氫綘浜嗚В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瀛樺湪鏈夊摢浜涢棶棰橈細

  1. 绾垮ご闃诲锛歍CP杩炴帴涓婂彧鑳藉彂閫佷竴涓姹傦紝鍓嶉潰鐨勮姹傛湭瀹屾垚鍓嶏紝鍚庣画鐨勮姹傞兘鍦ㄦ帓闃熺瓑寰呫€?/p>

  2. 澶氫釜TCP杩炴帴
    铏界劧HTTP/1.1绠$嚎鍖栧彲浠ユ敮鎸佽姹傚苟鍙戯紝浣嗘槸娴忚鍣ㄥ緢闅惧疄鐜帮紝chrome銆乫irefox绛夐兘绂佺敤浜嗙绾垮寲銆傛墍浠?.1鐗堟湰璇锋眰骞跺彂渚濊禆浜庡涓猅CP杩炴帴锛屽缓绔婽CP杩炴帴鎴愭湰寰堥珮锛岃繕浼氬瓨鍦ㄦ參鍚姩鐨勯棶棰樸€?/p>

  3. 澶撮儴鍐椾綑锛岄噰鐢ㄦ枃鏈牸寮?br>HTTP/1.X鐗堟湰鏄噰鐢ㄦ枃鏈牸寮忥紝棣栭儴鏈帇缂╋紝鑰屼笖姣忎竴涓姹傞兘浼氬甫涓奵ookie銆乽ser-agent绛夊畬鍏ㄧ浉鍚岀殑棣栭儴銆?/p>

  4. 瀹㈡埛绔渶瑕佷富鍔ㄨ姹?/p>

HTTP/2.0鐨勬椂浠f潵浜?/h2>

鍏堟潵涓€涓猟emo鎰熷彈涓€涓嬪悐鐐稿ぉ鐨凥TTP/2.0锛岃繖涓猟emo鏄姞杞?79寮犲浘鐗囷紝鏉ュ姣擧TTP/1.1鍜孒TTP/2.0鐨勬€ц兘銆?nbsp;HTTP/1.1 涓?.0 鎬ц兘姣旇緝


闈㈣瘯瀹橀棶锛氫綘浜嗚ВHTTP2.0鍚楋紵


鐞嗚涓奌TTP/2.0浼氭瘮HTTP/1.1鏈変竴鍊嶅鐨勬€ц兘鎻愬崌锛屽急缃戠幆澧冧笅锛屾€ц兘鎻愬崌浼氭洿鍔犳槑鏄俱€?涓嬮潰涓ゅ紶鍥炬槸鎴戝湪璁剧疆缃戠粶鍦╢ast 3G 鍜宻low 3G鐨勬€ц兘瀵规瘮銆?/p>


闈㈣瘯瀹橀棶锛氫綘浜嗚ВHTTP2.0鍚楋紵
闈㈣瘯瀹橀棶锛氫綘浜嗚ВHTTP2.0鍚楋紵

鏄笉鏄HTTP/2.0鐨勯€熷害浜瀻浜嗗弻鐪硷紵2333锛屾帴涓嬫潵鎴戜滑姝e紡寮€濮嬭亰鑱?.0銆傜湅鐪?.0 鐩告瘮涓?.1鐨勪竴浜涢噸澶ф敼杩涖€?/p>


浜岃繘鍒跺垎甯у眰

HTTP2鎬ц兘鎻愬崌鐨勬牳蹇冨氨鍦ㄤ簬浜岃繘鍒跺垎甯у眰銆侶TTP2鏄簩杩涘埗鍗忚锛屼粬閲囩敤浜岃繘鍒舵牸寮忎紶杈撴暟鎹€屼笉鏄?.x鐨勬枃鏈牸寮忋€?/p>


闈㈣瘯瀹橀棶锛氫綘浜嗚ВHTTP2.0鍚楋紵

鐪嬪浘鍚э紒寰堟竻鏅扮殑琛ㄨ揪浜咹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.0鍚楋紵

HTTP2寤虹珛涓€涓猅CP杩炴帴锛屼竴涓繛鎺ヤ笂闈㈠彲浠ユ湁浠绘剰澶氫釜娴侊紙stream锛夛紝娑堟伅鍒嗗壊鎴愪竴涓垨澶氫釜甯у湪娴侀噷闈紶杈撱€傚抚浼犺緭杩囧幓浠ュ悗锛屽啀杩涜閲嶇粍锛屽舰鎴愪竴涓畬鏁寸殑璇锋眰鎴栧搷搴斻€傝繖浣垮緱鎵€鏈夌殑璇锋眰鎴栧搷搴旈兘鏃犳硶闃诲銆?鎴戜滑鍐嶆潵鍥炵湅涓婇潰鐨勯偅涓猟emo:



闈㈣瘯瀹橀棶锛氫綘浜嗚ВHTTP2.0鍚楋紵

鎵撳紑鎺у埗鍙板彲浠ョ湅鍒帮紝HTTP/1.1鐨勬柟寮忥紝鍚庨潰鐨勫浘鐗囩殑鍔犺浇鏃堕棿涓昏鑰楁椂鍦╯talled锛宻talled鐨勬剰鎬濇槸浠嶵CP杩炴帴寤虹珛瀹屾垚锛屽埌鐪熸鍙互浼犺緭鏁版嵁涔嬮棿鐨勬椂闂村樊銆傝繖灏辨槸闃熷ご闃诲锛屽墠闈㈢殑璇锋眰娌℃湁澶勭悊锛屽悗闈㈢殑璇锋眰閮藉湪鎺掗槦绛夊緟銆?/p>


杩欓噷渚嬪瓙鎴戜滑鑳藉緢鐩磋鐨勭湅鍒板氨鏄璺鐢ㄨ捣鍒扮殑浼樺寲浣滅敤銆傚洜涓篐TTP2 瀹炵幇浜嗚姹傚苟鍙戯紝鍚庨潰鐨勮姹備笉鐢ㄥ啀绛夊緟锛屽姞杞芥椂闀垮綋鐒跺皯浜嗗緢澶氥€傛埅涓€寮燞TTP2鐨勫浘鐗囧姞杞借€楁椂璇︽儏鏉ョ湅鐪嬶紙瑕佺湅姣旇緝闈犲悗鐨勮姹傦級锛?/p>

闈㈣瘯瀹橀棶锛氫綘浜嗚ВHTTP2.0鍚楋紵

鍜︼紵锛熶粈涔堟儏鍐碉紵鎴戜滑鍙戠幇鍚庨潰鐨勫緢澶氳姹備緷鏃ф湁鍦ㄦ帓闃熷搸锛屽彧鏄帓闃熺殑鏃堕棿鐩稿1.1灏戜簡寰堝銆備竴涓猅CP杩炴帴鍙互鏈変换鎰忔暟閲忕殑娴侊紝涔熷氨鏄悓鏃跺彲浠ュ苟鍙戜换鎰忔暟閲忕殑璇锋眰鍟婏紝涓哄暐杩樹細鎺掗槦鍛紵鍘熷洜灏辨槸璇锋眰澶鏃讹紝娴忚鍣ㄦ垨鏈嶅姟鍣ㄤ細鍙椾笉浜嗭紝杩欒秴鍑轰簡瀹冪殑澶勭悊鑳藉姏銆傛祦鎺у埗甯垜浠В鍐充簡杩欎釜闂锛屾祦鎺у埗浼氱鐞嗘暟鎹殑浼犺緭锛屽厑璁告帴鏀惰€呭仠姝㈡垨鍑忓皯鍙戦€佺殑鏁版嵁閲忥紝鍏嶅緱鎺ユ敹鏂逛笉鍫噸璐熴€傛墍浠ヨ姹傚お澶氭椂锛岃繕鏄細瀛樺湪鎺掗槦绛夊緟鐨勯棶棰橈紝鍥犱负涓嶇鏄鎴风鎴栨湇鍔″櫒绔紝鑳藉悓鏃跺鐞嗚姹傛垨鍝嶅簲閮芥槸鏈夐檺鐨勩€?/p>


澶撮儴鍘嬬缉

澶撮儴鍘嬬缉涔熸槸HTTP2鐨勪竴澶т寒鐐广€傚湪1.X鐗堟湰涓紝棣栭儴鐢ㄦ枃鏈牸寮忎紶杈擄紝閫氬父浼氱粰姣忎釜浼犺緭澧炲姞500-800瀛楄妭鐨勫紑閿€銆傜幇鍦ㄦ墦寮€涓€涓綉椤典笂鐧句釜璇锋眰宸叉槸甯告€侊紝鑰屾瘡涓姹傚甫鐨勪竴浜涢閮ㄥ瓧娈甸兘鏄浉鍚岀殑锛屼緥濡俢ookie銆乽ser-agent绛夈€侶TTP2涓烘閲囩敤HPACK鍘嬬缉鏍煎紡鏉ュ帇缂╅閮ㄣ€傚ご閮ㄥ帇缂╅渶瑕佸湪娴忚鍣ㄥ拰鏈嶅姟鍣ㄧ涔嬮棿锛?/p>

  • 缁存姢涓€浠界浉鍚岀殑闈欐€佸瓧鍏革紝鍖呭惈甯歌鐨勫ご閮ㄥ悕绉帮紝浠ュ強甯歌鐨勫ご閮ㄥ悕绉板拰鍊肩殑缁勫悎

  • 缁存姢涓€浠界浉鍚岀殑鍔ㄦ€佸瓧鍏革紝鍙互鍔ㄦ€佺殑娣诲姞鍐呭

  • 閫氳繃闈欐€丠uffman缂栫爜瀵逛紶杈撶殑棣栭儴瀛楁杩涜缂栫爜

HTTP2鐨勯潤鎬佸瓧鍏告槸闀胯繖涓牱瀛愮殑锛堝彧鎴彇浜嗛儴鍒嗭紝瀹屾暣琛ㄦ牸鍦ㄨ繖閲岋級锛?/p>


闈㈣瘯瀹橀棶锛氫綘浜嗚ВHTTP2.0鍚楋紵

鎵€浠ユ垜浠湪浼犺緭棣栭儴瀛楁鐨勬椂鍊欙紝渚嬪瑕佷紶杈搈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

    闈㈣瘯瀹橀棶锛氫綘浜嗚ВHTTP2.0鍚楋紵


闈㈣瘯瀹橀棶锛氫綘浜嗚ВHTTP2.0鍚楋紵

鐢变簬绗竴娆′紶杈撶殑鏃跺€欙紝瀛楀吀閲岄潰骞舵病鏈塽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>

缁撹

绠€鍗曡浜咹TTP2鐩告瘮1.1鐗堟湰鐨勯噸瑕佹敼杩涚偣锛屾劅鍙椾簡涓€涓媓2鐨勫己澶с€傝繕鏈変竴浜涙祦浼樺厛鍖栫瓑鐗规€ф枃涓湭娑夊強锛屾劅鍏磋叮鐨勫彲浠ュ湪鍙傝€冩枃绔犱腑鐪嬬湅銆傚鏈夐敊璇紝鎭宠鎸囨锛?/p>


以上是关于闈㈣瘯瀹橀棶锛氫綘浜嗚ВHTTP2.0鍚楋紵的主要内容,如果未能解决你的问题,请参考以下文章

鎴戣姳浜?涓湀鏁寸悊鐨凧ava闈㈣瘯瀹濆吀锛堟帹鑽愯吘璁啝鍐涙湅鍙嬶級

闈㈣瘯蹇呴棶鐨?JVM 杩愯鏃舵暟鎹尯锛屼綘鎳備簡鍚楋紵

闈㈣瘯瀹橈細鏁版嵁搴撹繛鎺ユ睜涓轰粈涔堥兘瑕佺敤Threadlocal鍛紵

甯︿綘浜嗚В椤圭洰绠$悊 | 椤圭洰绠$悊鍩虹鐭ヨ瘑

闈㈣瘯瀹橈細鑱婅亰 Java 鐨勫嚑鎶?JVM 绾ч攣鍚?/h1>