Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
HTTP,HTTP2.0,SPDY,HTTPSÄãÓ¦¸ÃÖªµÀµÄһЩÊÂ
 
×÷ÕߣºTAT.tennylv À´Ô´£ºÌÚѶAlloyTeam Blog ·¢²¼ÓÚ£º2016-8-30
  2933  次浏览      27
 

×÷Ϊһ¸ö¾­³£ºÍweb´ò½»µÀµÄ³ÌÐòÔ±£¬Á˽âÕâЩЭÒéÊDZØÐëµÄ£¬±¾ÎľÍÏò´ó¼Ò½éÉÜÒ»ÏÂÕâЩЭÒéµÄÇø±ðºÍ»ù±¾¸ÅÄÎÄÖпÉÄܲ»¾ÖÏÞÓÚǰ¶Ë֪ʶ£¬»¹°üÀ¨Ò»Ð©ÔËά£¬Ð­Òé·½ÃæµÄ֪ʶ£¬Ï£ÍûÄܸø¶ÁÕß´øÀ´Ò»Ð©ÊÕ»ñ£¬ÈçÓв»¶ÔÖ®´¦»¹ÇëÖ¸³ö¡£

1¡¢webÊ¼×æHTTP

È«³Æ£º³¬Îı¾´«ÊäЭÒé(HyperText Transfer Protocol) °éËæ×żÆËã»úÍøÂçºÍä¯ÀÀÆ÷µÄµ®Éú£¬HTTP1.0Ò²ËæÖ®¶øÀ´£¬´¦ÓÚ¼ÆËã»úÍøÂçÖеÄÓ¦Óò㣬HTTPÊǽ¨Á¢ÔÚTCPЭÒéÖ®ÉÏ£¬ËùÒÔHTTPЭÒéµÄÆ¿¾±¼°ÆäÓÅ»¯¼¼Çɶ¼ÊÇ»ùÓÚTCPЭÒé±¾ÉíµÄÌØÐÔ£¬ÀýÈçtcp½¨Á¢Á¬½ÓµÄ3´ÎÎÕÊֺͶϿªÁ¬½ÓµÄ4´Î»ÓÊÖÒÔ¼°Ã¿´Î½¨Á¢Á¬½Ó´øÀ´µÄRTTÑÓ³Ùʱ¼ä¡£

2¡¢HTTPÓëÏÖ´ú»¯ä¯ÀÀÆ÷

ÔçÔÚHTTP½¨Á¢Ö®³õ£¬Ö÷Òª¾ÍÊÇΪÁ˽«³¬Îı¾±ê¼ÇÓïÑÔ(HTML)Îĵµ´ÓWeb·þÎñÆ÷´«Ë͵½¿Í»§¶ËµÄä¯ÀÀÆ÷¡£Ò²ÊÇ˵¶ÔÓÚǰ¶ËÀ´Ëµ£¬ÎÒÃÇËùдµÄHTMLÒ³Ãæ½«Òª·ÅÔÚÎÒÃǵÄweb·þÎñÆ÷ÉÏ£¬Óû§¶Ëͨ¹ýä¯ÀÀÆ÷·ÃÎÊurlµØÖ·À´»ñÈ¡ÍøÒ³µÄÏÔʾÄÚÈÝ£¬µ«Êǵ½ÁËWEB2.0ÒÔÀ´£¬ÎÒÃǵÄÒ³Ãæ±äµÃ¸´ÔÓ£¬²»½ö½öµ¥´¿µÄÊÇһЩ¼òµ¥µÄÎÄ×ÖºÍͼƬ£¬Í¬Ê±ÎÒÃǵÄHTMLÒ³ÃæÓÐÁËCSS£¬Javascript£¬À´·á¸»ÎÒÃǵÄÒ³ÃæÕ¹Ê¾£¬µ±ajaxµÄ³öÏÖ£¬ÎÒÃÇÓÖ¶àÁËÒ»ÖÖÏò·þÎñÆ÷¶Ë»ñÈ¡Êý¾ÝµÄ·½·¨£¬ÕâЩÆäʵ¶¼ÊÇ»ùÓÚHTTPЭÒéµÄ£¬Í¬Ñùµ½ÁËÒÆ¶¯»¥ÁªÍøÊ±´ú£¬ÎÒÃÇÒ³Ãæ¿ÉÒÔÅÜÔÚÊÖ»ú¶Ëä¯ÀÀÆ÷ÀïÃæ£¬µ«ÊǺÍPCÏà±È£¬ÊÖ»ú¶ËµÄÍøÂçÇé¿ö¸ü¼Ó¸´ÔÓ£¬ÕâʹµÃÎÒÃÇ¿ªÊ¼Á˲»µÃ²»¶ÔHTTP½øÐÐÉîÈëÀí½â²¢²»¶ÏÓÅ»¯¹ý³ÌÖС£

