HTTP³¬Îı¾´«ÊäЭÒé-HTTP/1.1ÖÐÎİæ

Network Working Group(ÍøÂ繤×÷×é)                          R. Fielding

Request for Comments: 2616                                   UC Irvine

Obsoletes(¹ýʱÆúÓã©: 2068                                   J. Gettys

Category: Standards Track £¨Àà±ð:±ê×¼×é £©                  Compaq/W3C

                                                              J. Mogul

                                                                Compaq

                                                            H. Frystyk

                                                               W3C/MIT

                                                           L. Masinter

                                                                 Xerox

                                                              P. Leach

                                                             Microsoft

                                                        T. Berners-Lee

                                                               W3C/MIT

                                                             June 1999

 

 

 

                ³¬Îı¾´«ÊäЭÒé-HTTP/1.1

               

˵Ã÷

   ±¾Îĵµ¹æ¶¨ÁË»¥ÁªÍøÉçÇøµÄ±ê×¼×éЭÒ飬²¢ÐèÒªÌÖÂۺͽ¨ÒéÒÔ±ã¸ü¼ÓÍêÉÆ¡£Çë²Î¿¼

¡°»¥ÁªÍø¹Ù·½Ð­Òé±ê×¼¡±£¨STD 1£©À´Á˽ⱾЭÒéµÄ±ê×¼»¯×´Ì¬¡£±¾Ð­Òé²»ÏÞÁ÷´«·¢²¼¡£

 

°æÈ¨ÉùÃ÷

   Copyright (C) The Internet Society (1999).          All Rights Reserved.

¡¡Copyright  www.cnpaf.net (2007).          All Rights Reserved.

 

ÕªÒª

 

³¬Îı¾´«ÊäЭÒ飨HTTP£©ÊÇÒ»ÖÖΪ·Ö²¼Ê½£¬ºÏ×÷ʽ£¬¶àýÌåÐÅϢϵͳ·þÎñ£¬ÃæÏò

Ó¦ÓòãµÄЭÒé¡£ËüÊÇÒ»ÖÖͨÓõ쬲»·Ö״̬£¨stateless)µÄЭÒ飬³ýÁËÖîÈçÃû³Æ·þÎñºÍ·Ö²¼¶ÔÏó¹ÜÀíϵͳ֮ÀàµÄ³¬Îı¾ÓÃ;Í⣬»¹¿ÉÒÔͨ¹ýÀ©Õ¹ËüµÄÇëÇó·½Ê½£¬´íÎó´úÂëºÍ±¨Í·[47]À´

Íê³ÉÐí¶àÈÎÎñ¡£HTTPµÄÒ»¸öÌØµãÊÇÊý¾Ý±íʾ·½Ê½µÄµäÐÍÐԺͿÉЭÉÌÐÔÔÊÐí¶ÀÁ¢ÓÚ´«ÊäÊý¾Ý

¶ø½¨Á¢ÏµÍ³¡£

HTTPÔÚ1990ÄêWWWÈ«ÇòÐÅÏ¢¸Õ¸ÕÆð²½µÄʱºò¾ÍµÃµ½ÁËÓ¦Óᣱ¾ËµÃ÷ÊéÏêϸ²ûÊöÁËHTTP/1.1

ЭÒ飬ÊÇRFC 2068µÄÐÞ¶©°æ[33]¡£

 

Ŀ¼£¨ÂÔ£©

 

1 ÒýÂÛ

 

1.1 Ä¿µÄ

 

³¬Îı¾´«ÊäЭÒ飨HTTP£©ÊÇÒ»ÖÖΪ·Ö²¼Ê½£¬ºÏ×÷ʽ£¬¶àýÌåÐÅϢϵͳ·þÎñ£¬ÃæÏòÓ¦ÓòãµÄ

ЭÒé¡£ÔÚ1990ÄêWWWÈ«ÇòÐÅÏ¢¸Õ¸ÕÆð²½µÄʱºòHTTP¾ÍµÃµ½ÁËÓ¦Óá£HTTPµÄµÚÒ»¸ö°æ±¾½Ð×öHTTP/0.9,ÊÇÒ»ÖÖΪ»¥ÁªÍøÔ­Ê¼Êý¾Ý´«Êä·þÎñµÄ¼òµ¥Ð­Òé¡£ÓÉRFC 1945[6]¶¨ÒåµÄHTTP/1.0½øÒ»²½ÍêÉÆÁËÕâ¸öЭÒé¡£ËüÔÊÐíÏûÏ¢ÒÔÀàËÆMIMEµÄ¸ñʽ´«ËÍ£¬°üÀ¨ÓйØÊý¾Ý´«ÊäµÄά»¤ÐÅÏ¢ºÍ¹ØÓÚÇëÇó/Ó¦´ðµÄ¾ä·¨ÐÞÕý¡£µ«ÊÇ£¬HTTP/1.0ûÓгä·Ö¿¼Âǵ½·Ö²ã´úÀí£¬¸ßËÙ»º´æµÄ×÷ÓÃÒÔ¼°¶ÔÎȶ¨Á¬½ÓºÍÐéÄâÖ÷»úµÄÐèÇó¡£²¢ÇÒËæ×Ų»ÍêÉÆµÄ½ø³ÌÓ¦Óõļ¤

Ôö£¬HTTP/1.0ÆÈÇÐÐèÒªÒ»¸öеİ汾,ÒÔ±ãʹÁ½¸öͨÐÅÓ¦ÓóÌÐòÄܹ»È·¶¨±Ë´ËµÄÕæÊµÐÔÄÜ¡£

 

ÕâÀï¹æ¶¨µÄЭÒé½Ð×ö¡°HTTP/1.1".Õâ¸öЭÒéÓëHTTP/1.0Ïà±È£¬ÒªÇó¸üΪÑϸñ£¬ÒÔÈ·±£¸÷ÏÄܵõ½¿É¿¿ÊµÏÖ¡£

 

ʵ¼ÊµÄÐÅϢϵͳ³ýÁ˼òµ¥µÄ¼ìË÷Í⣬ҪÇó¸ü¶àµÄ¹¦ÄÜÐÔ£¨functionality)£¬°üÀ¨²éÕÒ(search)£¬Ç°¶Ë¸üÐÂ(front-end update)ºÍ×¢½â(annotation)¡£HTTPÔÊÐí¿ÉÀ©³äµÄ·½·¨¼¯ºÍ±¨Í·¼¯ÒÔָʾÇëÇóµÄÄ¿µÄ[47]¡£ËüÊǽ¨Á¢ÔÚͳһ×ÊÔ´±êʶ·û£¨URI£©[3]ÌṩµÄµØÖ·£¨URL£©[4]ºÍÃû×Ö£¨URN£©ÉÏ[20]£¬ÒÔÖ¸³ö·½·¨Ó¦ÓÃÓÚÄĸö×ÊÔ´µÄ¡£ÏûÏ¢ÒÔÀàËÆÓÚÒ»ÖÖ½Ð×ö¶àÓÃÍ¾ÍøÂçÓʼþÀ©Õ¹£¨MIME£©[7] µÄ»¥ÁªÍøÓʼþµÄ¸ñʽ´«ËÍ¡£

 

HTTPÒ²ÊÇÓÃÓÚÓû§´úÀíÖ®¼ä¼°´úÀí/Íø¹Øµ½ÆäËûÍøÂçϵͳµÄͨÓÃͨÐÅЭÒ飬ÕâÑùµÄÍøÂçϵͳ¿ÉÄÜÓÉSMTP[16],NNTP[13],FTP[18],Gopher[2]ºÍWAIS[10]ЭÒéÖ§³Ö¡£ÕâÑù£¬HTTPÔÊÐí²»Í¬µÄÓ¦ÓóÌÐò¶Ô×ÊÔ´½øÐлù±¾µÄ³¬Ã½Ìå·ÃÎÊ¡£

 

1.2 񻂗

 

±¾ÎĵĹؼü´Ê"MUST", "MUST NOT", "REQUIRED", "SHALL","SHALL NOT","SHOULD",

"SHOULD NOT", "RECOMMENDED", "MAY", ºÍ "OPTIONAL"½«ÓÉRFC 2119[34]½âÊÍ¡£

 

Ò»Ïî½ø³ÌÈç¹û²»ÄÜÂú×ãЭÒéÌṩµÄÒ»¸ö»ò¶à¸öMUST»òREQUIREDµÈ¼¶µÄÒªÇó£¬ÊDz»·ûºÏÒªÇóµÄ¡£Ò»Ïî½ø³ÌÈç¹ûÂú×ãËùÓÐMUST»òREQUIREDµÈ¼¶ÒÔ¼°ËùÓÐSHOULDµÈ¼¶µÄÒªÇó£¬Ôò±»³ÆÎª¡°¾ø¶Ô·ûºÏ¡±£¨unconditionally compliant£©µÄ£»ÈôÂú×ãËùÓÐMUSTµÈ¼¶µÄÒªÇ󵫲»ÄÜÂú×ãËùÓÐSHOULDµÈ¼¶µÄÒªÇóÔò±»³ÆÎª¡°²¿·Ö·ûºÏ¡±£¨conditionally compliant£©µÄ¡£

 

1.3 ÊõÓï

 

±¾ËµÃ÷Óõ½ÁËÈô¸ÉÊõÓÒÔ±íʾHTTPͨÐÅÖи÷²ÎÓëÕߺͶÔÏó°çÑݵIJ»Í¬½ÇÉ«¡£

 

Á¬½Ó£¨Connection£©