3. HTTPµÄ»ù±¾ÓÅ»¯

Ó°ÏìÒ»¸öHTTPÍøÂçÇëÇóµÄÒòËØÖ÷ÒªÓÐÁ½¸ö£º´ø¿íºÍÑÓ³Ù¡£

´ø¿í£ºÈç¹û˵ÎÒÃÇ»¹Í£ÁôÔÚ²¦ºÅÉÏÍøµÄ½×¶Î£¬´ø¿í¿ÉÄÜ»á³ÉΪһ¸ö±È½ÏÑÏÖØÓ°ÏìÇëÇóµÄÎÊÌ⣬µ«ÊÇÏÖÔÚÍøÂç»ù´¡½¨ÉèÒѾ­Ê¹µÃ´ø¿íµÃµ½¼«´óµÄÌáÉý£¬ÎÒÃDz»ÔٻᵣÐÄÓÉ´ø¿í¶øÓ°ÏìÍøËÙ£¬ÄÇô¾ÍֻʣÏÂÑÓ³ÙÁË¡£

ÑÓ³Ù£º

1¡¢ä¯ÀÀÆ÷×èÈû£¨HOL blocking£©£ºä¯ÀÀÆ÷»áÒòΪһЩԭÒò×èÈûÇëÇó¡£ä¯ÀÀÆ÷¶ÔÓÚͬһ¸öÓòÃû£¬Í¬Ê±Ö»ÄÜÓÐ 4 ¸öÁ¬½Ó£¨Õâ¸ö¸ù¾Ýä¯ÀÀÆ÷Äں˲»Í¬¿ÉÄÜ»áÓÐËù²îÒ죩£¬³¬¹ýä¯ÀÀÆ÷×î´óÁ¬½ÓÊýÏÞÖÆ£¬ºóÐøÇëÇó¾Í»á±»×èÈû¡£

2¡¢DNS ²éѯ£¨DNS Lookup£©£ºä¯ÀÀÆ÷ÐèÒªÖªµÀÄ¿±ê·þÎñÆ÷µÄ IP ²ÅÄܽ¨Á¢Á¬½Ó¡£½«ÓòÃû½âÎöΪ IP µÄÕâ¸öϵͳ¾ÍÊÇ DNS¡£Õâ¸öͨ³£¿ÉÒÔÀûÓÃDNS»º´æ½á¹ûÀ´´ïµ½¼õÉÙÕâ¸öʱ¼äµÄÄ¿µÄ¡£

3¡¢½¨Á¢Á¬½Ó£¨Initial connection£©£ºHTTP ÊÇ»ùÓÚ TCP ЭÒéµÄ£¬ä¯ÀÀÆ÷×î¿ìÒ²ÒªÔÚµÚÈý´ÎÎÕÊÖʱ²ÅÄÜÉÓ´ø HTTP ÇëÇó±¨ÎÄ£¬´ïµ½ÕæÕýµÄ½¨Á¢Á¬½Ó£¬µ«ÊÇÕâЩÁ¬½ÓÎÞ·¨¸´ÓûᵼÖÂÿ´ÎÇëÇó¶¼¾­ÀúÈý´ÎÎÕÊÖºÍÂýÆô¶¯¡£Èý´ÎÎÕÊÖÔÚ¸ßÑӳٵij¡¾°ÏÂÓ°Ïì½ÏÃ÷ÏÔ£¬ÂýÆô¶¯Ôò¶ÔÎļþÀà´óÇëÇóÓ°Ïì½Ï´ó¡£

4¡¢HTTP1.0ºÍHTTP1.1µÄÒ»Ð©Çø±ð

HTTP1.0×îÔçÔÚÍøÒ³ÖÐʹÓÃÊÇÔÚ1996Ä꣬ÄǸöʱºòÖ»ÊÇʹÓÃһЩ½ÏΪ¼òµ¥µÄÍøÒ³ÉϺÍÍøÂçÇëÇóÉÏ£¬¶øHTTP1.1ÔòÔÚ1999Äê²Å¿ªÊ¼¹ã·ºÓ¦ÓÃÓÚÏÖÔڵĸ÷´óä¯ÀÀÆ÷ÍøÂçÇëÇóÖУ¬Í¬Ê±HTTP1.1Ò²Êǵ±Ç°Ê¹ÓÃ×îΪ¹ã·ºµÄHTTPЭÒé¡£

Ö÷񻂿±ðÖ÷ÒªÌåÏÖÔÚ£º