ΪͨÐŶøÔÚÁ½¸ö³ÌÐò¼ä½¨Á¢µÄ´«Êä²ãÐéÄâµç·¡£

 

ÏûÏ¢(Message)

HTTPͨÐÅÖеĻù±¾µ¥Ôª¡£ËüÓÉÒ»¸ö½á¹¹»¯µÄ°Ë±ÈÌØ×Ö½ÚÐòÁÐ×é³É£¬ÓëµÚ4Õ¶¨ÒåµÄ¾ä·¨ÏàÆ¥Å䣬²¢Í¨¹ýÁ¬½ÓµÃµ½´«ËÍ¡£

 

ÇëÇó(Request)

Ò»ÖÖHTTPÇëÇóÏûÏ¢£¬²Î¿´µÚ5յ͍Òå¡£

 

Ó¦´ð(Response)

Ò»ÖÖHTTPÓ¦´ðÏûÏ¢£¬²Î¿´µÚ6յ͍Òå¡£

 

×ÊÔ´(Resource)

Ò»ÖÖÍøÂçÊý¾Ý¶ÔÏó»ò·þÎñ£¬¿ÉÒÔÓõÚ3.2½Ú¶¨ÒåµÄURIÃèÊö¡£×ÊÔ´¿ÉÒÔÒÔ¶àÖÖ±íÏÖ·½Ê½

£¨ÀýÈç¶àÖÖÓïÑÔ£¬Êý¾Ý¸ñʽ£¬´óСºÍ½â¾ö·½°¸£©»òÆäËû²»Í¬µÄ;¾¶»ñµÃ¡£

 

ʵÌå(Entity)

×÷ΪÇëÇó»òÓ¦´ðµÄÓÐЧ¸ººÉ¶ø´«ÊäµÄÐÅÏ¢.Ò»¸öʵÌå°üº¬±¨Í·ÐÎʽµÄά»¤ÐÅÏ¢ºÍÏûÏ¢ÌåÐÎʽµÄÄÚÈÝ,ÓɵÚ7½ÚÏêÊö.

 

±íʾ·½·¨(Representation)

Ò»¸öÓ¦´ð°üº¬µÄʵÌåÊÇÓÉÄÚÈÝЭÉ̾ö¶¨µÄ,ÈçµÚ12ÕÂËùÊö.Ò»¸öÌØ¶¨µÄÓ¦´ð״̬Ëù¶ÔÓ¦µÄ±íʾ·½·¨¿ÉÄÜÓжà¸ö.

 

ÄÚÈÝЭÉÌ(Content Negotiation)

ΪÇëÇó·þÎñʱѡÔñÊʵ±±íʾ·½·¨µÄ»úÖÆ£¨mechanism),ÈçµÚ12½ÚËùÊö.ÈκÎÓ¦´ðÀïʵÌåµÄ±íʾ·½·¨¶¼ÊÇ¿ÉЭÉ̵Ä(°üÀ¨³ö´íÓ¦´ð).

 

±äÁ¿£¨Variant)

ÔÚÈκθø¶¨Ê±¿Ì,ÓëÒ»¸ö×ÊÔ´¶ÔÓ¦µÄ±íʾ·½·¨¿ÉÒÔÓÐÒ»¸ö»ò¸ü¶à.ÿ¸ö±íʾ·½·¨³Æ×÷Ò»¸ö±äÁ¿.ʹÓñäÁ¿Õâ¸öÊõÓï²¢²»±ØÈ»Òâζ×Å×ÊÔ´ÊÇÓÉÄÚÈÝЭÉ̾ö¶¨µÄ.

 

¿Í»§»ú£¨Client£©

Ϊ·¢ËÍÇëÇó½¨Á¢Á¬½ÓµÄ³ÌÐò.

 

Óû§´úÀí(User agent)

³õʼ»¯ÇëÇóµÄ¿Í»§¶Ë³ÌÐò.³£¼ûµÄÈçä¯ÀÀÆ÷,±à¼­Æ÷,Ö©Öë(ÍøÂç´©Ô½»úÆ÷ÈË),»òÆäËûµÄÖÕ¶ËÓû§¹¤¾ß.

 

·þÎñÆ÷(Server)

ͬÒâÁ¬½ÓÒÔ±ãͨ¹ý·¢»ØÓ¦´ðΪÇëÇóÌṩ·þÎñµÄÓ¦ÓóÌÐò.Èκθø¶¨µÄ³ÌÐò¶¼ÓпÉÒÔ¼È×ö¿Í»§¶ËÓÖ×ö·þÎñÆ÷;ÎÒÃÇʹÓÃÕâЩÊõÓï½öÖ¸ÌØ¶¨Á¬½ÓÖгÌÐòÍê³ÉµÄÈÎÎñ,¶ø²»ÊÇָͨ³£ÒâÒåÉϳÌÐòµÄÐÔÄÜ.ͬÑù,ÈκηþÎñÆ÷¶¼¿ÉÒÔ»ùÓÚÿ¸öÇëÇóµÄÐÔÖʰçÑÝÔ­·þÎñÆ÷,´úÀí,Íø¹Ü,»òÕßËíµÀµÈÖî½Çɫ֮һ¡£

 

Ô­·þÎñÆ÷£¨Origin server)

¸ø¶¨µÄ×ÊԴפÁô»ò´´½¨µÄµØ·½.

 

´úÀí·þÎñÆ÷£¨ Proxy£©

Ò»¸ö¼È×ö·þÎñÆ÷ÓÖ×ö¿Í»§¶ËµÄÖнé³ÌÐò.,ÆäÓÃ;ÊÇ´ú±íÆäËû¿Í»§·¢ËÍÇëÇó.ÇëÇóÔÚÄÚ²¿µÃµ½·þÎñ,»òÕß¾­¹ýÒ»¶¨µÄ·­ÒëתÖÁÆäËû·þÎñÆ÷.Ò»¸ö´úÀí·þÎñÆ÷±ØÐëÄÜͬʱÂÄÐб¾ËµÃ÷Öпͻ§¶ËºÍ·þÎñÆ÷ÒªÇó.¡°Í¸Ã÷´úÀí¡±£¨transparent proxy£©ÊÇÒ»ÖÖ³ýÁ˱ØÐèµÄÑéÖ¤ºÍ¼ø¶¨Íâ²»ÐÞ¸ÄÇëÇó»òÏàÓ¦µÄ´úÀí.¡°·Ç͸Ã÷´úÀí¡±£¨non-transparent proxy£©ÊÇÒ»ÖÖÐÞ¸ÄÇëÇó»òÓ¦´ðÒÔ±ãΪÓû§´úÀíÌṩ¸½¼Ó·þÎñµÄ´úÀí,¸½¼Ó·þÎñ°üÀ¨Àà×¢ÊÍ·þÎñ,ýÌåÀàÐÍת»»,ЭÒé¼ò»¯,»òÕßÄäÃûÂ˳ýµÈ.³ý·Ç¾­Ã÷È·Ö¸³ö,HTTP´úÀíÒªÇó¶ÔÁ½ÖÖ´úÀí¶¼ÊÊÓÃ.

 

Íø¹Ø£¨gateway£©

ΪÆäËû·þÎñÆ÷³äµ±ÖнéµÄ·þÎñÆ÷.Óë´úÀí·þÎñÆ÷²»Í¬,Íø¹Ø½ÓÊÕÇëÇó,·Â·ðËü¾ÍÊDZ»ÇëÇó×ÊÔ´ËùÔÚµÄÔ­·þÎñÆ÷;Ìá³öÇëÇóµÄ¿Í»§¿ÉÄܾõ²ì²»µ½ËüÕýÔÚÍ¬Íø¹ØÍ¨ÐÅ.

Ò»¸öÔÚÁ½¸öÁ¬½ÓÖ®¼ä³äµ±Ã¤Ä¿Öм̣¨blind relay)µÄÖмä³ÌÐò.Ò»µ©ÓÐЧ,ËíµÀ±ã²»ÔÙ±»ÈÏΪÊÇHTTPͨÐŵÄÓû§,ËäÈ»ËíµÀ¿ÉÄÜÒѾ­±»HTTPÇëÇó³õʼ»¯ÁË.µ±Á½¶ËµÄÖмÌÁ¬½Ó¶¼¹Ø±ÕµÄʱºò,ËíµÀ²»ÔÙ´æÔÚ.

 

¸ßËÙ»º´æ£¨Cache£©

Ò»¸ö³ÌÐòÓ¦´ðÐÅÏ¢µÄ±¾µØ´æ´¢ºÍ¿ØÖÆ´ËÐÅÏ¢´æ´¢¡¢¼ìË÷ºÍɾ³ýµÄ×Óϵͳ,Ò»¸ö¸ßËÙ»º³å´æ´¢Æ÷´æ´¢Ó¦´ðΪµÄÊǼõÉÙ¶Ô½«À´Í¬ÑùÇëÇóµÄÓ¦´ðʱ¼äºÍÍøÂç´ø¿íÏûºÄ,ÈÎÒ»¿Í»§»ò·þÎñÆ÷¶¼¿ÉÄܰüº¬Ò»¸ö¸ßËÙ»º´æ,µ«¸ßËÙ»º´æ²»ÄÜÓ¦ÓÃÓÚÒ»¸ö³äµ±ËíµÀµÄ·þÎñÆ÷.

 

¿É»º´æ£¨Cacheable£©

       Èç¹ûÒ»¸ö¸ßËÙ»º´æÔÊÐí´æ´¢Ó¦´ðÐÅÏ¢µÄÒ»·Ý¿½±´ÔËÓÃÓÚÓ¦´ðºó¼ÌÇëÇóµÄ¿½±´,Ò»¸öÓ¦´ð¾ÍÊǿɻº´æµÄ.ÓÃÀ´È·¶¨HTTPÓ¦´ðµÄ»º´æÄÜÁ¦£¨cacheability£©µÄ¹æÔòÔÚ13½ÚÖÐÓж¨Òå.¼´Ê¹Ò»¸ö×ÊÔ´Êǿɻº´æµÄ,Ò²¿ÉÄܶÔÒ»¸ö¸ßËÙ»º´æÄÜ·ñ½«»º´æ¿½±´ÓÃÓÚÄ³ÌØ¶¨ÇëÇó´æÔÚ¸½¼ÓµÄÔ¼Êø.

 

Ö±½Ó£¨first-hand£©

      Èç¹ûÒ»¸öÓ¦´ðÖ±½Óµ½À´²¢ÇÒûÓÐÔµÓÚÔ­·þÎñÆ÷,»òÈô¸É´úÀí·þÎñÆ÷µÄ²»±ØÒªµÄÑÓʱ,ÄÇôÕâ¸öÓ¦´ð¾ÍÊÇÖ±½ÓµÄ.Èç¹ûËüµÄÓÐЧÐÔÒѾ­±»Ô­·þÎñÆ÷Ö±½ÓÈÏÖ¤,ÄÇôÕâ¸öÓ¦´ðҲͬÑùÊǵÚÒ»ÊÖµÄ.

 

Ã÷È·ÖÕֹʱ¼ä£¨explicit expiration time£©    

Ô­·þÎñÆ÷Ô¤ËãÒ»¸öʵÌåÔÚÎÞÐè½øÒ»²½È·ÈϵÄÇé¿öϲ»ÔÙ±»¸ßËÙ»º´æ·µ»ØµÄʱ¼ä.

 

̽Ë÷ÖÕֹʱ¼ä£¨heuristic expiration time£©     

µ±Ã»ÓÐÍâÔÚµÄÖÕֹʱ¼ä¿ÉÀûÓÃʱ, ÓɸßËÙ»º´æËùÖ¸¶¨µÄÖÕֹʱ¼ä.

 

ÄêÁ䣨Age£©

     Ò»¸öÓ¦´ðµÄÄêÁäÊÇ´ÓËü±»·¢ËÍ,»ò±»Ô­·þÎñÆ÷³É¹¦È·Èϵ½ÏÖÔÚµÄʱ¼ä.

 

±£ÏÊÊÙÃü£¨Freshness lifetime£©

Ò»¸öÓ¦´ðÉú³ÉºÍ¹ýÆÚÖ®¼äµÄʱ¼ä³¤¶È.

 

±£ÏÊ£¨Fresh£©   

Èç¹ûÒ»¸öÓ¦´ðµÄÄêÁ仹ûÓг¬¹ý±£ÏÊÊÙÃü,Ëü¾ÍÊDZ£ÏʵÄ.

 

³Â¾É£¨Stale£©

     Ò»¸öÓ¦´ðµÄÄêÁäÒѾ­³¬¹ýÁËËüµÄ±£ÏÊÊÙÃü,¾ÍÊdz¾ɵÄ.

 

ÓïÒå͸Ã÷£¨semantically transparent£©

µ±ËüµÄʹÓóýÁ˸ÄÉÆÐÔÄÜÍâ¼ÈδӰÏìÇëÇó¿Í»§»úҲδӰÏìÔ­·þÎñÆ÷ʱ, ¸ßËÙ»º´æ¶ÔÓÚÄ³ÌØ¶¨µÄÓ¦´ð¾ÍÊǹ¤×÷ÓÚÓïÒå͸Ã÷·½Ê½ÁË.µ±¸ßËÙ»º´æÓïÒå͸Ã÷ʱ,¿Í»§Ç¡ºÃÊÕµ½ÓëÔ­·þÎñÆ÷Ö±½Ó´¦ÀíÇëÇóºóµÃµ½µÄÓ¦´ð£¨³ýÁËÖð¶Îת½ÓµÄ±¨Í·²¿·Ö£©ÍêÈ«ÏàͬµÄÓ¦´ð¡£

 

ÓÐЧÐÔÅбðÆ÷£¨Validator£©

  Ò»¸öÓÃÀ´²éÕÒÒ»¸ö¸ßËÙ»º´æ¼Ç¼ÊÇ·ñÊÇÒ»¸öʵÌåµÄµÈЧ¿½±´µÄЭÒéÔªËØ(ÀýÈç,Ò»¸öʵÌå±ê¼Ç£¨entity tag£©»ò×îÖÕ¸ü¸Äʱ¼ä£¨Last-Modified time)).

 

ÉÏÓÎ/ÏÂÓΣ¨upstream/downstream£©

     ÉÏÓκÍÏÂÓÎÃèÊöÁËÏûÏ¢µÄÁ÷¶¯:ËùÓÐÏûÏ¢¶¼´ÓÉÏÓÎÁ÷µ½ÏÂÓÎ.

 

ÏòÄÚ/ÏòÍ⣨inbound/outbound£©

ÏòÄÚºÍÏòÍâÖ¸µÄÊÇÏûÏ¢µÄÇëÇóºÍÓ¦´ð·¾¶:"ÏòÄÚ"¼´"ÒÆÏòÔ­·þÎñÆ÷","ÏòÍâ"¼´"ÒÆÏòÓû§´úÀí".

¡¡Copyright  www.cnpaf.net (2007).          All Rights Reserved.

 

1¡£4 ×ÜÌå²Ù×÷

 

HTTPЭÒéÊÇÒ»ÖÖÇëÇó/Ó¦´ðЭÒé¡£ ÓëÖ÷»ú½¨Á¢Á¬½Óºó£¬¿Í»§ÒÔÇëÇó·½·¨£¬URIºÍЭÒé°æ±¾µÄÐÎʽÏò·þÎñÆ÷·¢ËÍÇëÇ󣬼ÌÒÔÀàMIMEÐÅÏ¢£¬ÆäÖаüÀ¨ÇëÇóÐ޸ģ¬¿Í»§ÐÅÏ¢ºÍ¿ÉÄܵÄÕýÎÄÄÚÈÝ¡£

·þÎñÆ÷ÓðüÀ¨ÏûϢЭÒé°æ±¾ºÍ³É¹¦»ò´íÎó´úÂëµÄ״̬½øÐÐÓ¦´ð£¬¼ÌÒÔ°üÀ¨·þÎñÆ÷ÐÅÏ¢£¬ÊµÌåά»¤ÐÅÏ¢ºÍ¿ÉÄܵÄʵÌåÄÚÈݵÄÀàMIMEÏûÏ¢¡£HTTPºÍMIMEÖ®¼äµÄ¹ØÏµÈ總¼19.4½ÚËù²ûÊö¡£

 

´ó²¿·ÖµÄHTTPͨÐÅÓÉÓû§´úÀíÒý·¢£¬ÓÉÓ¦Óõ½Ò»Ð©Ô­·þÎñÆ÷ÉÏ×ÊÔ´µÄÇëÇ󹹳ɡ£×î¼òµ¥µÄÇéÐΣ¬¿ÉÒÔ¾­Óû§´úÀí£¨UA£©ºÍÔ­·þÎñÆ÷£¨O£©Ö®¼äµÄµ¥Ò»Á¬½Ó£¨v£©Íê³É¡£ÇëÇóÁ´------------------------>Óû§´úÀí(UA)-------------------µ¥Ò»Á¬½Ó£¨v)-------------------Ô­·þÎñÆ÷£¨O£© <-----------------------Ó¦´ðÁ´

 

µ±Ò»¸ö»òÒ»¸öÒÔÉϵÄÖнéÔÚÇëÇó/Ó¦´ðÁ´ÖгöÏÖµÄʱºò£¬»á³öÏÖ¸ü¸´ÔÓµÄÇéÐΡ£³£¼ûµÄÖнéÐÎʽÓÐÈýÖÖ£º´úÀí£¬Íø¹ØºÍËíµÀ¡£´úÀíÊÇÒ»ÖÖתË͹¤¾ß£¬Ëü½ÓÊÕ¾ø¶ÔÐÎʽµÄURIÇëÇó£¬ÖØÐ´È«²¿»ò²¿·ÖÏûÏ¢£¬È»ºó°ÑÖØÐ¸ñʽ»¯ºóµÄÇëÇó·¢Ë͵½URIÈ·¶¨µÄ·þÎñÆ÷ÉÏ¡£Íø¹ØÊÇÒ»ÖÖ½ÓÊÕ¹¤¾ß£¬Ëü³äµ±ÆäËû·þÎñÆ÷µÄÉϲ㣬±ØÒªÊ±½«ÇëÇó·­ÒëΪϲã·þÎñÆ÷µÄЭÒé¡£ËíµÀ²»¸Ä±äÏûÏ¢¶ø³äµ±Á½¸öÁ¬½ÓÖ®¼äµÄÖм̵㣻ËüÓÃÓÚͨÐÅÐèÒª´©¹ýÖн飨Èç·À»ðǽ£©£¬ÉõÖÁÖн鲻ÄÜÀí½âÐÅÏ¢ÄÚÈݵÄʱºò¡£

ÇëÇóÁ´-------------------------------------->UA-----v-----A-----v-----B-----v-----C-----v-----O <-------------------------------------Ó¦´ðÁ´

 

 