1¡¢»º´æ´¦Àí£¬ÔÚHTTP1.0ÖÐÖ÷ҪʹÓÃheaderÀïµÄIf-Modified-Since,ExpiresÀ´×öΪ»º´æÅжϵıê×¼£¬HTTP1.1ÔòÒýÈëÁ˸ü¶àµÄ»º´æ¿ØÖƲßÂÔÀýÈçEntity tag£¬If-Unmodified-Since, If-Match, If-None-MatchµÈ¸ü¶à¿É¹©Ñ¡ÔñµÄ»º´æÍ·À´¿ØÖÆ»º´æ²ßÂÔ¡£

2¡¢´ø¿íÓÅ»¯¼°ÍøÂçÁ¬½ÓµÄʹÓã¬HTTP1.0ÖУ¬´æÔÚһЩÀË·Ñ´ø¿íµÄÏÖÏó£¬ÀýÈç¿Í»§¶ËÖ»ÊÇÐèҪij¸ö¶ÔÏóµÄÒ»²¿·Ö£¬¶ø·þÎñÆ÷È´½«Õû¸ö¶ÔÏóË͹ýÀ´ÁË£¬²¢ÇÒ²»Ö§³Ö¶ÏµãÐø´«¹¦ÄÜ£¬HTTP1.1ÔòÔÚÇëÇóÍ·ÒýÈëÁËrangeÍ·Óò£¬ËüÔÊÐíÖ»ÇëÇó×ÊÔ´µÄij¸ö²¿·Ö£¬¼´·µ»ØÂëÊÇ206£¨Partial Content£©£¬ÕâÑù¾Í·½±ãÁË¿ª·¢Õß×ÔÓɵÄÑ¡ÔñÒÔ±ãÓÚ³ä·ÖÀûÓôø¿íºÍÁ¬½Ó¡£

3¡¢´íÎó֪ͨµÄ¹ÜÀí£¬ÔÚHTTP1.1ÖÐÐÂÔöÁË24¸ö´íÎó״̬ÏìÓ¦Â룬Èç409£¨Conflict£©±íʾÇëÇóµÄ×ÊÔ´Óë×ÊÔ´µÄµ±Ç°×´Ì¬·¢Éú³åÍ»£»410£¨Gone£©±íʾ·þÎñÆ÷ÉϵÄij¸ö×ÊÔ´±»ÓÀ¾ÃÐÔµÄɾ³ý¡£

4¡¢HostÍ·´¦Àí£¬ÔÚHTTP1.0ÖÐÈÏΪÿ̨·þÎñÆ÷¶¼°ó¶¨Ò»¸öΨһµÄIPµØÖ·£¬Òò´Ë£¬ÇëÇóÏûÏ¢ÖеÄURL²¢Ã»Óд«µÝÖ÷»úÃû£¨hostname£©¡£µ«Ëæ×ÅÐéÄâÖ÷»ú¼¼ÊõµÄ·¢Õ¹£¬ÔÚһ̨ÎïÀí·þÎñÆ÷ÉÏ¿ÉÒÔ´æÔÚ¶à¸öÐéÄâÖ÷»ú£¨Multi-homed Web Servers£©£¬²¢ÇÒËüÃǹ²ÏíÒ»¸öIPµØÖ·¡£HTTP1.1µÄÇëÇóÏûÏ¢ºÍÏìÓ¦ÏûÏ¢¶¼Ó¦Ö§³ÖHostÍ·Óò£¬ÇÒÇëÇóÏûÏ¢ÖÐÈç¹ûûÓÐHostÍ·Óò»á±¨¸æÒ»¸ö´íÎó£¨400 Bad Request£©¡£

5¡¢³¤Á¬½Ó£¬HTTP 1.1Ö§³Ö³¤Á¬½Ó£¨PersistentConnection£©ºÍÇëÇóµÄÁ÷Ë®Ïߣ¨Pipelining£©´¦Àí£¬ÔÚÒ»¸öTCPÁ¬½ÓÉÏ¿ÉÒÔ´«ËͶà¸öHTTPÇëÇóºÍÏìÓ¦£¬¼õÉÙÁ˽¨Á¢ºÍ¹Ø±ÕÁ¬½ÓµÄÏûºÄºÍÑÓ³Ù£¬ÔÚHTTP1.1ÖÐĬÈÏ¿ªÆôConnection£º keep-alive£¬Ò»¶¨³Ì¶ÈÉÏÃÖ²¹ÁËHTTP1.0ÿ´ÎÇëÇó¶¼Òª´´½¨Á¬½ÓµÄȱµã¡£ÒÔÏÂÊdz£¼ûµÄHTTP1.0£º

Çø±ðÓÃÒ»ÕÅͼÀ´ÌåÏÖ£º

>