ÉÏͼÏÔʾÁËÓû§´úÀíºÍÔ­·þÎñÆ÷Ö®¼äµÄÈý¸öÖн飨A£¬BºÍC)¡£ÓÎÀúÕûÌõÁ´µÄÇëÇó»òÓ¦´ðÏûÏ¢Ðèͨ¹ýËĸö¶ÀÁ¢µÄÁ¬½Ó¡£Õâ¸öÌØÐÔºÜÖØÒª£¬ÒòΪijЩHTTPͨÐÅÑ¡ÏîÖ»ÄÜÓ¦ÓÃÓÚµ½×î½üµÄ·ÇËíµÀÁÚ¾Ó£¬Á´µÄÖÕµãµÄÁ¬½Ó£¬»òÕßÑØ×ÅÁ´µÄËùÓÐÁ¬½Ó¡£Í¼±í¾¡¹ÜÊÇÏßÐԵģ¬Ã¿²¿·Ö¿ÉÄܶ¼ÔÚæÓÚ¶à·ͬʱͨÐÅ¡£ÀýÈ磬B¿ÉÒÔ½ÓÊÕÀ´×Ô²»Í¬ÓÚAµÄÐí¶à¿Í»§µÄÇëÇ󣬲¢ÇÒ£¯»òÕßתË͵½²»Í¬ÓÚCµÄ·þÎñÆ÷£¬Óë´Ëͬʱ£¬Ëü»¹ÔÚ´¦ÀíAµÄÇëÇó¡£

 

 

ÈκηÇËíµÀµÄͨÐųÉÔ±¶¼¿ÉÒÔʹÓÃÄÚ²¿µÄ¸ßËÙ»º´æÀ´´¦ÀíÇëÇ󡣸ßËÙ»º´æµÄ×÷ÓÃÊÇÈç¹ûÑØ×ÅÁ´µÄÒ»¸ö³ÉÔ±¶ÔÇëÇó²ÉÓÃÁ˸ßËÙ»º³åµÄÓ¦´ð£¬ÇëÇó/Ó¦´ðÁ´¾Í»á´ó´óËõ¶Ì¡£ÒÔÏÂͼ½â×÷Ϊ½á¹û²úÉúµÄÁ´£¬¼Ù¶¨BÓµÓÐÀ´×ÔO£¨Í¨¹ýC£©µÄÒ»¸ö´ÓǰӦ´ðµÄ±¸·Ý£¬ÇëÇóÉÐδ±»UA»òA»º´æ¡£

ÇëÇóÁ´---------->UA-----v----------A-----v-----B-----C----O <---------Ó¦´ðÁ´

 

²¢²»ÊÇËùÓеÄÓ¦´ð¶¼ÄÜÓÐЧµØ»º´æ£¬Ò»Ð©ÇëÇó¿ÉÄܺ¬ÓÐÐÞ¸ÄÁ¿£¬¶Ô»º´æ¶¯×÷ÓÐÌØÊâµÄÒªÇó¡£»º´æ¶¯×÷ºÍ»º´æÓ¦´ðµÄHTTPÒªÇó½«ÔÚµÚ13½Ú¶¨Òå¡£

 

ʵ¼ÊÉÏ£¬Ä¿Ç°ÍòÎ¬ÍøÉÏÓжàÖֽṹºÍÅäÖõĸßËÙ»º´æºÍ´úÀí±»ÊµÑé»òʹÓá£ÕâЩϵͳ°üÀ¨½ÚʡԽÑó´ø¿íµÄÈ«¹ú´úÀí²ã£¬¹ã²¥»ò¶àµãͨÐÅ»º´æ½Ó¿Ú£¬ ͨ¹ýCD-ROM·ÖÅä×Ó»º´æÊý¾ÝµÄ»ú¹¹£¬µÈµÈ¡£HTTPϵͳӦÓÃÔÚ¿íÆµ´øÁ¬½ÓµÄÆóÒµ¾ÖÓòÍøÖУ¬Í¨¹ýPDAsµÄµÍºÄÎÞÏßÁ¬½ÓºÍ¶ÏÐøÁ¬½ÓµÄ·ÃÎÊ¡£HTTP1.1µÄÄ¿±êÊÇÖ§³Ö¸÷ÖÖ¸÷ÑùµÄÓ¦ÓÃÅäÖã¬Òý½øÐ­Òé½á¹¹Âú×ãÄÇЩÐèÒª½Ï¸ß¿É¿¿ÐÔ£¬¿ÉÒÔÅųý¹ÊÕÏ»òÖÁÉÙָʾ¹ÊÕϵÄÍøÂçÓ¦ÓõÄÒªÇó¡£

 

HTTPͨÐÅÔÚͨ³£·¢ÉúÔÚTCP/£É£ÐÁ¬½ÓÉÏ¡£Ä¬È϶˿ÚÊÇTCP 80,²»¹ýÆäËü¶Ë¿ÚÒ²¿ÉÒÔʹÓá£ÔÚ»¥ÁªÍø»òÆäËûÍøÂçÉÏ£¬Õâ²¢²»·Á°­HTTPÓ¦ÓÃÔÚÆäËûЭÒéµÄ¶¥¶Ë¡£http½ö½öÆÚÍû¿É¿¿µÄ´«Ê䣻ÈκÎÌṩÕâÖÖ±£Ö¤µÄЭÒé¶¼¿ÉÒÔʹÓã»Ð­Òé´«ÊäÊý¾Ýµ¥ÔªµÄHTTP/1.1ÇëÇóºÍÓ¦´ð½á¹¹µÄÓ³ÏóÒѾ­³¬³öÁ˱¾ËµÃ÷ÊéµÄ·¶Î§¡£

 

ÔÚhttp/1.0ÖУ¬´ó²¿·ÖµÄʵÏÖΪÿ¸öÇëÇó/Ó¦´ð½»»»Ê¹ÓÃÁËÐÂÁ¬½Ó¡£¶øhttp/1.1ÖУ¬Ò»¸öÁ¬½Ó¿ÉÒÔÓÃÓÚÒ»¸ö»ò¸ü¶àÇëÇó/Ó¦´ð½»»»£¬ËäÈ»Á¬½Ó¿ÉÄÜ»áÒòΪ¸÷ÖÖÔ­ÒòÖжϣ¨¼ûµÚ8.1½Ú£©¡£

 

2 ·ûºÅ¹ßÀýºÍÒ»°ãÓï·¨

 

2£®1 À©³äBNF

 

±¾Îĵµ¹æ¶¨µÄËùÓлúÖÆ¶¼ÓÃÁ½ÖÖ·½·¨ÃèÊö£ºÉ¢ÎÄÌ壨prose)ºÍÀàËÆÓÚRFC 822µÄÀ©³äBackus-Naur Form(BNF)¡£ÒªÀí½â±¾ËµÃ÷Ê飬ʹÓÃÕßÐèÊìϤ·ûºÅ±íʾ·¨¡£À©³äBNF°üÀ¨ÏÂÁнṹ£º

 

Ãû×Ö=¶¨Òå

Ò»Ìõ¹æÔòµÄÃû×Ö½ö½öÊÇÃû×Ö±¾Éí£¨Ã»ÓÐÈκÎ"<"ºÍ">"£©,¸úµÈÓÚºÅ"="ºóÃæµÄ¶¨ÒåÊÇ·ÖÀëµÄ¡£½öµ±Á¬ÐøÏߵĿոñÓÃÀ´±íʾһÌõ³¤ÓÚÒ»ÐеĹæÔòʱ¿Õ°×²ÅÊÇÖØÒªµÄ¡£Ä³Ð©»ù±¾¹æÔòʹÓôóд×Öĸ£¬ÈçSP£¬LWS£¬HT£¬CRLF£¬DIGIT£¬ALPHA£¬µÈµÈ¡£ÎÞÂÛºÎʱ£¬Ö»ÒªËüÃǵĴæÔÚÓÐÀûÓÚʶ±ð¹æÔòÃû×Ö£¬¾Í¿ÉÒÔÔÚ¶¨ÒåµÄ·¶Î§ÄÚʹÓýÇÀ¨ºÅ¡£

 

¡°ÎÄ×Ö¡±

ÎÄ×ÖÔ­ÎÄʹÓÃÒýºÅ¡£³ýÌØÊâÇé¿ö£¬Ô­ÎĶÔÍâ½ç²»Ãô¸Ð¡£

 

¹æÔò1 | ¹æÔò2

ÓÉÊúÏß("|"£©·Ö¿ªµÄÔªËØÊÇ¿ÉÑ¡µÄ£¬ÀýÈ磬"yes | no"±íʾyes»òno¶¼ÊǿɽÓÊܵġ£

 

£¨¹æÔò1 ¹æÔò2£©

ΧÔÚÀ¨ºÅÀïµÄ¶à¸öÔªËØÊÓ×÷Ò»¸öÔªËØ¡£ÕâÑù¡°(elem (foo | bar) elem)¡±ÔÊÐí±ê¼ÇÐòÁС°elem foo elem¡±ºÍelem bar elem¡±¡£

 

*¹æÔò

Ç°ÃæµÄ×Ö·û"*"±íÊ¾ÖØ¸´¡£ÍêÕûµÄÐÎʽÊÇ"*ÔªËØ",±íÊ¾ÔªËØÖÁÉÙ³öÏִΣ¬ÖÁ¶à³öÏִΡ£Ä¬ÈÏÖµÊÇ0ºÍÎÞÇî´ó£¬ËùÒÔ"*(ÔªËØ)"ÔÊÐíÈκÎÊýÖµ£¬°üÀ¨Á㣻"1*ÔªËØ"ÖÁÉÙÐèÒªÒ»´Î£»"1*2element"ÔÊÐíÒ»´Î»òÁ½´Î¡£

 

 

[¹æÔò]

·½À¨ºÅÀïÊÇÈÎÑ¡ÔªËØ£»"[foo bar]"Ï൱ÓÚ"*1(foo bar)".

 

N ¹æÔò

ÌØÊâµÄÖØ¸´£º¡°(ÔªËØ)¡±Ï൱ÓÚ¡°*(ÔªËØ)¡±£» Ò²¾ÍÊÇ˵£¬(ÔªËØ)ÕýºÃ³öÏÖÁ˴Ρ£ÕâÑù2DIGITÊÇÒ»¸öÁ½Î»Êý×Ö£¬3ALPHAÊÇÒ»¸öÓÉÈý¸ö×Ö·û×é³ÉµÄ×Ö·û´®¡£

 

#¹æÔò

ÀàËÆÓÚ"*",½á¹¹"#"ÊÇÓÃÀ´¶¨ÒåһϵÁÐÔªËØµÄ¡£ÍêÕûµÄÐÎʽÊÇ"#ÔªËØ,±íʾÖÁÉÙ¸öÔªËØ£¬ÖÁ¶à¸öÔªËØ£¬ÔªËØÖ®¼ä±»Ò»¸ö»ò¶à¸ö¶ººÅ(",")ÒÔ¼°¿ÉÑ¡µÄÏßÐÔ°×É«¿Õ¼ä(LWS)¸ô¿ªÁË¡£Õâ¾ÍʹµÃÁбíµÄÒ»°ãÐÎʽ±äµÃ·Ç³£ÈÝÒ×£»Ïñ

( *LWS element) *( *LWS ","*LWS element ))

¾Í¿ÉÒÔ±íʾΪ

1#element

ÎÞÂÛÔÚÄÄÀïʹÓÃÕâ¸ö½á¹¹£¬¿ÕÔªËØ¶¼ÊÇÔªÐíµÄ£¬µ«ÊDz»¼ÆÈëÔªËØ³öÏֵĴÎÊý¡£»»¾ä»°Ëµ£¬¡°(ÔªËØ), , (ÔªËØ) "ÊÇÔÊÐíµÄ£¬µ«Êǽö½öÊÓΪÁ½¸öÔªËØ¡£Òò´Ë£¬ÔÚÖÁÉÙÐèÒªÒ»¸öÔªËØµÄµØ·½£¬±ØÐë´æÔÚÖÁÉÙÒ»¸ö·Ç¿ÕÔªËØ¡£Ä¬ÈÏÖµÊÇ0ºÍÎÞÇî´ó£¬ÕâÑù£¬¡°#element¡±ÔÊÐíÈκÎÊý×Ö£¬°üÀ¨Á㣻¡°1#element¡±ÖÁÉÙÐèÒª1¸öÔªËØ£»¡°1#2element¡±ÔÊÐí1¸ö»ò2¸öÔªËØ¡£

 

£»×¢ÊÍ

Ó÷ֺÅÒýµ¼µÄ×¢ÊÍ£¬´Ó¹æÔòÕýÎĵÄÓÒ±ßÒ»¶Î¾àÀ뿪ʼֱµ½ÐÐβ¡£ÕâÊÇ×ö×¢Ê͵ļòµ¥·½·¨£¬×¢ÊÍÓë˵Ã÷ÊÇͬÑùÓÐÓõġ£

 

Òþº¬ *LWS

±¾ËµÃ÷ÊéËùÃèÊöµÄÓï·¨ÊÇ»ùÓÚ×ֵġ£³ý·ÇÌØ±ð×¢Ã÷£¬ÏßÐԿհ׿ɳöÏÖÔÚÈκÎÁ½¸öÏàÁÚ×ÖÖ®¼ä£¨±ê¼Ç»òÒýÓÃ×Ö·û´®£©£¬ÒÔ¼°ÏàÁÚ×ֺͼä¸ô·ûÖ®¼ä£¬²¢²»¸Ä±äÒ»¸öÓòµÄº¬Òå¡£ÈκÎÁ½¸ö±ê¼ÇÖ®¼ä£¨ÏÂÃæ»á¶Ô"token(±ê¼Ç)"½øÐж¨Ò壩±ØÐëÓÐÖÁÉÙÒ»¸ö·Ö¸î·û£¬·ñÔò½«»á±»Àí½âΪµ¥Ò»±ê¼Ç¡£

 

2£®2»ù±¾¹æÔò

 

ÏÂÃæµÄ¹æÔòÃèÊöÁË»ù±¾µÄ½âÎö½á¹¹£¬¹á´©ÓÚ±¾ËµÃ÷ÊéµÄÈ«ÎÄ¡£US-ASCII(ÃÀ¹úÐÅÏ¢½»»»±ê×¼Âë)×Ö·û¹æ¶¨ÊÇÓÉANSI X3.4-1986[21]¶¨ÒåµÄ¡£

 

 

 

       OCTET          = <ÈÎÒâ°Ë±ÈÌØµÄÊý¾ÝÐòÁÐ>

       CHAR           = <ÈÎÒâASCII×Ö·û£¨°Ë½øÖÆ 0-127£©>

       UPALPHA        = <ÈÎÒâ´óд×Öĸ"A"..."Z">

       LOALPHA        = <ÈÎÒâСд×Öĸ"a"..."z">

       ALPHA          = UPALPHA | LOALPHA

       DIGIT          = <ÈÎÒâÊý×Ö0£¬1£¬...9>

       CTL            = <ÈÎÒâ¿ØÖÆ×Ö·û(octets 0 - 31)¼°É¾³ý¼üDEL£¨127£©>

       CR             =

       LF             =

       SP             =

       HT             =

       <">            =

 

 

HTTP/1.1½«CR LFµÄ˳Ðò¶¨ÒåΪÈκÎЭÒéÔªËØµÄÐÐβ±êÖ¾£¬³ýÁ˱¨ÎÄÒÔÍ⣨¿íËÉÓ¦Óüû¸½Â¼19.3£©.±¨ÎÄÄÚ²¿µÄÐÐβ±êÖ¾ÊÇÓÉËüµÄ¹ØÁªÃ½ÌåÀàÐͶ¨ÒåµÄ£¬Èç3.7½ÚËùÊö¡£

 

       CRLF           = CR LF

 

Èç¹ûÑÓ³¤ÏßÓɿոñ»òË®Æ½ÖÆ±í¿ªÊ¼£¬HTTP/1.1 µÄ±¨Í·ÓòÖµ¿ÉÒÔÕÛµþµ½µ½¸´ºÏÏßÉÏ¡£ËùÓеÄ

ÏßÐÔ¿Õ°×£¬°üÀ¨ÕÛµþ£¬¾ßÓÐͬSPÒ»ÑùµÄÓïÒå¡£½ÓÊÕÕßÔÚ½âÊÍÓòÖµ»ò½«ÏûϢתË͵½ÏÂÓÎʱ¿ÉÒÔÓõ¥¸öSPÌæ´úÈκÎÏßÐԿհס£

 

       LWS            = [CRLF] 1*( SP | HT )

 

Îı¾¹æÔò½ö½öÊÊÓÃÓÚÃèÊöÓòµÄÄÚÈݺͲ»»á±»ÏûÏ¢Óï·¨·ÖÎö³ÌÐò½âÊ͵ÄÖµ¡£*TESTµÄ×Ö¿ÉÒÔ

°üº¬ISO-8859-1[22]ÀïµÄ×Ö·û£¬Ò²¿ÉÒÔ°üº¬×Ö·û¹æ¶¨ÀïµÄ×Ö·û[14]¡£

 

       TEXT           = <³ýCTLsÒÔÍâµÄÈÎÒâOCTET£¬µ«°üÀ¨LWS>

 

Ò»¸öCRLF½ö½öÔÚ×÷Ϊ±¨Í·ÓòÑÓÐøµÄÒ»²¿·Öʱ²ÅÔÚTEXT¶¨ÒåÀïÔÊÐíʹÓá£

 

Ê®Áù½øÖÆÊý×Ö×Ö·ûÓÃÔÚÊý¸öЭÒéÔªËØÀï¡£

 

       HEX            = "A" | "B" | "C" | "D" | "E" | "F"

                      | "a" | "b" | "c" | "d" | "e" | "f" | DIGIT

 

 

Ðí¶àHTTP/1.1µÄ±¨Í·ÓòÖµÊÇÓÉLWS»òÌØÊâ×Ö·û·Ö¸ôµÄ×Ö¹¹³ÉµÄ¡£ÕâÐ©ÌØÊâ×Ö·û±ØÐë°üº¬ÔÚÒýÓÃ×Ö·û´®À·½¿ÉÓÃÔÚ²ÎÊýÖµ£¨Èç3.6½Ú¶¨Ò壩Àï¡£

 

       token  £¨±ê¼Ç£©        = 1*<³ýCTLsÓë·Ö¸î·ûÒÔÍâµÄÈÎÒâ CHAR >

       separators£¨·Ö¸î·û£©    = "(" | ")" | "<" | ">" | "@"

                      | "," | ";" | ":" | "\" | <">

                      | "/" | "[" | "]" | "?" | "="

                      | "{" | "}" | SP | HT

 

ÓÃÔ²À¨ºÅÀ¨ÆðÀ´µÄ×¢ÊÍ¿ÉÒÔ°üº¬ÔÚһЩHTTP±¨Í·ÓòÀï¡£Ö»ÓÐ×÷ΪÓòÖµ¶¨ÒåµÄÒ»²¿·ÖʱעÊͲÅÊÇÔÊÐíµÄ¡£ÔÚÆäËûÓòÀԲÀ¨ºÅÊÓ×÷ÓòÖµµÄÒ»²¿·Ö¡£

 

       comment £¨×¢ÊÍ£©= "(" *( ctext | quoted-pair | comment ) ")"

       ctext          = <³ý"(" and ")"ÒÔÍâµÄÈÎÒâTEXT >

 