5¡¢HTTP1.0ºÍ1.1ÏÖ´æµÄһЩÎÊÌâ

1¡¢ÉÏÃæÌáµ½¹ýµÄ£¬HTTP1.xÔÚ´«ÊäÊý¾Ýʱ£¬Ã¿´Î¶¼ÐèÒªÖØÐ½¨Á¢Á¬½Ó£¬ÎÞÒÉÔö¼ÓÁË´óÁ¿µÄÑÓ³Ùʱ¼ä£¬ÌرðÊÇÔÚÒÆ¶¯¶Ë¸üΪͻ³ö¡£

2¡¢HTTP1.xÔÚ´«ÊäÊý¾Ýʱ£¬ËùÓд«ÊäµÄÄÚÈݶ¼ÊÇÃ÷ÎÄ£¬¿Í»§¶ËºÍ·þÎñÆ÷¶Ë¶¼ÎÞ·¨ÑéÖ¤¶Ô·½µÄÉí·Ý£¬ÕâÔÚÒ»¶¨³Ì¶ÈÉÏÎÞ·¨±£Ö¤Êý¾ÝµÄ°²È«ÐÔ¡£

3¡¢HTTP1.xÔÚʹÓÃʱ£¬headerÀïЯ´øµÄÄÚÈݹý´ó£¬ÔÚÒ»¶¨³Ì¶ÈÉÏÔö¼ÓÁË´«ÊäµÄ³É±¾£¬²¢ÇÒÿ´ÎÇëÇóheader»ù±¾²»Ôõô±ä»¯£¬ÓÈÆäÔÚÒÆ¶¯¶ËÔö¼ÓÓû§Á÷Á¿¡£

4¡¢ËäÈ»HTTP1.xÖ§³ÖÁËkeep-alive£¬À´ÃÖ²¹¶à´Î´´½¨Á¬½Ó²úÉúµÄÑÓ³Ù£¬µ«ÊÇkeep-aliveʹÓöàÁËͬÑù»á¸ø·þÎñ¶Ë´øÀ´´óÁ¿µÄÐÔÄÜѹÁ¦£¬²¢ÇÒ¶ÔÓÚµ¥¸öÎļþ±»²»¶ÏÇëÇóµÄ·þÎñ(ÀýÈçͼƬ´æ·ÅÍøÕ¾)£¬keep-alive¿ÉÄܻἫ´óµÄÓ°ÏìÐÔÄÜ£¬ÒòΪËüÔÚÎļþ±»ÇëÇóÖ®ºó»¹±£³ÖÁ˲»±ØÒªµÄÁ¬½ÓºÜ³¤Ê±¼ä¡£

6. HTTPSÓ¦Éù¶ø³ö

ΪÁ˽â¾öÒÔÉÏÎÊÌâ£¬Íø¾°ÔÚ1994Äê´´½¨ÁËHTTPS£¬²¢Ó¦ÓÃÔÚÍø¾°µ¼º½Õßä¯ÀÀÆ÷ÖС£ ×î³õ£¬HTTPSÊÇÓëSSLÒ»ÆðʹÓõģ»ÔÚSSLÖð½¥Ñݱ䵽TLSʱ£¨ÆäʵÁ½¸öÊÇÒ»¸ö¶«Î÷£¬Ö»ÊÇÃû×Ö²»Í¬¶øÒÑ£©£¬×îеÄHTTPSÒ²ÓÉÔÚ2000ÄêÎåÔ¹«²¼µÄRFC 2818Õýʽȷ¶¨ÏÂÀ´¡£¼òµ¥À´Ëµ£¬HTTPS¾ÍÊǰ²È«°æµÄHTTP£¬²¢ÇÒÓÉÓÚµ±½ñʱ´ú¶Ô°²È«ÐÔÒªÇó¸ü¸ß£¬chromeºÍfirefox¶¼´óÁ¦Ö§³ÖÍøÕ¾Ê¹ÓÃHTTPS£¬Æ»¹ûÒ²ÔÚios 10ϵͳÖÐÇ¿ÖÆappʹÓÃHTTPSÀ´´«ÊäÊý¾Ý£¬Óɴ˿ɼûHTTPSÊÆÔÚ±ØÐС£

7¡¢HTTPSÓëHTTPµÄÒ»Ð©Çø±ð

1¡¢HTTPSЭÒéÐèÒªµ½CAÉêÇëÖ¤Ê飬һ°ãÃâ·ÑÖ¤ÊéºÜÉÙ£¬ÐèÒª½»·Ñ¡£