Ò»¸öÎı¾×Ö·ûÈôÔÚË«ÒýºÅÀÔòµ±×÷Ò»¸ö×Ö¡£

 

       quoted-string  = ( <"> *(qdtext | quoted-pair ) <"> )

       qdtext         = <³ý<">ÒÔÍâµÄÈÎÒâTEXT >

 

·´Ð±Ïß("\")¿ÉÒÔÓÃ×÷µ¥Ò»×Ö·ûÒýÓýṹ£¬µ«½öÔÚÒýÓÃ×Ö·û´®»ò×¢ÊÍÀï¡£

 

       quoted-pair    = "\" CHAR

 

 

 

 

3 ЭÒé²ÎÊý

 

3.1 HTTP°æ±¾

¡¡Copyright  www.cnpaf.net (2007).          All Rights Reserved.

 

HTTPʹÓÃ"<Ö÷Òª>.<´ÎÒª>"µÄ±àºÅ·½°¸±íʾЭÒé°æ±¾¡£Ð­ÒéµÄ°æ±¾·½ÕëÊÇÏ£ÍûÔÊÐí·¢ËÍÕß±íʾÏûÏ¢µÄ¸ñʽºÍÐÔÄÜÒÔ±ãÀí½â¸üÉîÒ»²ãµÄHTTPͨÐÅ£¬¶ø²»½ö½öÊǵ±Ç°Í¨ÐÅ»ñµÃµÄÌØÕ÷¡£ÏûÏ¢¹¹¼þµÄÔö¼Ó²»Ó°ÏìͨÐŶ¯×÷£¬»ò½ö½öÔö¼ÓÁËÀ©Õ¹ÓòÖµ£¬°æ±¾ºÅ²¢Ã»ÓÐÒò´Ë±ä»¯¡£Ð­ÒéµÄ¸Ä±äÔö¼ÓÁËÒ»Ð©ÌØÕ÷£¬Ã»ÓиıäÒ»°ãµÄÏûÏ¢½âÎö¹æÔò£¬µ«ÊÇÔö¼ÓÁËÏûÏ¢µÄÓïÒå»òÕß°µº¬ÁË·¢ËÍÕßÐÂÔöµÄÐÔÄÜ£¬Õâʱ<´ÎÒª>Êý×Ö±ãÒªÔö´ó¡£µ±Ð­ÒéµÄÏûÏ¢¸ñʽ¸Ä±äʱ£¬<Ö÷Òª>Êý×ÖÔö´ó¡£

 

HTTPÏûÏ¢µÄ°æ±¾ÔÚÏûÏ¢µÄµÚÒ»ÐÐHTTP-°æ±¾ÓòÀï±íʾ¡£

 

       HTTP-Version   = "HTTP" "/" 1*DIGIT "." 1*DIGIT

 

×¢ÒâÖ÷ÒªºÍ´ÎÒªÊý×Ö±ØÐë¿´×÷ÊÇÁ½¸ö·ÖÀëµÄÕûÊý£¬¶þÕß¶¼¿ÉÒÔÔö¼Óµ½±Èµ¥Î»Êý»¹´ó¡£ÕâÑù£¬HTTP/2.4µÄ°æ±¾±ÈHTTP/2.3µÍ£¬ÒÀ´ÎHTTP/2.3µÄ°æ±¾±ÈHTTP/12.3µÍ¡£Ê×λµÄÁã±Ø¶¨±»½ÓÊÕÕߺöÊÓ£¬Ò»¶¨²»Òª·¢ËÍ¡£

 

Ò»¸ö·¢ËͰüº¬HTTP°æ±¾"HTTP/1.1"µÄÇëÇó»òÓ¦´ðÏûÏ¢µÄÓ¦Ó㬱ØÐëÖÁÉÙÓÐÌõ¼þµÄ·þ´Ó±¾ËµÃ÷Êé¡£ÖÁÉÙÓÐÌõ¼þ·þ´Ó±¾ËµÃ÷ÊéµÄÓ¦ÓÃÓ¦¸ÃÔÚÏûÏ¢ÀïʹÓÃ"HTTP/1.1"µÄHTTP-°æ±¾£¬ÈκÎÓë HTTP/1.0²»¼æÈݵÄÏûÏ¢Ôò±ØÐëÕâÑù×ö¡£¹ØÓÚºÎʱ·¢ËÍÌØÊâµÄHTTP-°æ±¾Öµ£¬¸ü¶à×ÊÁÏÇë²Î¿´

RFC 2145[36].

 

Ò»ÏîÓ¦ÓõÄHTTP°æ±¾ÊÇÓ¦ÓÃÖÁÉÙÓÐÌõ¼þ·þ´ÓµÄ×î¸ßHTTP°æ±¾.

 

´úÀíºÍÍø¹Ø×ªË͵ÄÏûÏ¢µÄЭÒé°æ±¾ÓëÓ¦Óð汾²»Í¬Ê±£¬ÐèҪСÐÄ¡£¼ÈȻЭÒé°æ±¾±íʾ·¢ËÍÕßµÄЭÒéÐÔÄÜ£¬´úÀí/Íø¹ØÒ»¶¨²»ÄÜ·¢Ëͱêʾ°æ±¾¸ßÓÚËü±¾ÉíµÄʵ¼Ê°æ±¾µÄÏûÏ¢¡£Èç¹ûÊÕµ½¸ü¸ß°æ±¾µÄÇëÇ󣬴úÀí/Íø¹Ø±ØÐë½µµÍÇëÇóµÄ°æ±¾£¬»òÕß·¢³ö³ö´íÓ¦´ð£¬»òÕßÇл»µ½ËíµÀ¶¯×÷¡£

 

ÓÉÓÚ×ÔRFC 2068[33]·¢²¼ºó·¢ÏÖµÄHTTP/1.0´úÀíЭͬ¹¤×÷ÎÊÌ⣬¸ßËÙ»º´æ´úÀí±ØÐë£¬Íø¹Ø¿ÉÒÔ£¬ËíµÀ±ØÐë²»½«ÇëÇóÌáÉýµ½ËüÃÇÖ§³ÖµÄ×î¸ß°æ±¾¡£´úÀí/Íø¹ØµÄÓ¦´ðµÄÖ÷Òª°æ±¾ºÅ±ØÐëͬÇëÇóÏàͬ¡£

 

×¢£ºHTTP°æ±¾µÄת»»¿ÉÄÜ»á°üº¬Ïà¹Ø°æ±¾±ØÐè»ò½ûÖ¹µÄÍ·ÓòÐ޸ġ£

 

3.2 ͳһ×ÊÔ´±êʶ·û£¨URI£©

 

URIsµÄÐí¶àÃû×ÖÒÑΪÈËËùÖª£ºWWWµØÖ·,ͨÓÃÎļþ±êʶ·û£¬Í¨ÓÃ×ÊÔ´±êʶ·û[3]£¬ÒÔ¼°×îºóͳһ×ÊÔ´¶¨Î»Æ÷(URL)[4]ºÍͳһ×ÊÔ´Ãû³Æ(URN)[20]µÄ½áºÏ¡£Ö»ÒªÓëHTTPÏà¹Ø£¬Í³Ò»×ÊÔ´¶¨Î»Æ÷Ö»ÊǸñʽ»¯µÄ×Ö·û´®£¬Ëüͨ¹ýÃû³Æ£¬µØÖ·£¬»òÈκαðµÄÌØÕ÷È·¶¨ÁË×ÊÔ´µÄλÖá£

 

 

3.2.1 Ò»°ãÓï·¨

 

 

¸ù¾ÝʹÓÃʱµÄÉÏÏÂÎÄ£¬HTTPÀïµÄURI¿ÉÒÔ±íʾ³É¾ø¶ÔÐÎʽ»ò»ùÓÚÒÑÖªµÄURIµÄÏà¶ÔÐÎʽ¡£Á½ÖÖÐÎʽµÄÇø±ðÊǸù¾ÝÕâÑùµÄÊÂʵ£º¾ø¶ÔURI×ÜÊÇÒÔÒ»¸öÕªÒªÃû×Ö×÷Ϊ¿ªÍ·£¬ÆäºóÊÇÒ»¸öðºÅ¡£¹ØÓÚURL¸üÏ꾡µÄÐÅÏ¢Çë²Î¿´"ͳһ×ÊÔ´±êʶ·û(URI):Ò»°ãÓï·¨ºÍÓïÒå",RFC 2396 [42](´úÌæÁËRFCs 1738 [4]ºÍRFC 1808 [11]).±¾ËµÃ÷Êé²ÉÓÃÄÇ·Ý˵Ã÷ÊéÀï¹ØÓÚ"URI-Ë÷Òý","¾ø¶ÔURI","Ïà¶ÔURI","¶Ë¿Ú","Ö÷»ú","¾ø¶Ô·¾¶"ºÍ"ȨÁ¦"µÄ¶¨Òå.

 

HTTPЭÒé²»¶ÔURIµÄ³¤¶È×÷ÊÂÏȵÄÏÞÖÆ.·þÎñÆ÷±ØÐëÄܹ»´¦ÀíËüÃÇ·þÎñµÄÈκÎ×ÊÔ´µÄURI,²¢ÇÒÓ¦¸ÃÄܹ»´¦ÀíÎÞÏÞ³¤¶ÈµÄURI,Èç¹ûËüÃÇÌṩ¿ÉÒÔ²úÉúÕâÖÖURIµÄ»ùÓÚGETµÄÐÎʽ.

 

×¢:·þÎñÆ÷ÔÚÒÀÀµ³¤ÓÚ255×Ö½ÚµÄURIʱӦ½÷É÷,ÒòΪһЩ¾ÉµÄ¿Í»§»ò´úÀíʵÏÖ¿ÉÄܲ»Ö§³ÖÕâЩ³¤¶È.

 

3.2.2 http URL

 

http·½°¸Í¨¹ýHTTPЭÒ鶨³öÍøÂç×ÊÔ´µÄλÖÃ.±¾½Ú¶¨ÒåÁËÕâÖÖ·½°¸-http URLÌØÊâµÄÓï·¨ºÍÓïÒå.

   http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]

 

Èç¹û¶Ë¿ÚΪ¿Õ»òδ¸ø³ö,¾Í¼Ù¶¨Îª80.ÓïÒå¼´:ÒÑʶ±ðµÄ×ÊÔ´·ÅÔÚ·þÎñÆ÷ÉÏ,ÔÚÄÇ̨Ö÷»úµÄÄǸö¶Ë¿ÚÉϼàÌýTCPÁ¬½Ó,¶Ô×ÊÔ´µÄÇëÇóµÄURIΪ¾ø¶Ô·¾¶(5.1.2½Ú). ÎÞÂÛʲô¿ÉÄܵÄʱºò,URLÀïʹÓÃIPµØÖ·¶¼ÊÇÓ¦¸Ã±ÜÃâµÄ(²Î¿´RFC 1900 [24]).Èç¹û¾ø¶ÔµØÖ·Ã»ÓгöÏÖÔÚURLÀï,ËüÓÃ×÷¶Ô×ÊÔ´µÄÇëÇóµÄURIʱ±ØÐë×÷Ϊ"/"¸ø³ö.Èç¹û´úÀíÊÕµ½Ò»¸ö²»Êdzä·Ö×ʸñÓòÃûµÄÖ÷»úÃû,Ò»¶¨²»ÄܸıäÖ÷»úÃû.

 

 

3.2.3 URI ±È½Ï

 

µ±±È½ÏÁ½¸öURIÊÇ·ñÆ¥Åäʱ,¿Í»§Ó¦¸Ã¶ÔÕû¸öURI½øÐÐÇø·Ö´óСд,ÒÔ°Ë×Ö½ÚΪµ¥ÔªµÄ±È½Ï.ÒÔÏÂÇé¿öÀýÍâ:

 

-Ò»¸öΪ¿Õ»òδ¸ø¶¨µÄ¶Ë¿ÚµÈͬÓÚÄǸöURIË÷ÒýÀïµÄĬÈ϶˿Ú;

 

-Ö÷»úÃûµÄ±È½Ï±ØÐëÊDz»Çø·Ö´óСдµÄ;

 

-·½°¸ÃûµÄ±È½Ï±ØÐëÊDz»Çø·Ö´óСдµÄ;

 

-Ò»¸ö¿Õ¾ø¶Ô·¾¶µÈͬÓÚ¾ø¶Ô·¾¶"/".

 

   Characters other than those in the "reserved" and "unsafe" sets are equivalent to their ""%" HEX HEX" encoding.

³ýÁË"±£Áô"»ò"ΣÏÕ"¼¯ÀïµÄ×Ö·û(²Î¼ûRFC 2396 [42]) ,×Ö·ûµÈͬÓÚËüÃǵÄ""%" HEX HEX"±àÂë. 

 

ÀýÈç,ÒÔÏÂÈý¸öURIÊǵÈͬµÄ:

 

      http://abc.com:80/~smith/home.html

      http://ABC.com/~smith/home.html

      http://ABC.com:/~smith/home.html

 

 

3.3 ÈÕÆÚ/ʱ¼ä¸ñʽ

 

3.3.1 ÍêÕûÈÕÆÚ

 

ÀúÊ·ÉϵÄHTTPÓ¦ÓÃÒ»Ö±ÔÊÐíÈýÖÖ²»Í¬µÄ±íʾÈÕÆÚ/ʱ¼äÓ¡¼ÇµÄ¸ñʽ:

 

      Sun, 06 Nov 1994 08:49:37 GMT  ; RFC 822, updated by RFC 1123

      Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036

      Sun Nov  6 08:49:37 1994       ; ANSI C's asctime() format

 

 

µÚÒ»ÖÖ¸ñʽÊÇ×÷ΪInternet±ê×¼Ìá³öÀ´µÄ,Ëü±íʾһ¸öÓÉRFC 1123 [8](RFC 822[9]µÄÉý¼¶°æ±¾)¶¨ÒåµÄ¹Ì¶¨³¤¶ÈµÄ×Ó¼¯.µÚ¶þÖÖ¸ñʽʹÓÃ±È½ÏÆÕ±é,µ«ÊÇ»ùÓÚ·ÏÆúµÄRFC 850 [12],ÐèÒª(Ó¦¸Ã)ÓÃËÄλÊý±íʾÄê·Ý.¶ÔÈÕÆÚÖµ½øÐÐÓï·¨·ÖÎöµÄHTTP/1.1¿Í»§ºÍ·þÎñÆ÷±ØÐë½ÓÊÜËùÓÐÈýÖÖ¸ñʽ(ΪÁËͬHTTP/1.0¼æÈÝ),ËäÈ»ËüÃDZØÐëÖ»²úÉúRFC 1123¸ñʽÒÔÔÚÍ·ÓòÀï±íʾHTTPÈÕÆÚÖµ.

 

×¢:¹ÄÀøÈÕÆÚÖµµÄ½ÓÊÕÕßÔÚ½ÓÊÜ¿ÉÄÜÓÉ·ÇHTTPÓ¦Ó÷¢À´µÄÈÕÆÚֵʱҪ¼á¶¨,ÕâÖÖ·ÇHTTPÓ¦ÓÃÓÐʱÊÇͨ¹ý´úÀí/Íø¹Øµ½SMTP»òNNTP¼ìË÷»òÕÅÌùÏûÏ¢.

 

ËùÓеÄHTTPÈÕÆÚ/ʱ¼äÓ¡¼Ç¶¼±ØÐëºÁÎÞÀýÍâµÄÒÔ¸ñÁÖÍþÖÎÆ½¾ùʱ¼ä(GMT)±íʾ.ΪÁËHTTP,GMTÍêÈ«µÈͬÓÚUTC(Эµ÷ÊÀ½çʱ¼ä).ÕâÔÚǰÁ½ÖÖÐÎʽÀïÓÃÈý¸ö×ÖĸµÄÊ±ÇøËõд-GMTµÄÔ̺¬À´±íʾ,²¢ÇÒ¶ÁÈ¡ASCʱ¼ä¸ñʽʱ±ØÐëÏȱ»¼Ù¶¨.HTTPÈÕÆÚÇø·Ö´óСд,³ýÁËÔÚÓï·¨ÖÐ×÷ΪSPÌØ±ð°üÀ¨µÄLWSÍâ,Ò»¶¨²»ÄܰüÀ¨¶îÍâµÄLWS.

       HTTP-date    = rfc1123-date | rfc850-date | asctime-date

       rfc1123-date = wkday "," SP date1 SP time SP "GMT"

       rfc850-date  = weekday "," SP date2 SP time SP "GMT"

       asctime-date = wkday SP date3 SP time SP 4DIGIT

       date1        = 2DIGIT SP month SP 4DIGIT

                      ; day month year (e.g., 02 Jun 1982)

       date2        = 2DIGIT "-" month "-" 2DIGIT

                      ; day-month-year (e.g., 02-Jun-82)

       date3        = month SP ( 2DIGIT | ( SP 1DIGIT ))

                      ; month day (e.g., Jun  2)

       time         = 2DIGIT ":" 2DIGIT ":" 2DIGIT

                      ; 00:00:00 - 23:59:59

       wkday        = "Mon" | "Tue" | "Wed"

                    | "Thu" | "Fri" | "Sat" | "Sun"

       weekday      = "Monday" | "Tuesday" | "Wednesday"

                    | "Thursday" | "Friday" | "Saturday" | "Sunday"

       month        = "Jan" | "Feb" | "Mar" | "Apr"

                    | "May" | "Jun" | "Jul" | "Aug"

                    | "Sep" | "Oct" | "Nov" | "Dec"

 

×¢Òâ:HTTP¶ÔÈÕÆÚ/ʱ¼äÓ¡¼Ç¸ñʽµÄÇëÇó½ö½öÓ¦ÓÃÔÚЭÒéÁ÷Àï.¿Í»§ºÍ·þÎñÆ÷²»±ØÎªÁËÓû§¼ò±¨,ÇëÇó¼Ç¼¼°ÆäËû¶øÊ¹ÓÃÕâЩ¸ñʽ.

 

3.3.2 DeltaÃë

 

һЩHTTPÍ·ÓòÊÕµ½ÏûÏ¢ºó,ÔÊÐíÒÔÊ®½øÖÆÕûÊýÃë±íʾµÄʱ¼äÖµ.

       delta-seconds  = 1*DIGIT

 

3.4 ×Ö·û¼¯

 

HTTPʹÓõĹØÓÚÊõÓï"×Ö·û¼¯"µÄ¶¨ÒåºÍMIMEÖÐËùÃèÊöµÄÒ»Ñù.

 