2¡¢HTTPЭÒéÔËÐÐÔÚTCPÖ®ÉÏ£¬ËùÓд«ÊäµÄÄÚÈݶ¼ÊÇÃ÷ÎÄ£¬HTTPSÔËÐÐÔÚSSL/TLSÖ®ÉÏ£¬SSL/TLSÔËÐÐÔÚTCPÖ®ÉÏ£¬ËùÓд«ÊäµÄÄÚÈݶ¼¾­¹ý¼ÓÃܵġ£

3¡¢HTTPºÍHTTPSʹÓõÄÊÇÍêÈ«²»Í¬µÄÁ¬½Ó·½Ê½£¬ÓõĶ˿ÚÒ²²»Ò»Ñù£¬Ç°ÕßÊÇ80£¬ºóÕßÊÇ443¡£

4¡¢HTTPS¿ÉÒÔÓÐЧµÄ·ÀÖ¹ÔËÓªÉ̽ٳ֣¬½â¾öÁË·À½Ù³ÖµÄÒ»¸ö´óÎÊÌâ¡£

8¡¢HTTPS¸ÄÔì

Èç¹ûÒ»¸öÍøÕ¾ÒªÈ«Õ¾ÓÉHTTPÌæ»»³ÉHTTPS£¬¿ÉÄÜÐèÒª¹Ø×¢ÒÔϼ¸µã£º

1¡¢°²×°CAÖ¤Ê飬һ°ãµÄÖ¤Êé¶¼ÊÇÐèÒªÊշѵģ¬Õâ±ßÍÆ¼öÒ»¸ö±È½ÏºÃµÄ¹ºÂòÖ¤ÊéÍøÕ¾£º1£©Let's Encrypt£¬Ãâ·Ñ£¬¿ì½Ý£¬Ö§³Ö¶àÓòÃû£¨²»ÊÇͨÅä·û£©£¬ÈýÌõÃüÁʱǩÊð+µ¼³öÖ¤Ê顣ȱµãÊÇÔÝʱֻÓÐÈý¸öÔÂÓÐЧÆÚ£¬µ½ÆÚÐèÐøÇ©¡£2Comodo PositiveSSL£¬ÊÕ·Ñ£¬µ«ÊDZȽÏÎȶ¨¡£

2¡¢ÔÚ¹ºÂòÖ¤ÊéÖ®ºó£¬ÔÚÖ¤ÊéÌṩµÄÍøÕ¾ÉÏÅäÖÃ×Ô¼ºµÄÓòÃû£¬½«Ö¤ÊéÏÂÔØÏÂÀ´Ö®ºó£¬ÅäÖÃ×Ô¼ºµÄweb·þÎñÆ÷£¬Í¬Ê±½øÐдúÂë¸ÄÔì¡£

3¡¢HTTPS ½µµÍÓû§·ÃÎÊËÙ¶È¡£SSLÎÕÊÖ£¬HTTPS ¶ÔËÙ¶È»áÓÐÒ»¶¨³Ì¶ÈµÄ½µµÍ£¬µ«ÊÇÖ»Òª¾­¹ýºÏÀíÓÅ»¯ºÍ²¿Êð£¬HTTPS ¶ÔËٶȵÄÓ°ÏìÍêÈ«¿ÉÒÔ½ÓÊÜ¡£Ôںܶೡ¾°Ï£¬HTTPS ËÙ¶ÈÍêÈ«²»Ñ·ÓÚ HTTP£¬Èç¹ûʹÓà SPDY£¬HTTPS µÄËÙ¶ÈÉõÖÁ»¹Òª±È HTTP ¿ì¡£

4¡¢Ïà¶ÔÓÚHTTPS½µµÍ·ÃÎÊËÙ¶È£¬Æäʵ¸üÐèÒª¹ØÐĵÄÊÇ·þÎñÆ÷¶ËµÄCPUѹÁ¦£¬HTTPSÖдóÁ¿µÄÃÜÔ¿Ëã·¨¼ÆË㣬»áÏûºÄ´óÁ¿µÄCPU×ÊÔ´£¬Ö»ÓÐ×ã¹»µÄÓÅ»¯£¬HTTPS µÄ»úÆ÷³É±¾²Å²»»áÃ÷ÏÔÔö¼Ó¡£

ÍÆ¼öÒ»ÔòÌÔ±¦Íø¸ÄÔìHTTPS£¨http://velocity.oreilly.com.cn/2015/ppts/lizhenyu.pdf£©µÄÎÄÕ¡£

9¡¢Ê¹ÓÃSPDY¼Ó¿ìÄãµÄÍøÕ¾ËÙ¶È

2012ÄêgoogleÈçÒ»Éù¾ªÀ×Ìá³öÁËSPDYµÄ·½°¸£¬´ó¼Ò²Å¿ªÊ¼´ÓÕýÃæ¿´´ýºÍ½â¾öÀϰ汾HTTPЭÒé±¾ÉíµÄÎÊÌ⣬SPDY¿ÉÒÔ˵ÊÇ×ÛºÏÁËHTTPSºÍHTTPÁ½ÕßÓеãÓÚÒ»ÌåµÄ´«ÊäЭÒ飬Ö÷Òª½â¾ö£º

1¡¢½µµÍÑÓ³Ù£¬Õë¶ÔHTTP¸ßÑÓ³ÙµÄÎÊÌ⣬SPDYÓÅÑŵIJÉÈ¡Á˶à·¸´Óã¨multiplexing£©¡£¶à·¸´ÓÃͨ¹ý¶à¸öÇëÇóstream¹²ÏíÒ»¸ötcpÁ¬½ÓµÄ·½Ê½£¬½â¾öÁËHOL blockingµÄÎÊÌ⣬½µµÍÁËÑÓ³ÙͬʱÌá¸ßÁË´ø¿íµÄÀûÓÃÂÊ¡£

2¡¢ÇëÇóÓÅÏȼ¶£¨request prioritization£©¡£¶à·¸´ÓôøÀ´Ò»¸öеÄÎÊÌâÊÇ£¬ÔÚÁ¬½Ó¹²ÏíµÄ»ù´¡Ö®ÉÏÓпÉÄܻᵼÖ¹ؼüÇëÇó±»×èÈû¡£SPDYÔÊÐí¸øÃ¿¸örequestÉèÖÃÓÅÏȼ¶£¬ÕâÑùÖØÒªµÄÇëÇó¾Í»áÓÅÏȵõ½ÏìÓ¦¡£±ÈÈçä¯ÀÀÆ÷¼ÓÔØÊ×Ò³£¬Ê×Ò³µÄhtmlÄÚÈÝÓ¦¸ÃÓÅÏÈչʾ£¬Ö®ºó²ÅÊǸ÷ÖÖ¾²Ì¬×ÊÔ´Îļþ£¬½Å±¾ÎļþµÈ¼ÓÔØ£¬ÕâÑù¿ÉÒÔ±£Ö¤Óû§ÄܵÚһʱ¼ä¿´µ½ÍøÒ³ÄÚÈÝ¡£

3¡¢headerѹËõ¡£Ç°ÃæÌáµ½HTTP1.xµÄheaderºÜ¶àʱºò¶¼ÊÇÖØ¸´¶àÓàµÄ¡£Ñ¡ÔñºÏÊʵÄѹËõËã·¨¿ÉÒÔ¼õС°üµÄ´óСºÍÊýÁ¿¡£

4¡¢»ùÓÚHTTPSµÄ¼ÓÃÜЭÒé´«Ê䣬´ó´óÌá¸ßÁË´«ÊäÊý¾ÝµÄ¿É¿¿ÐÔ¡£

5¡¢·þÎñ¶ËÍÆËÍ£¨server push£©£¬²ÉÓÃÁËSPDYµÄÍøÒ³£¬ÀýÈçÎÒµÄÍøÒ³ÓÐÒ»¸ösytle.cssµÄÇëÇó£¬ÔÚ¿Í»§¶ËÊÕµ½sytle.cssÊý¾ÝµÄͬʱ£¬·þÎñ¶Ë»á½«sytle.jsµÄÎļþÍÆË͸ø¿Í»§¶Ë£¬µ±¿Í»§¶ËÔٴγ¢ÊÔ»ñÈ¡sytle.jsʱ¾Í¿ÉÒÔÖ±½Ó´Ó»º´æÖлñÈ¡µ½£¬²»ÓÃÔÙ·¢ÇëÇóÁË¡£SPDY¹¹³Éͼ£º

SPDYλÓÚHTTP֮ϣ¬TCPºÍSSLÖ®ÉÏ£¬ÕâÑù¿ÉÒÔÇáËɼæÈÝÀϰ汾µÄHTTPЭÒé(½«HTTP1.xµÄÄÚÈÝ·â×°³ÉÒ»ÖÖеÄframe¸ñʽ)£¬Í¬Ê±¿ÉÒÔʹÓÃÒÑÓеÄSSL¹¦ÄÜ¡£

¼æÈÝÐÔ£º

10¡¢HTTP2.0µÄǰÊÀ½ñÉú

¹ËÃû˼ÒåÓÐÁËHTTP1.x£¬ÄÇôHTTP2.0Ò²¾Í˳Àí³ÉÕµijöÏÖÁË¡£

HTTP2.0¿ÉÒÔ˵ÊÇSPDYµÄÉý¼¶°æ£¨Æäʵԭ±¾Ò²ÊÇ»ùÓÚSPDYÉè¼ÆµÄ£©£¬µ«ÊÇ£¬HTTP2.0 ¸ú SPDY ÈÔÓв»Í¬µÄµØ·½£¬Ö÷ÒªÊÇÒÔÏÂÁ½µã£º