±¾ÎĵµÖеÄÊõÓï"×Ö·û¼¯"Ö¸Ò»ÖÖÓÃÒ»¸ö»ò¸ü¶à±í¸ñ½«Ò»¸ö°Ë×Ö½ÚÐòÁÐת»»³ÉÒ»¸ö×Ö·ûÐòÁеķ½·¨.×¢ÒâÁíÒ»·½ÏòµÄÎÞÌõ¼þת»»ÊDz»ÐèÒªµÄ,ÔÚÕâÖÖת»»Àï,²¢²»ÊÇËùÓеÄ×Ö·û¶¼ÄÜÔÚÒ»¸ö¸ø¶¨×Ö·û¼¯ÀïµÃµ½,²¢ÇÒ×Ö·û¼¯¿ÉÄÜÌṩ¶à¸ö°Ë½øÖÆÐòÁбíʾһ¸öÌØ¶¨×Ö·û.Õâ¸ö¶¨Ò彫ÔÊÐí¸÷ÖÖ×Ö·û±àÂ뷽ʽ,´Ó¼òµ¥µÄµ¥±í¸ñÓ³ÉäÈçUS-ASCIIµ½¸´Ôӵıí¸ñ½»»»·½·¨ÈçISO-2022µÄ¼¼ÊõÀïËùʹÓõÄ.È»¶ø,ÓëMIME×Ö·û¼¯Ãû×ÖÏà¹ØÁªµÄ¶¨Ò屨Ðë³ä·Ö˵Ã÷´Ó°Ë×ֽڱ任µ½×Ö·ûËùʵÏÖµÄÓ³Éä.ÌØ±ðµÄ,ʹÓÃÍⲿÂÖÀªÐÅÏ¢À´¾ö¶¨¾«È·Ó³ÉäÊDz»ÔÊÐíµÄ.

 

×¢:ÕâÀïʹÓõÄÊõÓï"×Ö·û¼¯"¸üÒ»°ãµÄ±»³Æ×÷Ò»ÖÖ"×Ö·û±àÂë".²»¹ý¼ÈÈ»HTTPºÍMIMEʹÓÃͬÑùµÄ×¢²á±í,¹²ÓÃÊõÓïÊǺÜÖØÒªµÄ.

 

HTTP×Ö·û¼¯Óò»Çø·Ö´óСдµÄ±ê¼Ç±íʾ.ÍêÈ«±ê¼Ç¼¯ºÏÓÉIANA×Ö·û¼¯×¢²á±í[19]¶¨Òå.

       charset = token

 

¾¡¹ÜHTTPÔÊÐíÓÃÈÎÒâ±ê¼Ç×÷Ϊ×Ö·û¼¯µÄÖµ,ÈκÎÔÚIANA×Ö·û¼¯×¢²á±íÀïÓÐÔ¤ÏÈÈ·¶¨ÖµµÄ±ê¼Ç±ØÐë±íʾ¸Ã×¢²á±í¶¨ÒåµÄ×Ö·û¼¯.¶ÔÄÇЩIANA¶¨ÒåµÄ×Ö·û¼¯,Ó¦ÓÃÓ¦¸ÃÏÞÖÆÊ¹ÓÃ×Ö·û¼¯.

 

ʵÏÖÕßÓ¦¸Ã×¢ÒâIETF×Ö·û¼¯µÄÒªÇó[38][41].

 

3.4.1 ʧ×Ù×Ö·û¼¯

 

һЩHTTP/1.0Èí¼þ½«Ã»ÓÐ×Ö·û¼¯²ÎÊýµÄÄÚÈÝÀàÐÍÍ·´íÎóµÄÀí½âΪ"½ÓÊÕÕßÓ¦¸Ã²Â²Â."Èô·¢ËÍÕßÏ£Íû±ÜÃâÕâÖÖÇé¿ö,¿ÉÒÔ°üº¬Ò»¸ö×Ö·û¼¯²ÎÊý,¼´Ê¹×Ö·û¼¯ÊÇISO-8859-1;µ±ÖªµÀ²»»áʹ½ÓÊÕÕß»ìÏýʱ,Ò²Ó¦¸ÃÕâÑù×ö.

 

²»ÐÒµÄÊÇ,һЩ¾ÉµÄHTTP/1.0²»ÄÜÊʵ±´¦ÀíÏêϸµÄ×Ö·û¼¯²ÎÊý.HTTP/1.1½ÓÊÕÕß±ØÐëÖØÊÓ·¢ËÍÕßÌṩµÄ×Ö·û¼¯±ê×¢;µ±×î³õÏÔʾÎĵµÊ±£¬ÄÇЩÌṩ"²Â"×Ö·û¼¯·þÎñµÄÓû§´úÀí±ØÐëʹÓÃÄÚÈÝÀàÐÍÓòÖеÄ×Ö·û¼¯£¬Èç¹ûËüÃÇÖ§³ÖÄǸö×Ö·û¼¯£¬¶ø²»ÊǽÓÊÕÕßµÄÊ×Ñ¡Ïî¡£²Î¿´3.7.1½Ú¡£

 

3.5 ÄÚÈݱàÂë

 

ÄÚÈݱàÂëÖµ±íʾһÖÖÒѾ­»ò¿ÉÒÔÓ¦ÓÃÓÚʵÌåµÄ±àÂë±ä»»¡£ÄÚÈݱàÂëÖ÷ÒªÓÃÀ´ÔÊÐíÎĵµÑ¹Ëõ£¬»»¾ä»°Ëµ£¬ÓÐЧµÄ±ä»»¶ø²»ËðʧËüµÄ»ù±¾Ã½ÌåÀàÐ͵ÄÌØÐÔ£¬Ò²²»¶ªÊ§ÐÅÏ¢¡£¾­³£µØ£¬ÊµÌåÒÔ±àÂëÐÎʽ´¢´æ,Ö±½Ó´«ËÍ,Ö»ÄÜÓɽÓÊÕÕßÒëÂë.

 

       content-coding   = token

 

ËùÓÐÄÚÈݱàÂëÖµ¶¼ÊDz»Çø·Ö´óСдµÄ.HTTP/1.1ÔÚ½ÓÊÕÒëÂë(14.3½Ú)ºÍÄÚÈÝÒëÂë(14.11½Ú)µÄÍ·ÓòÀïʹÓÃÄÚÈݱàÂëÖµ.¾¡¹Ü¸ÃÖµÃèÊöÁËÄÚÈݱàÂë,¸üÖØÒªµÄÊÇËüÖ¸³öÐèҪʲô±àÂë»úÖÆ

À´³ýÈ¥±àÂë.

 

»¥ÁªÍø¸³Öµ»ú¹¹(IANA)³äµ±ÄÚÈݱàÂëÖµ±ê¼ÇµÄ×¢²á´¦.×î³õ,×¢²á±í°üº¬ÏÂÁбê¼Ç:

 

  gzip£¨Ñ¹Ëõ³ÌÐò£©

Ò»ÖÖÓÉÎļþѹËõ³ÌÐò"gzip"(GNU zip)---ÈçRFC 1952ËùÃèÊö---Éú³ÉµÄ±àÂë¸ñʽ.ÕâÖÖ¸ñʽÊÇÒ»ÖÖ32λCRC Lempel-Ziv±àÂë(LZ77).   [ÒëÕß×¢]CRC:Ñ­»·ÈßÓàУÑé

 

   compress£¨Ñ¹Ëõ£©

ÓÉͨÓÃUNIXÎļþѹËõ³ÌÐò"compress"Éú³ÉµÄ±àÂë¸ñʽ.ÕâÖÖ¸ñʽÊÇÒ»ÖÖ¾ßÓпÉÊÊÓ¦ÐÔµÄLempel-Ziv-Welch±àÂë.

¶ÔδÀ´µÄ±àÂëÀ´Ëµ,ÓóÌÐòÃûʶ±ð±àÂë¸ñʽÊDz»¿ÉÈ¡,ÁîÈËÆøÄÙµÄ.ÔÚÕâÀïËûÃǵÄÓô¦ÊÇ×÷ΪÀúʷʵ¼ùµÄ´ú±í¶ø²»ÊǺõķ½°¸.ΪÁËͬÒÔǰµÄHTTPʵÏÖÏà¼æÈÝ,Ó¦ÓÃÓ¦¸Ã½«"x-gzip"ºÍ"x-compress"·Ö±ðµÈͬÓÚ"gzip"ºÍ"compress".

  

   deflate£¨ËõС£©©¡

RFC 1950 [31]¶¨ÒåµÄ"zlib"¸ñʽÓëRFC 1951 [29]ÃèÊöµÄ"deflate"ѹËõ»úÖÆµÄ×éºÏ.

 

   Identity£¨±êʶ£©

    ȱʡ(±êʶ)±àÂë;ÎÞÂÛÈçºÎ,²»½øÐÐת»¯µÄÓ¦ÓÃ.ÕâÖÖÄÚÈÝÒëÂë½ö±»ÓÃÓÚ½ÓÊÜÒëÂ뱨ͷ,²¢ÇÒ²»Äܱ»ÓÃÔÚÄÚÈݱàÂ뱨ͷ.

 

  еÄÄÚÈÝÒëÂëÖµµÄ±ê¼ÇÓ¦¸Ã×¢²á;ΪÁËÔÊÐí¿Í»§ºÍ·þÎñÆ÷¼äµÄ»¥ÓÃÐÔ,ÄÚÈÝÒëÂëÔËËãµÄ¹æ·¶ÐèҪʵÏÖÒ»¸ö¿É±»¹«¿ªÀûÓò¢ÄܶÀÁ¢ÊµÏÖµÄÐÂÖµ,²¢ÇÒÓëÕâ½ÚÖ