HTTP2.0 Ö§³ÖÃ÷ÎÄ HTTP ´«Ê䣬¶ø SPDY Ç¿ÖÆÊ¹Óà HTTPS

HTTP2.0 ÏûϢͷµÄѹËõËã·¨²ÉÓà HPACK£¬¶ø·Ç SPDY ²ÉÓÃµÄ DEFLATE

11. HTTP2.0µÄÐÂÌØÐÔ

еĶþ½øÖƸñʽ£¨Binary Format£©£¬HTTP1.xµÄ½âÎöÊÇ»ùÓÚÎı¾¡£»ùÓÚÎı¾Ð­ÒéµÄ¸ñʽ½âÎö´æÔÚÌìȻȱÏÝ£¬Îı¾µÄ±íÏÖÐÎʽÓжàÑùÐÔ£¬Òª×öµ½½¡×³ÐÔ¿¼Âǵij¡¾°±ØÈ»ºÜ¶à£¬¶þ½øÖÆÔò²»Í¬£¬Ö»ÈÏ0ºÍ1µÄ×éºÏ¡£»ùÓÚÕâÖÖ¿¼ÂÇHTTP2.0µÄЭÒé½âÎö¾ö¶¨²ÉÓöþ½øÖƸñʽ£¬ÊµÏÖ·½±ãÇÒ½¡×³¡£

¶à·¸´Óã¨MultiPlexing£©£¬¼´Á¬½Ó¹²Ïí£¬¼´Ã¿Ò»¸örequest¶¼ÊÇÊÇÓÃ×÷Á¬½Ó¹²Ïí»úÖÆµÄ¡£Ò»¸örequest¶ÔÓ¦Ò»¸öid£¬ÕâÑùÒ»¸öÁ¬½ÓÉÏ¿ÉÒÔÓжà¸örequest£¬Ã¿¸öÁ¬½ÓµÄrequest¿ÉÒÔËæ»úµÄ»ìÔÓÔÚÒ»Æð£¬½ÓÊÕ·½¿ÉÒÔ¸ù¾ÝrequestµÄ id½«requestÔÙ¹éÊôµ½¸÷×Ô²»Í¬µÄ·þÎñ¶ËÇëÇóÀïÃæ¡£¶à·¸´ÓÃÔ­Àíͼ£º

headerѹËõ£¬ÈçÉÏÎÄÖÐËùÑÔ£¬¶ÔÇ°ÃæÌáµ½¹ýHTTP1.xµÄheader´øÓдóÁ¿ÐÅÏ¢£¬¶øÇÒÿ´Î¶¼ÒªÖظ´·¢ËÍ£¬HTTP2.0ʹÓÃencoderÀ´¼õÉÙÐèÒª´«ÊäµÄheader´óС£¬Í¨Ñ¶Ë«·½¸÷×ÔcacheÒ»·Ýheader fields±í£¬¼È±ÜÃâÁËÖØ¸´headerµÄ´«Ê䣬ÓÖ¼õСÁËÐèÒª´«ÊäµÄ´óС¡£

·þÎñ¶ËÍÆËÍ£¨server push£©£¬Í¬SPDYÒ»Ñù£¬HTTP2.0Ò²¾ßÓÐserver push¹¦ÄÜ¡£Ä¿Ç°£¬Óдó¶àÊýÍøÕ¾ÒѾ­ÆôÓÃHTTP2.0£¬ÀýÈçYouTuBe£¬ÌÔ±¦ÍøµÈÍøÕ¾£¬ÀûÓÃchrome¿ØÖÆÌ¨¿ÉÒԲ鿴ÊÇ·ñÆôÓÃH2£º

¸ü¶à¹ØÓÚHTTP2µÄÎÊÌâ¿ÉÒԲο¼£ºHTTP2ÆæÃîÈÕ³££¨http://www.alloyteam.com/2015/03/http2-0-di-qi-miao-ri-chang/£©£¬ÒÔ¼°HTTP2.0µÄ¹Ù·½ÍøÕ¾¡£

¹ØÓÚHTTP2ºÍHTTP1.xµÄÇø±ð´óÖ¿ÉÒÔ¿´ÏÂͼ£º

12¡¢HTTP2.0µÄÉý¼¶¸ÄÔì

¶Ô±ÈHTTPSµÄÉý¼¶¸ÄÔ죬HTTP2.0»òÐí»áÉÔ΢¼òµ¥Ò»Ð©£¬Äã¿ÉÄÜÐèÒª¹Ø×¢ÒÔÏÂÎÊÌ⣺

1¡¢Ç°ÎÄ˵ÁËHTTP2.0Æäʵ¿ÉÒÔÖ§³Ö·ÇHTTPSµÄ£¬µ«ÊÇÏÖÔÚÖ÷Á÷µÄä¯ÀÀÆ÷Ïñchrome£¬firefox±íʾ»¹ÊÇÖ»Ö§³Ö»ùÓÚ TLS ²¿ÊðµÄHTTP2.0ЭÒ飬ËùÒÔÒªÏëÉý¼¶³ÉHTTP2.0»¹ÊÇÏÈÉý¼¶HTTPSΪºÃ¡£

2¡¢µ±ÄãµÄÍøÕ¾ÒѾ­Éý¼¶HTTPSÖ®ºó£¬ÄÇôÉý¼¶HTTP2.0¾Í¼òµ¥ºÜ¶à£¬Èç¹ûÄãʹÓÃNGINX£¬Ö»ÒªÔÚÅäÖÃÎļþÖÐÆô¶¯ÏàÓ¦µÄЭÒé¾Í¿ÉÒÔÁË£¬¿ÉÒԲο¼NGINX°×ƤÊ飬NGINXÅäÖÃHTTP2.0¹Ù·½Ö¸ÄÏ¡£

3¡¢Ê¹ÓÃÁËHTTP2.0ÄÇô£¬Ô­±¾µÄHTTP1.xÔõô°ì£¬Õâ¸öÎÊÌâÆäʵ²»Óõ£ÐÄ£¬HTTP2.0ÍêÈ«¼æÈÝHTTP1.xµÄÓïÒ壬¶ÔÓÚ²»Ö§³ÖHTTP2.0µÄä¯ÀÀÆ÷£¬NGINX»á×Ô¶¯ÏòϼæÈݵġ£

   
2933 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

¹È¸è½ÌÄãÈçºÎ¹¹½¨Ò»¸öÓÅÐãµÄÒÆ¶¯ÍøÕ¾
ÈçºÎ¸ßЧµØ¹ÜÀíÍøÕ¾¾²Ì¬×ÊÔ´
¸ßÐÔÄÜÍøÕ¾½¨ÉèµÄ×î¼Ñʵ¼ù
Ïл°ÍøÕ¾×ó²àµ¼º½µÄʵÏÖ
 
Ïà¹ØÎĵµ

ÍøÕ¾½¨Éè·½°¸Á÷³Ì
ÍøÕ¾½¨Éècss½Ì³Ì
ÆóÒµÍøÕ¾½¨ÉèÓëÍÆ¹ã
ÍøÕ¾½¨Éè·½°¸Êé
Ïà¹Ø¿Î³Ì

Éè¼ÆÄ£Ê½Ô­ÀíÓëÓ¦ÓÃ
´ÓÐèÇó¹ý¶Éµ½Éè¼Æ
Èí¼þÉè¼ÆÔ­ÀíÓëʵ¼ù
ÈçºÎ±àд¸ßÖÊÁ¿´úÂë
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

Ê®Ììѧ»áDIV+CSS(WEB±ê×¼)
HTML 5µÄ¸ïУº½á¹¹Ö®ÃÀ
½éÉÜ27¿î¾­µäµÄCSS¿ò¼Ü
35¸öÓд´ÒâµÄ404´íÎóÒ³Ãæ
×îÈÝÒ×·¸µÄ13¸öJavaScript´íÎó
Éè¼ÆÒ×Àí½âºÍ²Ù×÷µÄÍøÕ¾

Éè¼ÆÄ£Ê½Ô­ÀíÓëÓ¦ÓÃ
´ÓÐèÇó¹ý¶Éµ½Éè¼Æ
Èí¼þÉè¼ÆÔ­ÀíÓëʵ¼ù
ÈçºÎ±àд¸ßÖÊÁ¿´úÂë
µ¥Ôª²âÊÔ¡¢Öع¹¼°³ÖÐø¼¯³É
Èí¼þ¿ª·¢¹ý³ÌÖ¸ÄÏ

¶«Èí¼¯ÍÅ ´úÂëÖØ¹¹
ij½ðÈÚÈí¼þ·þÎñÉÌ ¼¼ÊõÎĵµ
Öдïµçͨ Éè¼ÆÄ£Ê½Ô­ÀíÓëʵ¼ù
·¨¹úµçÐÅ ¼¼ÊõÎĵµ±àдÓë¹ÜÀí
Î÷ÃÅ×Ó Ç¶ÈëʽÉè¼ÆÄ£Ê½
ÖÐд󶫷½ÈËÊÙ ¼¼ÊõÎĵµ±àд