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£¨±êʶ£©
ȱʡ(±êʶ)±àÂë;ÎÞÂÛÈçºÎ,²»½øÐÐת»¯µÄÓ¦ÓÃ.ÕâÖÖÄÚÈÝÒëÂë½ö±»ÓÃÓÚ½ÓÊÜÒëÂ뱨ͷ,²¢ÇÒ²»Äܱ»ÓÃÔÚÄÚÈݱàÂ뱨ͷ.
еÄÄÚÈÝÒëÂëÖµµÄ±ê¼ÇÓ¦¸Ã×¢²á;ΪÁËÔÊÐí¿Í»§ºÍ·þÎñÆ÷¼äµÄ»¥ÓÃÐÔ,ÄÚÈÝÒëÂëÔËËãµÄ¹æ·¶ÐèҪʵÏÖÒ»¸ö¿É±»¹«¿ªÀûÓò¢ÄܶÀÁ¢ÊµÏÖµÄÐÂÖµ,²¢ÇÒÓëÕâ½ÚÖÐÄÚÈÝÒëÂ붨ÒåµÄÄ¿µÄÏàÒ»ÖÂ.
3.6 ´«Êä±àÂë
´«Êä±àÂëÖµ±»ÓÃÀ´±íʾһ¸öÒѾ,Äܹ»,»ò¿ÉÄÜÐèÒªÓ¦ÓÃÓÚÒ»¸öʵÌåµÄ±àÂëת»¯,ΪµÄÊÇÄܹ»È·±£Í¨¹ýÍøÂ簲ȫ´«Êä.ÕⲻͬÓÚÄÚÈÝÒëÂë,´«ÊäÒëÂëÊÇÏûÏ¢µÄÌØÐÔ¶ø²»ÊÇÔʼʵÌåµÄÌØÐÔ.
transfer-coding = "chunked" | transfer-extension
transfer-extension = token *( ";" parameter )
²ÎÊý²ÉÓÃÊôÐÔ/Öµ¶ÔµÄÐÎʽ.
²ÎÊý = ÊôÐÔ "=" Öµ
ÊôÐÔ = ±ê¼Ç
Öµ = ±ê¼Ç | ÒýÓÃ-´®£¨quoted-string£©
ËùÓд«ÊäÒëÂëÖµÊDz»Ö±¹ÛµÄ.HTTP/1.1ÔÚTEÍ·Óò(14.39½Ú)ºÍ´«ÊäÒëÂëÍ·Óò(14.41½Ú)ÔËÓô«ÊäÒëÂë.
ÎÞÂÛºÎʱһ¸ö´«ÊäÒëÂë¶¼±»Ó¦ÓÃÓÚÒ»¸öÏûÏ¢Ìå,´«ÊäÒëÂëµÄÉèÖñØÐë°üÀ¨"´ó¿é",³ý·ÇÏûÏ¢±»½áÊøÁ¬½ÓÍ£Ö¹.µ±"´ó¿é"´«ÊäÒëÂë±»Ó¦ÓÃʱ,Ëü±ØÐëÊÇÓ¦ÓÃÓÚÏûÏ¢ÌåµÄ×îºó´«ÊäÒëÂë.ÕâЩ¹æÔòÔÊÐí½ÓÊÜ´Ó¶øÈ·¶¨ÏûÏ¢µÄ´«Ê䳤¶È(4.4½Ú)
´«ÊäÒëÂëÓëMINE[7]µÄÄÚÈÝ´«ÊäÒëÂëÖµÏàÀàËÆ,Ëü±»¶¨ÒåÄܹ»ÊµÏÖ´«ËÍ·þÎñÆ÷³¬¹ý7λµÄ¶þ½øÖÆÊý¾ÝµÄ°²È«´«Êä.²»¹ý,°²È«´«Êä¶Ô´¿8λ´«ÊäÐÒéÓв»Í¬µÄ½¹µã.ÔÚHTTPÖÐ,ÏûÏ¢ÌåΨһ²»°²È«µÄÌØÐÔÊÇÈ·¶¨È·ÇеÄÌåµÄ³¤¶ÈµÄÕâ¸öÄѵã(7.2.2½Ú),»òÔÚ¹²Ïí´«ÊäÉϼÓÃܵÄÒªÇó.
ÍøÂç·ÖÅäÊý×ÖȨÍþ(IANA)µ£ÈÎÁË´«ÊäÒëÂëÖµ±ê¼Ç×¢²á´¦µÄ½ÇÉ«.Æð³õ,×¢²á°üº¬Èçϱê¼Ç:"´ó¿é"(3.6.1½Ú),"Éí·Ý"(3.6.2½Ú),"gzip"(3.5½Ú),"ѹËõ"(3.5½Ú),ºÍ"ËõС"(3.5½Ú).
еĴ«ÊäÒëÂëÖµ±ê¼ÇÓ¦ºÍеÄÄÚÈÝÒëÂëÖµ±ê¼ÇÒÔÏàͬµÄ·½Ê½×¢²á(3.5½Ú).
·þÎñÆ÷½ÓÊÕµ½Ò»¸ö²»ÄÜÀí½âµÄ´«ÊäÒëÂëʵÌåʱӦ·µ»Ø501(²»ÊµÏÖ),²¢ÇÒÇжÏÁªÏµ.·þÎñÆ÷²»ÄÜÏòHTTP/1.0¿Í»§·¢ËÍ´«ÊäÒëÂë.
3.6.1 ³É¿é´«Êä´úÂ루Chunked Transfer Coding£©
³É¿é±àÂë¸ü¸ÄÏûÏ¢Ö÷Ìå,ΪµÄÊǽ«ËüÒÔһϵÁдó¿éµÄÐÎʽ´«ËÍ,ÿһ¸öÁ¬Í¬Ëü×Ô¼º³ß´çµÄָʾÆ÷,±»Ò»¸ö°üº¬ÊµÌåÍ·ÓòµÄ¿ÉËæÒâÑ¡ÔñµÄtrailer¸úËæ.ÕâÔÊÐíÓÐÁ¦Á¿µÄµØÉú²úͬ½ÓÊÜËù±ØÐèµÄÏûÏ¢Ò»Æðת»¯µÄÄÚÈÝ,´Ó¶ø¼ìÑéËüÒѾ»ñµÃÈ«²¿ÏûÏ¢.
Chunked-Body = *chunk(´ó¿é)
´ó¿é-ÕýÎÄ last-chunk(×îºó-´ó¿é)
trailer(×·×ÙÕß)
CRLF
chunk = chunk-size [ chunk-extension ] CRLF
´ó¿é = ´ó¿é-³ß´ç [ ´ó¿é -À©Õ¹]CRLF
chunk-data CRLF
´ó¿é-Êý¾Ý CRLF
chunk-size = 1*HEX
´ó¿éÊý¾Ý
last-chunk = 1*("0") [ chunk-extension ] CRLF
×îºó-´ó¿é = 1*("0") [´ó¿é-À©Õ¹]CRLF
chunk-extension= *( ";" chunk-ext-name [ "=" chunk-ext-val ] )
´ó¿é-À©Õ¹ ´ó¿é-Íⲿ-Ãû³Æ ´ó¿é-Íⲿ-Öµ
chunk-ext-name = token
´ó¿é-Íⲿ-Ãû³Æ= ±ê¼Ç
chunk-ext-val = token | quoted-string
´ó¿é-Íⲿ-Öµ = ±ê¼Ç | ÒýÓÃ-´®
chunk-data = chunk-size(OCTET)
´ó¿é-Êý¾Ý = ´ó¿é -³ß´ç(°Ëλ×Ó½Ú)
trailer = *(entity-header CRLF)
×·×ÙÕß = * (ʵÌå-ÁìÏÈ CRLF)
´ó¿é³ß´çÓòÊÇÓÃ16½øÖƱíʾ´ó¿é³ß´çµÄÒ»´®Êý×Ö.³É¿é±àÂëÒÔÈÎÒ»³ß´çΪ0µÄ´ó¿é½áÊø,ºó׺ÒÔtrailer,ÒÔÒ»¸ö¿ÕÐÐÖÕÖ¹.
trailerÔÊÐí·¢ËÍÕßÔÚÏûϢĩβ°üº¬¸½¼ÓµÄHTTPÍ·Óò.trailerÍ·Óò¿É±»Ó¦ÓÃÓÚ¼òҪ˵Ã÷°üº¬trailerµÄÍ·Óò (14.40½Ú)
Ò»¸ö·þÎñÆ÷ÔÚÓ¦´ðÖÐÔËÓô«ÊäÒëÂëʱ²»ÄÜÔÚÈκÎÍ·ÓòʹÓÃtrailer,³ý·ÇÒÔÏÂÖÁÉÙÒ»ÌõÎªÕæ:
a) ÇëÇó°üÀ¨Ò»¸öTEÍ·Óòʱ±íÃ÷"trailer"ÔÚÓ¦´ðµÄ×ªÒÆÒëÂëÖÐÊǿɱ»½ÓÊܵÄ,¾ÍÏñ14.39½ÚÖÐÃèÊöµÄÄÇÑù;»òÕß
b) ·þÎñÆ÷ÊÇΪÁËÓ¦´ðµÄÔʼ·þÎñÆ÷,trailerµÄÓòÍêÈ«ÓÉËæÒâµÄÔªÊý¾Ý¹¹³É,Õâ¸ö½ÓÊÕÕß¿ÉÒÔÔÚ²»½ÓÊÜÕâ¸öÔªÊý¾ÝµÄÇé¿öÏÂʹÓÃÏûÏ¢(ÔÚÒ»¸öÔʼ·þÎñÆ÷¿É½ÓÊܵķ½Ê½ÖÐ).ÁíÒ»·½Ãæ,Ôʼ·þÎñÆ÷Ô¸Òâ½ÓÊÜtrailerÓò¿ÉÄÜ»áÔÚͨÍù¿Í»§µÄͨµÀÉϱ»Ä¬Ä¬·ÅÆúµÄÕâÖÖ¿ÉÄÜÐÔ.
µ±ÏûÏ¢±»Ò»¸öHTTP/1.1´úÀíÈ˽ÓÊܲ¢ÇÒ8ת¼ÄÖÁÒ»¸öHTTP/1.0½ÓÊÜÆ÷ʱ,ÕâÖÖÐèÇó·ÀÖ¹ÁËÒ»¸ö»¥ÓÃÐÔµÄʧÎó.Ëü±ÜÃâÁËÒ»¸öÒÀ¾ÝÐÒ齫ʹÔÚ´úÀíÕßÉϰ²ÖÃÒ»¸ö¿ÉÄÜÎÞÏÞ´óµÄ»º³åÆ÷³ÉΪ±ØÒªµÄÇéÐη¢Éú.
¶ÔÒ»¸ö´ó¿éÖ÷Ìå½øÐнâÂë´¦ÀíµÄÀý×ÓÒÑÔÚ¸½Â¼19.4.6ÖÐ×÷¹ý½éÉÜ
ËùÓÐHTTP/1.1Ó¦ÓóÌÐò±ØÐëÄܽÓÊܺͽâÂë"´ó¿é"´«ÊäÒëÂë,²¢ÇÒ±ØÐëºöÂÔËüÃDz»Àí½âµÄ´ó¿éÀ©Õ¹À©Õ¹Ãû.
3.7 ýÌåÀàÐÍ
ΪÁËÌṩ¹«¿ªµÄ,¿ÉÀ©Õ¹µÄÊý¾ÝÊäÈëºÍ¹æ·¶Á÷ͨ,HTTPÔÚĿ¼ÀàÐÍ(14.17½Ú)ºÍÈÏ¿É(14.1½Ú)Í·ÓòÖÐÔËÓÃÍøÂçýÌåÀàÐÍ.
ýÌåÀàÐÍ = ÀàÐÍ "/" ÑÇÀàÐÍ*(";" ²ÎÊý )
ÀàÐÍ = ±ê¼Ç
ÑÇÀàÐÍ = ±ê¼Ç
²ÎÊý¿ÉÄÜÔÚÊôÐÔ/ÖµµÄÐÎʽÉÏ×ñÑÀàÐÍ/ÑÇÀàÐÍ.(Èç3.6½Ú¶¨Òå)
ÀàÐÍ,ÑÇÀàÐÍ,ºÍ²ÎÊýÊôÐÔÃû³ÆÊDz»Ö±¹ÛµÄ.²ÎÊýÖµÖ±¹ÛÓë·ñ,È¡¾öÓÚ²ÎÊýÃû³ÆµÄÒâÒå.
ÏßÐԵİ×É«¿Õ¼ä(LWS)²»Äܱ»ÓÃÓÚÀàÐͺÍÑÇÀàÐÍÖ®¼ä,Ò²²»ÄÜÓÃÓÚÒ»ÖÖÊôÐÔ¼°ËûµÄÖµÖ®¼ä.Ò»¸ö²ÎÊý´æÔÚÓë·ñ¶ÔýÌåÀàÐ͵Ĵ¦ÀíÓÐ×ÅÖØÒªµÄÒâÒå,È¡¾öÓÚËüÔÚýÌåÀàÐÍ×¢²áÖе͍Òå.
×¢ÒâһЩ¾ÉµÄHTTPÓ¦ÓÃÈí¼þ²»ÄÜʶ±ðýÌåÀàÐͲÎÊý.ÏòÒ»¸ö¾ÉµÄHTTPÓ¦ÓÃÈí¼þ´«ËÍÊý¾Ýʱ,Ö»Óе±ÀàÐÍ/ÑÇÀàÐ;«È·¶ÈÐèҪʱ,²ÅÄÜʵÏÖýÌåÀàÐͲÎÊý.
ýÌåÀàÐÍÖµÒѾÔÚÍøÂç·ÖÅäÊýÂëȨÍþ(IANA[19])×¢²á.ýÌåÀàÐ͵Ä×¢²á³ÌÐòÔÚRFC 1590[17]ÖÐÂÔÊö.ʹÓÃδ¾×¢²áµÄýÌåÀàÐÍÊDz»»áµÃÐÄÓ¦ÊÖµÄ.
3.7.1 ¹æ·¶»¯ºÍÔÎÄȱʡ
ÍøÂçýÌåÀàÐÍÒÔÓïÑÔµÄÓïÒôµäÐÍÐÎʽע²á.Ò»¸öͨ¹ýHTTPͨѶ´«ÊäµÄʵÌ屨Ðë±»ÒÔÏÈÓÚ´«Ë͵ÄÊʵ±µÄ¹æ·¶µÄÐÎʽÃè»æ,³ý'text'ÀàÐÎÒÔÍâ,¾ÍÏñ϶ζ¨ÒåµÄÄÇÑù.
µ±Ôڹ淶µÄÐÎʽÖÐ,'text'ÀàÐ͵ÄýÌåÑÇÀàÐÍÔËÓÃGRLF×÷ΪȫÎÄÐеļä¶Ï.HTTP·ÅËÉÁËÕâ¸öÒªÇó,µ±Ò»¸öÍêÕûʵÌå±»¼ä¶ÏÍê³Éʱ,ÔÊÐíÈ«ÎÄýÌåÒÔ¼òµ¥µÄGR»òLF¶ÀÁ¢×÷ΪһÐеĸô¶ÏµÄ´«Êä. ÔÚͨ¹ýHTTP³ÐÈϵÄÔÎÄýÌåÖÐ,×÷Ϊһ¸öÐеļä¶ÏµÄ´ú±í,HTTPÓ¦ÓóÌÐò±ØÐë½ÓÊÜCRLF,¿ÕµÄCR,ºÍ¿ÕµÄLF. ¶øÇÒ,Èç¹ûÔÎÄÔÚÒ»¸öÌØÐÔÉèÖÃÖб»±íÏÖ,ûÓзֱðÓÃ8λ×Ö½Ú13ºÍ10±íʾCRºÍLF,¾ÍÏñijÖÖ¶àÖØ×Ö½ÚÌØÐÔÉèÖÃ,HTTPÔÊÐíʹÓÃÈκα»ÎªÁ˱íÏÖCRºÍ LFÔÚÐмä¶ÏÖеĵÈͬµÄÌØÐÔÉèÖÃËù¶¨ÒåµÄÈκÎ8λ×Ö½Ú´ÎÐò.Õâ¸ö¹ØÓÚÐмä¶ÏµÄÉìËõÐÔ½ö½öÓ¦ÓÃÓÚÔÙÒ»¸öʵÌåÖеÄÔÎÄýÌå;Ò»¸ö¿ÕµÄCR»òLFÔÚÈÎÒâHTTP ¿ØÖƵĽṹÖж¼²»ÄÜ´úÌæCRLF.(ÀýÈçÍ·ÓòºÍ¶à²¿±ß½ç)
Èç¹ûÒ»¸öʵÌå°ÑÒ»¸öĿ¼ÒëÂëÒë³ÉµçÂë,ÔÚÏÂÃæµÄÒëÂë±ØÐë±»¶¨Òå³ÉÔÚÉÏÃæÏȱ»ÒëÂëµÄÐÎʽ.
"charset"²ÎÊýºÍһЩýÌåÀàÐÍÒ»ÆðʹÓÃÓÃÀ´¶¨ÒåÊý¾ÝµÄÌØÐÔÉèÖÃ(3.4½Ú).µ±·¢ËÍÕßûÓÐÌṩÇå³þµÄcharset²ÎÊý,ͨ¹ýHTTP½ÓÊÜʱ "text"ÀàÐ͵ÄýÌåÀàÐ;ͱ»¶¨Òå³ÉÓÐÒ»¸öΪ"ISO-8859-1"µÄĬÈÏcharsetÖµ.ÌØÐÔÉèÖõÄÊý¾Ý²»Í¬ÓÚ"ISO-8859-1"»òËüµÄ×Ó¼¯±ØÐë±»±êÒÔÊʵ±µÄcharsetÖµ. ²Î¼û3.4.1½ÚÖмæÈÝÐÔÎÊÌâ.
3.7.2 ¶à²¿·ÖÀàÐÍ£¨Multipart type)
MIMEÌṩÁËһϵÁÐ"¶àÖØ²¿·Ö"ÀàÐÍ---ÔÚµ¥¸öÏûÏ¢ÌåÄÚÒ»¸ö»ò¶à¸öʵÌåµÄ°ü×°.ËùÓеĶàÖØ²¿·ÖÀàÐ͹²ÏíÒ»¸ö¹«¹²µÄÐòÁÐ,¾ÍÏñRFC 2046µÄ5.1.1½ÚÖж¨ÒåµÄÄÇÑù.
±ØÐë°üÀ¨Ò»¸ö×÷ΪýÌåÀàÐÍÖµÒ»²¿·ÖµÄ±ß½ç²ÎÊý.Õâ¸öÏûÏ¢Ìå×Ô³ÉΪһ¸öÒªËØÐÒé,Òò´ËÔÚÁ½²¿·Ö¼äÖ»ÄÜÓÃCRLFÀ´±íÏÖÐеļä¶Ï.²»Í¬ÓÚRFC 2046,ÈÎÒ»¶àÖØÏûÏ¢µÄĩβ±ØÐëΪ¿Õ;HTTPÓ¦ÓóÌÐò²»ÄÜ´«ËÍĩβ(¼´Ê¹ÔʼµÄ¶àÖØ²¿·Ö°üº¬Ò»¸öĩβ).´æÔÚÕâÐ©ÖÆÔ¼ÎªµÄÊDZ£»¤Ò»¸ö¶àÖØ²¿·ÖÏûϢʵÌåµÄ¹ÌÓб¾ÖÊ,½áÊø¶àÖØ²¿·Ö±ß½çÒѾÔÚÏûÏ¢ÌåµÄ"½áβ"¼ÓÒÔ±íÃ÷.
ͨ³£,HTTP½«Ò»¸öÏûÏ¢ÌåÊÓΪÓëÈÎºÎÆäËûýÌåÀàÐÍÎÞÒì:ÑϸñÈçÓÐЧ¸ºÔØ.µ±ÏûÏ¢Ìå³öÏÖÔÚ206Ó¦´ðʱ,ÓÐÒ»¸öÀýÍâ¾ÍÊÇ"¶àÖØ²¿·Ö/×Ö·û´®"ÀàÐÍ(¸½Â¼ 19.2),½«»á±»Ò»Ð©HTTPÒþ²Ø×°Öôò¶Ï,¾ÍÏñ13.5.4ºÍ14.16½ÚÖÐÃèÊöµÄÄÇÑù.³ý´ËÇé¿öÍâ,Ò»¸öHTTPÓû§´úÀíÓ¦¸Ã×ñÑÓëÒ»¸öMINEÓû§´úÀíÏàͬ»òÏàËÆµÄÐÐΪ,ÔÚ¶àÖØ²¿·ÖÀàÐÍÊÕ¾ÝÖ®ÉÏ.MIMEÍ·ÓòÔÚÒ»¸ö¶àÖØ²¿·ÖÏûÏ¢ÌåµÄÿһ¸ö²¿·ÖÀï,¶Ô³¬¹ýMIMEÒâÒåµÄ¶¨ÒåµÄHTTPûÓÐÈκÎÒâÒå.
ͨ³£, Ò»¸öHTTPÓû§´úÀíÓ¦¸Ã×ñÑÓëÒ»¸öMINEÓû§´úÀíÏàͬ»òÏàËÆµÄÐÐΪ,ÔÚ¶àÖØ²¿·ÖÀàÐÍÊÕ¾ÝÖ®ÉÏ.Èç¹ûÒ»¸öÓ¦ÓóÌÐòÊÕµ½Ò»¸ö²»ÄÜʶ±ðµÄ¶àÖØ²¿·ÖÑÇÀàÐÍ,Õâ¸öÓ¦ÓóÌÐò±ØÐ뽫ËüÊÓΪÓë"¶àÖØ²¿·Ö/»ìºÏ"ÏàµÈ.
×¢:"¶àÖØ²¿·Ö/ÐÎ̬-Êý¾Ý"ÐÎʽÒѱ»ÔÚÊʺÏÓÚͨ¹ýPOSTÇëÇó·½·¨´¦ÀíµÄ´«ËÍÐÎʽÊý¾ÝÃ÷È·¶¨Òå,¾ÍÏñÔÚRFC 1867[15]ÖÐÃèÊöµÄÄÇÑù.
3.8 ²úÆ·±ê¼Ç
²úÆ·±ê¼Ç±»ÓÃÀ´³ÐÈÏͨ¹ýÈí¼þÃûºÍÒ뱾ʶ±ðËüÃÇ×Ô¼ºµÄͨѶӦÓÃÈí¼þ.ºÜ¶àÓò»¹°Ñ²úÆ·±ê¼ÇÓÃÓÚÈϿɴμ¶²úÆ·,רҵ²úÆ·¹¹³ÉÓ¦ÓÃÈí¼þÖÐÓÐÖØÒªÒâÒåµÄ²¿·Ö±»Ò»Ò»Áгö,Óð×É«¼ä¸ô·Ö¿ª.°´ÕÕ¹ßÀý,°´²úÆ·¶ÔÓÚʶ±ðÓ¦ÓÃÈí¼þµÄÖØÒªÐÔµÄ˳ÐòÁгöËüÃÇ.
²úÆ· = ±êʾ ["/" ²úÆ· -°æ±¾]
²úÆ·-°æ±¾ = ±êʾ
Àý:
Óû§-´úÀí: CERN-LineMode/2.15 libwww/2.17b3
·þÎñÆ÷: Apache/0.8.4
²úÆ·±êʾӦÑÔ¼òÒâêà.ËüÃDz»ÄÜÓÃÀ´×ö¹ã¸æ»òÆäËû²»ÖØÒªµÄÐÅÏ¢.ËäÈ»ÈÎÒ»±êʾ¿ÉÄܳöÏÖÔÚ²úÆ·-°æ±¾ÉÏ,µ«Õâ¸ö±êʾ½öÄܱ»ÓÃÀ´×öÒ»¸ö°æ±¾±êʶ(i.e., ͬÀà²úÆ·Öгɹ¦µÄ°æ½öÇø±ðÔÚ²úÆ·ÖµµÄ²úÆ·°æ±¾²¿·Ö£©
3.9 ÖÊÁ¿Öµ(Quality Values)
HTTPÄÚÈÝÁ÷ͨ(12½Ú)ÔËÓüò¶ÌµÄ"¸¡µã"Êý×ÖÀ´±íÃ÷²»Í¬¿ÉÁ÷ͨ²ÎÊýÖ®¼äµÄÖØÒªÁªÏµ("ÖØÒªÐÔ").Ò»¸öÖØÒªÐÔ´Ó0µ½1¹æ¸ñ»¯ÁËÒ»¸öÕæÊµµÄÊý×Ö,0ÊÇ×îСֵ,ÊÇ×î´óÖµ.Èç¹ûÒ»¸ö²ÎÊýΪ0µÄÖÊÁ¿Öµ,ÄÇôÕâ¸ö²ÎÊýµÄÄÚÈݲ»±»¿Í»§½ÓÊÜ.HTTP/1.1Ó¦ÓÃÈí¼þ²»ÄܲúÉú¶àÓÚСÊýµãºóÈýλÊý×Ö.ÕâЩֵµÄÓû§ÅäÖÃÒ²Ó¦ÊÜÏÞÓÚÕâÖÖ·½Ê½.
qvalue = ( "0" [ "." 0*3DIGIT ] )
| ( "1" [ "." 0*3("0") ] )
"ÖÊÁ¿Öµ" ÊÇÒ»¸ö²»µ±µÄÓôÊ,ÒòΪÕâЩֵ½ö½ö±íÏÖÏëÒªµÃµ½µÄÖÊÁ¿ÖеĽµ¼¶¹ØÏµ.
3.10 ÓïÑÔ±ê¼Ç
Ò»¸öÓïÑÔ±ê¼ÇºÍ×ÔÈ»µÄÓïÑÔÒ»Ñù˵,д,»ò±»ÈËÀàÓÃÓÚÓëÆäËûÈË´«µÝÐÅÏ¢.¼ÆËã»úÓïÑÔÃ÷ÏÔ²»°üÀ¨ÔÚÄÚ.HTTPÔÚÈÏ¿ÉÓïÑÔºÍĿ¼ÓïÑÔÓòÄÚÔËÓÃÓïÑÔ±ê¼Ç.
HTTPÓïÑÔ±ê¼ÇµÄÓï·¨ºÍ×¢²áÏñRFC 1766[1]Öж¨ÒåµÄÒ»Ñù.×ÜÖ®,Ò»¸öÓïÑÔ±ê¼ÇÊÇÓÉÒ»²¿·Ö»ò¶à²¿·Ö¹¹³É:Ò»¸öÖ÷ÒªÓïÑÔ±ê¼ÇºÍ¿ÉÄÜΪ¿ÕµÄһϵÁÐϱêÇ©.
ÓïÑÔ±ê¼Ç = Ö÷Òª±ê¼Ç *("_" ϱêÇ©)
Ö÷Òª±ê¼Ç = 1*8ALPHA
ϱêÇ© = 1*8ALPHA
±êÇ©Öв»ÔÊÐí³öÏÖ¿Õ¸ñ£¬±êÇ©¶Ô¸öÀý²»Ãô¸Ð£¨case-insensitive£©.ÓÉIANAÀ´¹ÜÀíÓïÑÔ±ê¼ÇÖеÄÃû×Ö¼ä¸ô.µäÐ͵ıêÇ©°üÀ¨:
en, en-US, en-cockney, i-cherokee, x-pig-latin
ÈκÎÁ½¸ö×ÖĸµÄÖ÷Òª±êÇ©ÊÇÒ»¸öISO-639ÓïÑÔµÄËõд,Á½¸ö´óд×ÖĸµÄϱêÇ©ÊÇÒ»¸öISO-3166µÄ¹ú¼Ò´úÂë.(ÉÏÃæµÄ×îºóÈý¸ö±êÇ©ÊÇδ¾×¢²áµÄ±êÇ©;³ý×îºóÒ»¸öÖ®ÍâËùÓж¼ÊÇ¿ÉÔÚ½«À´×¢²áµÄÀý×Ó±êÇ©).
3.11 ʵÌå±êÇ©
ʵÌå±êÇ©ÓÃÀ´´ÓÏàͬÇëÇó×ÊÔ´ÖбȽÏÁ½¸ö»ò¸ü¶àʵÌå.HTTP/1.1ÔÚEtag(14.19½Ú),If-match(14.24½Ú),If-None- match(14.26½Ú),ºÍIf-rang(14.27½Ú)Í·ÓòÖÐÔËÓÃʵÌå±êÇ©.¹ØÓÚËüÃÇÔõÑùÏñ¸ßËÙ»º³å´æ´¢Æ÷È·ÈÏÒ»ÑùʹÓúͱȽϵĽâÊÍÔÚ 13.3.3½ÚÖÐ.Ò»¸öʵÌå±êÇ©ÓÉÒ»¸ö¸ø¶¨µÄ²»Í¸Ã÷µÄÒ»ÐÐ×é³É,¿ÉÄܼÓÉÏÒ»¸öÐéÈõָʾÆ÷µÄǰ׺.
entity-tag = [ weak ] opaque-tag
weak = "W/"
opaque-tag = quoted-string
Ò»¸ö"¼á¹ÌµÄ(strong)ʵÌå±êÇ©"ÔÚÁ½¸öʵÌå°Ëλ×Ó½ÚÏàµÈʱ¿ÉÄܻᱻһ¸ö×ÊÔ´ÀïµÄÁ½¸öʵÌå¹²Ïí.
Ò»¸ö"ÐéÈõ(weak)µÄʵÌå±êÇ©",ÓÉ"W/"ǰ׺±íʾ,ÔÚʵÌåÏàµÈÇÒ¿ÉÒÔ»¥ÏàÌæ´ú¶øÔÚÓïÒåÉϲ»·¢ÉúÖØ´óµÄ±ä¶¯Ê±,¿ÉÄܻᱻһ¸ö×ÊÔ´Á¦µÄÁ½¸öʵÌå¹²Ïí.Ò»¸öÐéÈõµÄʵÌå±êǩֻÄÜÔÚÐéÈõ¶Ô±ÈʱʹÓÃ.
Ò»¸öʵÌå±êÇ©±ØÐëÔÚËùÓÐÓëÒ»¸öÌØÊâ×ÊÔ´ÏàÁ¬ÏµÊµÌåµÄÒë±¾ÖÐÊǶÀÒ»ÎÞ¶þµÄ.Ò»¸ö¸ø¶¨µÄʵÌå±êǩֵ¿ÉÒÔ±»²»Í¬µÄURIÇëÇóÓÃÀ´»ñµÃʵÌå.ÏàͬʵÌå±êǩֵÔÚ²»Í¬URIÇëÇó»ñµÃʵÌåµÄÁªºÏÖеÄÔËÓò»Òâζ×ÅÄÇЩʵÌåµÄµÈͬ.
3.12 ·¶Î§µ¥Î»(Range Units)
HTTP/1.1ÔÊÐíÒ»¸ö¿Í»§ÒªÇóµ¥¶À²¿·ÖµÄÓ¦´ðʵÌå±»°üÀ¨ÔÚÓ¦´ðÄÚ.HTTP/1.1ÔÚ·¶Î§(14.35½Ú)ºÍĿ¼·¶Î§Í·Óò(14.16½Ú)ÔËÓ÷¶Î§µ¥Î».Ò»¸öʵÌå¿É¸ù¾Ý²»Í¬µÄ½á¹¹µ¥Î»·Ö½â³É×ÓÇøÓò.
·¶Î§-µ¥Î» = ×Ö½Ú-µ¥Î» | ÆäËû-·¶Î§-µ¥Î»
×Ö½Ú-µ¥Î» = "×Ö½Ú"
ÆäËû-·¶Î§-µ¥Î» = ±ê¼Ç
HTTP/1.1Öж¨ÒåµÄΨһµÄ·¶Î§µ¥Î»ÊÇ"×Ö½Ú".HTTP/1.1ʵÏÖʱ¿ÉÄܺöÂÔÆäËûµ¥Î»Ö¸¶¨µÄ·¶Î§¡£
HTTP/1.1µÄÉè¼ÆÔÊÐíÓ¦ÓÃÈí¼þ²»ÒÀ¿¿Óйط¶Î§µÄ֪ʶ¶øÊµÏÖ
4 HTTPÏûÏ¢
Copyright www.cnpaf.net (2007). All Rights Reserved.
4.1 ÏûÏ¢ÀàÐÍ
HTTPÏûÏ¢ÓÉ´Ó¿Í»§µ½·þÎñÆ÷µÄÇëÇóºÍ´Ó·þÎñÆ÷µ½¿Í»§µÄ»Ø´ð×é³É.
HTTP-ÏûÏ¢ = ÇëÇó|»Ø´ð ;HTTP/1.1 ÏûÏ¢
ÇëÇó(µÚÎå½Ú)ºÍ»Ø´ð(µÚÁù½Ú)µÄÏûÏ¢ÊÇÓÃÒ»°ãµÄÏûÏ¢¸ñʽRFC 822[9]À´´«ÊäʵÌåµÄ(ÏûÏ¢µÄÓÐÐ§ÔØºÉ).ÕâÁ½ÖÖÏûÏ¢¶¼ÊÇÓÉ¿ªÊ¼ÐÐ,Áã»òÕ߸ü¶àµÄÍ·Óò(Ò²½Ð×öÍ·),ÏóÕ÷Í·½áÊøµÄ¿ÕÐÐ(Æ©Èç˵һ¸öÖ»Óлسµ×Ö·ûµÄÐÐ)×é³É,ÓÐʱ¿ÉÄÜ»áÓÐÒ»¸öÐÅÏ¢Ìå.
Ò»°ãµÄÏûÏ¢=¿ªÊ¼ÐÐ
*(ÏûϢͷ CRLF)
CRLF
[ÏûÏ¢µÄÄÚÈÝ]
¿ªÊ¼ÐÐ =ÇëÇóÐÐ|״̬ÐÐ
ΪÁ˽¡×³ÐÔ,·þÎñÆ÷±ØÐëÔÚÆÚÍûÊÕµ½ÒªÇóÐеĵط½ºöÂÔÈκνÓÊÕµ½µÄ¿ÕÐÐ.»»¾ä»°Ëµ,Èç¹û·þÎñÆ÷ÔÚ¶ÁÒ»ÌõÐÅÏ¢¿ªÊ¼µÄÐÒéÁ÷ʱÏÈÊÕµ½ÁËCRLF,Ëü±ØÐëºöÂÔÕâ¸öCRLF.
Ò»°ãÒ»¸öÓÐÎÊÌâµÄHTTP/1.0¿Í»§¶ËÔÚPOSTÇëÇóºó»á²úÉú¶îÍâµÄCRLF.ΪÁËÖØÊöʲôÊÇBNFÃ÷È·½ûÖ¹µÄ,Ò»¸öHTTP/1.1¿Í»§¶ËûÓбØÒª¿ªÊ¼ºÍ¸úËæÒ»¸ö¶îÍâµÄCRLFµÄÇëÇó.
4.2 ÏûϢͷ
HTTPÍ·Óò°üÀ¨³£¹æÍ·(4.5½Ú)ÇëÇóÍ·(5.3½Ú),Ó¦´ðÍ·(6.2½Ú)ºÍʵÌåÍ·(7.1½Ú)Óò,ËüÃÇ×ñÑRFC822 [0]3.1½ÚÖиø³öµÄͬһ¸ö³£¹æµÄ¸ñʽ.ÿһ¸öÍ·ÓòÓÉÒ»¸ö½ô¸ú":"µÄÃû×ÖºÍÓòÖµ¹¹³É.ÓòÃûÊÇ´óСд²»Ãô¸ÐµÄ.ÓòÖµ¿ÉÄÜÔÚÈκÎLWSµÄÇ°Ãæ,¾¡¹Üµ¥¸öµÄ SPÊÇÊ×ÏȵÄ.Í·ÓòÄÜͨ¹ý°Ñ¸÷¸ö¶îÍâÐÐ(ÖÁÉÙÓÐÒ»¸öSP»òHT)ǰÖÃÀ´À©Õ¹³É¶àÐÐ.µ±²úÉúHTTP½á¹¹µÄʱ,Ó¦ÓñØÐë×ñÑ"¹²Í¬¸ñʽ",ÄǶùËü±»ÖªµÀ»ò¶¨Òå,¼´Ê¹ÓÐʱ´æÔÚһЩ²»ÄܽÓÊÜÈκζ«Î÷µÄ²Ù×÷.
¹²Í¬µÄ¸ñʽ.
ÏûÏ¢-Í·=ÓòÃû":"[ÓòÖµ]
ÓòÃû=¼ÇºÅ
ÓòÖµ=*(ÓòµÄÄÚÈÝ|LWS)
ÓòµÄÄÚÈÝ=<ÓɰËλµÄ×Ö½Ú¹¹³ÉÓòÖµ,ËüÓÉÎı¾»ò×éºÏ±ê¼Ç,·Ö¸î·û,ºÍÒýÓõÄ×Ö·û´®×é³É>
Õâ¸öÓòµÄÄÚÈݲ»°üÀ¨ÈκÎÒýµ¼µÄ»òÁ¬½ÓµÄLWS:λÓÚÓòÄÚÈÝÊôÐԵĵÚÒ»¸ö²»Êǿհ׵ĵط½µÄÇ°Ãæ»ò×îºñµÄ²¼Êǿհ׵ĵط½µÄºóÃæ.È¥µôÕâЩÒýµ¼»òÁ¬½ÓµÄLWS¿ÉÄܲ»»áÓ°ÏìÓòÄÚÈݵÄÒâ˼,ÈκÎλÓÚÓòÄÚÈÝÖ®¼äµÄLWSÔÚ½âÊÍÓòµÄÄÚÈÝ»ò´«ËÍÏûÏ¢µÄÏÂÔØÁ÷µÄʱºò¿ÉÒÔÓõ¥¸öµÄSPÌæ»».
Óò»Í¬ÓòÃûÊÕµ½µÄÍ·ÓòµÄ˳Ðò²»ÊÇÖØÒªµÄ.µ«ÊÇ,Ò»¸öºÃµÄϰ¹ßÊÇÏÈËͳ£¹æÍ·,½Ó×ÅÊÇÇëÇóÍ·»òÓ¦´ðÍ·,×îºóÊÇʵÌåÍ·Óò.
¶à¸öÏûϢͷÓòʹÓÃͬһ¸öÓò¿ÉÄÜ»á³öÏÖÔÚһЩÏûÏ¢ÖÐ,ÔÚÕâЩÏûÏ¢ÖÐ,¿ÉÄÜÒ²Ö»¿ÉÄÜÊÇÕû¸öÓòÓöººÅ·Ö¸îµÄÁÐ±í¶¨Òå(ÀýÈç,#(Öµ)).ÕâЩ±ØÐëÓпÉÄÜÔÚûÓиıäÏûÏ¢µÄÇé¿öϱ»×éºÏ³ÉÒ»¸ö"ÓòÃû:ÓòÖµ"¶Ô,ÔÚÕâЩ±»¶ººÅ¸ô¿ªµÄÓòÖкóÃæµÄÓòÖ²±»Ìí¼Óµ½µÚÒ»¸öÓòÖÐ.ÄÇЩÓÃͬһ¸öÓòÃû×é³ÉÒ»¸öÍ·ÓòµÄ˳ÐòÊÇÖØÒªµÄ,Òò´Ëµ±Ò»¸öÏûÏ¢ÔÚ´«ÊäµÄʱºò´úÀíÒ»¶¨²»ÄܸıäÕâЩÓòÖµµÄ˳Ðò.
4.3 ÏûÏ¢Ìå
HTTPÏûÏ¢µÄÏûÏ¢Ì屸ÓÃÓÃÀ´´«ÊäÓÉÒªÇóºÍÓ¦´ð×é³ÉµÄʵÌå.ÕâЩÏûÏ¢Ìå½ö½öµ±´«ÊäÒëÂë±»Ó¦ÓõÄʱºò²ÅºÍʵÌ岻ͬ,ÕâÓô«Êä±àÂëµÄÍ·Óò±êÃ÷(14.41½Ú).
ÏûÏ¢Ìå=ʵÌå|<±àÂëµÄʵÌå>
´«Êä±àÂë³£ÓÃÀ´±íʾÄÇЩӦÓóÌÐòΪÁ˰²È«ºÍ±£Ö¤ÏûÏ¢µÄÕýÈ·´«ÊäµÄ´«ÊäÂë.´«Êä±àÂëÊÇÒ»ÖÖÏûÏ¢µÄÊôÐÔ¶ø²»ÊÇʵÌå,Òò´ËÑØ×ÅÇëÇó/Ó¦´ðÁ´Ëü¿ÉÒÔ±»ÈκÎÓ¦ÓóÌÐò¼ÓÉÏ»òÈ¥µô.
µ±Ò»¸öÏûÏ¢ÖÐÔÊÐíÓÐÏûÏ¢ÌåʱµÄ¹æÔòºÍÇëÇóÓ¦´ðʱµÄ²»Ò»Ñù.
Ò»¸öÇëÇóµÄÏûÏ¢ÌåÊÇÓÃÀ´´«´ïÄÚÈݳ¤¶È»òÇëÇó´«Êä±àÂëÍ·µÄ´«Êä±àÂëÍ·ÓòµÄÐÅÏ¢.Èç¹ûÇëÇó·½Ê½µÄ¹æ·¶²»ÔÊÐíÇëÇóÖмÓÈëʵÌåÔòÒ»¸öÇëÇóÖÐÒ²±ØÐë²»ÄܰüÀ¨ÏûÏ¢Ìå. Ò»¸ö·þÎñÆ÷±ØÐë¶ÁºÍ´¦ÀíÈκÎÇëÇóµÄÏûÏ¢Ìå;Èç¹ûÇëÇó·½·¨Ã»Óж¨ÒåÒ»¸öʵÌåµÄ±íÊö,Ôòµ±´¦ÀíÕâ¸öÇëÇóÊDZØÐëºöÂÔÏûÏ¢Ìå.
¶ÔÓÚÓ¦´ðÏûÏ¢,Ò»¸öÏûÏ¢ÊÇ·ñ°üÀ¨ÏûÏ¢ÌåÒÀÀµÓÚÇëÇóµÄ·½·¨ºÍÓ¦´ðµÄ״̬´úÂë(6.1.1½Ú).¶ÔÓÚËùÓÐÍ·ÇëÇó·½·¨µÄÓ¦´ð¶¼²»ÄܰüÀ¨ÏûÏ¢Ìå,¼´Ê¹ÓÐʱʵÌåÍ·ÓòµÄ´æÔÚÈÃÈËÏàÐÅËüÃǰüÀ¨ÁË.ËùÓÐ1XX(ÐÅÏ¢µÄ),204(ÎÞÄÚÈݵÄ),ºÍ304(ûÓÐÐ޸ĵÄ)µÄÓ¦´ð¶¼²»ÄܰüÀ¨ÏûÏ¢Ìå.ËùÓÐÆäËûµÄÓ¦´ð±ØÐë°üÀ¨ÏûÏ¢Ìå, ËäÈ»Ëü¿ÉÄܳ¤¶ÈΪÁã.
4.4 ÏûÏ¢µÄ³¤¶È
Ò»ÌõÏûÏ¢µÄ´«Ê䳤¶ÈÊÇÏûÏ¢Ìå³öÏÖÔÚÏûÏ¢Öеij¤¶È,Ò²¾ÍÊÇ˵,µ±´«Êä´úÂë±»´¦ÀíÒÔºó.µ±Ò»ÌõÏûÏ¢°üº¬ÏûÏ¢Ìå,ʵÌåµÄÊ䳤¶ÈÓÐÒÔϼ¸Ìõ¾ö¶¨(ÒÔÏȺó˳Ðò):
1¡£ÈκλØÓ¦ÐÅÏ¢²»Ó¦°üº¬ÔÚÐÅÏ¢ÌåÖУ¬Èç1xx£¬204,304»ØÓ¦ºÍÈκζÔÍ·ÇëÇóµÄ»ØÓ¦¡£ÕâÖÖÇé¿ö¶¼ÊÇÔÚÍ·Óò½áÊøºóµÚÒ»ÐÐΪ¿Õ°×ÐÐ,²»¹ÜʵÌåÓòÊÇ·ñ³öÏÖ¡£
2¡£´«Êä´úÂëÍ·Óò(ÊôÓÚgeneral-headerÓò)³öÏֵϰ¶øÇÒÓÐÖµ¶ø²»ÊÇÉí·Ý£¬ÄÇô´«Ê䳤¶È¾Í¿ÉÒÔʹÓÃchunked´ó¿éÀ´È·¶¨£¬³ý·ÇÐÅÏ¢ÓÉÓÚÁ¬½Ó¹Ø±Õ¶øÖжÏÁË.
3¡£Èç¹ûContent-LengthÍ·Óò(ÊôÓÚʵÌåÍ·)³öÏÖ£¬ÄÇôËüµÄÖµÊÇÐÅÏ¢Ìå´«Ê䳤¶È¡£Èç¹û´«ÊäÍ·ÓòºÍContent-LengthÍ·Óò¶¼³öÏÖÁË£¬¶ø³¤¶È²»Ò»Ö£¬ÄÇôContent-LengthÍ·ÓòÖеÄÖµ¾Í²»¸Ã´«¡£
4¡£Èç¹û±»1.0´úÀí´«Ë͵ķ¶Î§Í·Óò²»ÄÜÀí½â¶à²¿·Ý/λ·¶Î§£»·þÎñÆ÷±ØÐë²ÉÓÃ1£¬2£¬3µÄ·½Ê½½ç¶¨ÐÅÏ¢Ì峤¶È¡£
5¡£µ±·þÎñÆ÷ÕýÔڹرÕÁ¬½Ó.(ÕýÔڹرÕÁ¬½Ó²»ÄÜÓÃÀ´ËµÃ÷Ó¦´ðÌåµÄ½áÊø,ÒòΪËü½«µ¼Ö·þÎñÆ÷ûÓпÉÄÜËÍ»ØÒ»¸öÓ¦´ðÐźÅ.)
ΪÁËÓëHTTP/1.0Ó¦ÓóÌÐò¼æÈÝ,HTTP/1.1ÇëÇó°üº¬µÄÏûÏ¢Ì屨Ðë°üÀ¨Ò»¸öÓÐЧÄÚÈݳ¤¶ÈµÄÍ·Óò,³ý·ÇÖªµÀ·þÎñÆ÷ÊÊÓ¦HTTP/1.1.Èç¹ûÒ»¸öÇëÇó°üº¬Ò»¸öÏûÏ¢Ì岢ûÓиø³öÄÚÈݳ¤¶È,ÄǸö·þÎñÆ÷»áÓ¦´ð400(´íÎóµÄÇëÇó)Èç¹ûËû²»ÄÜÅжÏÏûÏ¢³¤¶ÈµÄ»°,»òÕßÓ¦´ð411(ÒªÇó³É¶¼)Èç¹ûËü¼á³ÖÏëÒªÊÕµ½Ò»¸öÓÐЧÄÚÈݵij¤¶È.
ËùÓеÄHTTP/1.1Ó¦ÓóÌÐò±ØÐë½ÓÊÜ"CHUNKED"´«Êä´úÂë(3.6½Ú),Òò´ËÔÊÐíÕâÖÖ»úÖÆÀ´´¦ÀíÏûÏ¢µ±ÏûÏ¢µÄ³Ì¶È²»Äܱ»¾ö¶¨.
ÏûϢûÓбØÒª¶¼²»°üÀ¨ÄÚÈݳ¤¶ÈÍ·ÓòºÍnon-identity´«Êä´úÂë.Èç¹ûÏûÏ¢°üÀ¨ÁËÒ»¸önon-identity´«Êä´úÂë,´«Ê䳤¶È±ØÐëºöÂÔ.
µ±Ò»¸öÄÚÈݵij¤¶ÈÔÚÏûÏ¢ÌåÔÊÐíµÄµØ·½¸ø³öʱ,Õâ¸öÓòÖµ±ØÐëºÍÏûÏ¢ÌåÖа˽øÖÆÊýÒ»ÖÂ.HTTP/1.1Óû§´úÀí±ØÐëͨ±¨Ê¹ÓÃÕßµ±Ò»¸öÎÞЧµÄ³¤¶È±»½ÓÊܺͷ¢ÏÖ.
4.5 ³£¹æÍ·Óò
Õâ¶ùÓÐһЩͷÓòÄÜÊÊÓ¦Ò»°ãµÄÇëÇóºÍÓ¦´ðÏûÏ¢,µ«ÊÇËüûÓÐÓ¦ÓÃÓæ´¬Ê÷ÖÖµÄʵÌå.ÕâЩͷÓòÖ»Ó¦ÓÃÓÚÄÇЩ±»·¢ÉäµÄÏûÏ¢.
³£¹æµÄÍ·Óò=¸ßËÙ»º´æ¿ØÖÆ ;14.9½Ú
|Á¬½Ó ;14.10½Ú
|Êý¾Ý ;14.18½Ú
|³ÌÐò ;14.32½Ú
|×·×Ù ;14.40½Ú
|´«Êä±àÂë ;14.41½Ú
|Éý¼¶ ;14.42½Ú
|·ÓÉ ;14.45½Ú
¾¯¸æ ;14.46½Ú
³£¹æÍ·ÓòµÄÃû×ÖµÄÕæÕýÀ©Õ¹±ØÐëºÍÐÒé°æ±¾µÄ±ä»¯Ïà½áºÏ¡£È»¶ø£¬ÐµĻòʵÑéÐÔÖʵÄÍ·Óò¿ÉÄܱ»¸³Óè³£¹æÍ·ÓòµÄÒâÒ壬Èç¹ûÐÅÏ¢´«ÊäÖеÄËùÓв¿·Ö¶¼³ÐÈÏËüÃÇΪ³£¹æÍ·ÓòµÄ»°£¬Î´±»³ÐÈϵÄÍ·ÓÚÒ»°ãµ±ÊµÌåÍ·Óò¿´´ý¡£
5 ÇëÇó
´Ó¿Í»§»úµ½·þÎñÆ÷µÄÇëÇó,ÆäÊ×ÐаüÀ¨ÀûÓÃ×ÊÔ´µÄ·½Ê½,Çø·Ö×ÊÔ´µÄ±êʶ,ÒÔ¼°ÐÒéµÄ°æ±¾ºÅ
ÇëÇó =ÇëÇóÐÐ ; 5.1½Ú
*((³£¹æ±¨Í· ; 4.5½Ú
|ÇëÇó±¨Í· ; 5.3½Ú
ʵÌ屨ͷ)CRLF) ; 7.1½Ú
CRLF
[ÏûÏ¢ÕýÎÄ] ; 4.3½Ú
5.1 ÇëÇóÐÐ
ÇëÇó-ÐеĿªÍ·ÊÇ·½·¨±êʶ,½ÓÏÂÀ´ÊÇÇëÇóURLºÍÐÒé°æ±¾ºÅ,ÒԻسµ»»ÐнáÊø.¸÷²¿·ÖÖ®¼äÓÿոñ·û(SP)·Ö¸ô,³ýÁË×îºóµÄ»Ø³µ»»ÐÐÍâ,²»ÔÊÐíÓлسµ(CR)ºÍ»»ÐÐ(LF).
ÇëÇó-ÐÐ ==·½Ê½(¿Õ¸ñ) ÇëÇóURI(¿Õ¸ñ) HTTP°æ±¾ºÅ(»Ø³µ»»ÐÐ)
5.1.1·½·¨
·½·¨±ê¼ÇÖ¸µÄÊÇÔÚÇëÇóURIËùÖ¸¶¨µÄ×ÊÔ´ÉÏËùʵÏֵķ½Ê½,ÕâÖÖ·½Ê½ÊÇÌõ¼þÃô¸ÐµÄ
Method = "OPTIONS" ;9.2½Ú
| "GET" ;9.3½Ú
| "HEAD" ;9.4½Ú
|"POST" ;9.5½Ú
|"PUT" ;9.6½Ú
|"DELETE" ;9.7½Ú
|"TRACE" ;9.8½Ú
|"CONNECT" ;9.9½Ú
| À©Õ¹·½Ê½(extension-method)
À©Õ¹·½Ê½= ±ê¼Ç
×ÊÔ´ÔÊÐíµÄ·½·¨ÁбíÄÜÓÉÔÊÐí(Allow)±¨Í·ÓòÏêϸָ¶¨£®¼ÈÈ»±»ÔÊÐí·½·¨µÄÉèÖÿÉÒÔ¶¯Ì¬µÄ¸Ä±ä,·µ»ØµÄÓ¦´ðÂë×ÜÊÇ֪ͨ¿Í»§»úµ±Ç°·½·¨ÊÇ·ñ±»ÔÊÐí. Èç¹ûÔ·þÎñÆ÷ÖªµÀ·½·¨£¬µ«·½·¨²»±»ÇëÇóµÄ×ÊÔ´ÔÊÐí£¬Ô·þÎñÆ÷Ó¦µ±·µ»Ø×´Ì¬Âë405(·½·¨²»ÔÊÐí)£®Èç¹û·½·¨²»±»Ô·þÎñÆ÷³ÐÈϺÍʵÏÖ,Ô·þÎñÆ÷Ó¦µ±·µ»Ø×´Ì¬Âë501(ûÓÐʵÏÖ£©.»ñÈ¡(GET)ºÍ±¨Í·(HEAD)·½·¨Ó¦µ±±»ËùÓеĶ๦ÄÜ·þÎñÆ÷Ö§³Ö£®ÆäËûËùÓеķ½·¨ÊÇ¿ÉÑ¡µÄ£¬È»¶ø£¬¼ÙÈôÒÔÉϵķ½·¨Ã»ÓÐʵÏÖ£¬ÔòËûÃDZØÐë±»ÔÚµÚ¾ÅÕÂÀïËù˵Ã÷µÄͬһÖÖÓï·¨¶¨ÒåËùʵÏÖ£®
5.1.2 ÇëÇóURL
ÇëÇóURLÊÇÒ»ÖÖÈ«ÇòͳһµÄÓ¦ÓÃÓÚ×ÊÔ´ÇëÇóµÄ×ÊÔ´±êʶ·û£¨£³.2 ½Ú£©£®
ÇëÇóURL ="*"|¾ø¶ÔURL|¾ø¶Ô·¾¶|Ö÷»úauthotity
ÇëÇóURIµÄËĸöÑ¡ÏîÔÚÒ»°ãÇé¿öÏÂÊÇ»¥Ïà¹ØÁªµÄ,ÐǺÅ"*"±íʾÇëÇó²»ÊÇÓ¦ÓÃÓÚijÖÖÌØ±ðµÄ×ÊÔ´,¶øÊÇ·þÎñÆ÷±¾Éí,Ö»Óе±ËùÓõķ½·¨²»ÊÇ×ÊÔ´±ØÒªµÄ·½·¨²ÅÊÇÔÊÐíµÄ.¾ÙÀýÈçÏÂ
Ñ¡Ïî(OPTIONS)*HTTP/1.1
µ±´úÀí·þÎñÆ÷²úÉúÇëÇóʱ£¬¾ø¶ÔURIµØÖ·ÊDz»¿ÉȱÉٵģ®´úÀí·þÎñÆ÷±»ÒªÇóת¼ÄÀ´×Ô¸ßËÙ»º³å´æ´¢Æ÷ÓÐЧµÄÇëÇó»ò·þÎñ,·µ»ØÓ¦´ð£®×¢Òâµ½´úÀí·þÎñÆ÷¿ÉÒÔ°ÑÇëÇóת·¢¸øÁíһ̨´úÀí·þÎñÆ÷»òÖ±½Óת·¢¸ø¾ø¶ÔURIµØÖ·ËµÃ÷µÄ·þÎñÆ÷£®ÎªÁ˱ÜÃâÇëÇóÑ»·£¬´úÀí·þÎñÆ÷±ØÐëʶ±ðËùÓеķþÎñÆ÷Ãû×Ö£¬°üÀ¨ÈκαðÃû£¬±¾µØ±äÒìÃû£¬Êý×ÖIPµØÖ·£®ÇëÇóÐоÙÀýÈçÏ£º
£ÇET http://www.w3.org/pub/www/TheProject.html HTTP/1.1
ΪÁËÔÚδÀ´µÄHTTP°æ±¾µÄËùÓÐÇëÇóÖÐת»»¾ø¶ÔURLµØÖ·£¬ËùÓлùÓÚ£ÈTTP/1.1µÄ·þÎñÆ÷±ØÐë½ÓÊܾø¶ÔURLµØÖ·µÄ×é³É£¬ËäÈ»»ùÓÚHTTP/1.1µÄ¿Í»§»ú½«Ö»²úÉúÇëÇ󷢸ø´úÀí·þÎñÆ÷
Ö÷»ú(authority)×é³É²¿·ÖÖ»ÊÇÔÚÁ¬½Ó·½·¨(CONNECT)ÖÐÓõ½£¨£¹.9½Ú£©£®
×îͨÓÃÐÎʽµÄÇëÇó£Õ£ÒIÓÃÓÚ±êʶÔÚÔ·þÎñÆ÷»òÍø¹ØÉϵÄ×ÊÔ´.ÕâÖÖÇé¿öÏ£¬¾ø¶Ô£Õ£Ò£Ì·¾¶±ØÐë×÷ΪÇëÇó£Õ£Ò£Ì´«ËÍ£¨¿´£³.£².£±½Ú£¬¾ø¶Ô·¾¶£©£¬£Õ£Ò£É¾ÖÓòÍøµØÖ·(authority)(±ØÐëÊäÈëÖ÷»ú±¨Í·Óò£®ÀýÈ磬ϣÍûÖ±½ÓµÃµ½Ô·þÎñÆ÷¶¥²ã×ÊÔ´µÄ¿Í»§»ú½«ÔÚ"£÷£÷£÷£®£÷£³£®£ï£ò£ç"Ö÷»úµÄ¶Ë¿Ú£¸£°½¨Á¢£Ô£Ã£ÐÁ¬½Ó·¢ËÍÒÔÏÂÐУº
GET /pub/WWW/TheProject.html HTTP/1.1
Host:www.w3.org
½ÓÏÂÀ´ÊÇÇëÇóµÄÆäËû²¿·Ö£¬×¢Òâ¾ø¶Ô·¾¶²»ÄÜÊǿյ컼ÙÈçûÓгõʼµÄURI£¬±ØÐë¸ø³ö"£¯"£¨·þÎñÆ÷¸ùĿ¼£©£®
ÇëÇó£Õ£Ò£ÌÓÃÔÚ3.2.1½ÚÀï˵Ã÷µÄ¸ñʽ´«Ê䣮Èç¹ûÓÃ"%HEX¡¡HEX"[42]Âë±àÂë,ΪÁËÕýÈ·µÄ·ÒëÇëÇó£¬Ô·þÎñÆ÷±ØÐëÒëÂ룮¶ÔÓÚÓÐÊʵ±×´Ì¬ÂëµÄÎÞЧµÄÇëÇ󣬷þÎñÆ÷±ØÐë¸øÓèÓ¦´ð£®
µ±Í¸Ã÷µÄ´úÀí·þÎñÆ÷ת·¢ÊÕµ½µÄÇëÇó£Õ£Ò£ÌµØÖ·¸øÏÂÒ»Ì¨ÍøÄڵķþÎñÆ÷ʱ£¬½ûÖ¹ÆäÖØÐ´ "¾ø¶Ô·¾¶"²¿·Ö,ÉÏÃæÌáµ½µÄÓÃ"£¯"´úÌæ¿ÕµÄ¾ø¶ÔµØÖ·²»ÔÚ´ËÀý£®
×¢£ºµ±Ô·þÎñÆ÷²»Ç¡µ±µÄÓ÷DZ£Áô£Õ£Ò£Ì×Ö·û×÷±£ÁôÓÃʱ£¬"½ûÖ¹ÖØÐ´"¹æÔò·ÀÖ¹
´úÀí·þÎñÆ÷¸ü¸ÄÇëÇóµÄº¬Ò壬ʵÏÖ³ÌÐò½«Á˽âÇ°ÃæµÄһЩHTTP/1.1´úÀí·þÎñÆ÷¾Í½«ÖªµÀ¸ÄдÁËÇëÇó£Õ£Ò£É£®
5.2ÇëÇó¶¨ÒåµÄ×ÊÔ´
Ò»¸öINTERNETÇëÇóËù¶¨ÒåµÄ¾«È·×ÊÔ´ÓÉÇëÇóURLºÍÖ÷»ú±¨Í·ÓòËù¾ö¶¨.
µ±¾ö¶¨HTTP/1.1ÐÒé±êʶµÄ×ÊԴʱ£¬²»ÔÊÐí×ÊÔ´ÓëÇëÇóÖ÷»ú²»Í¬µÄÔ·þÎñÆ÷¿ÉÒÔºöÂÔÖ÷»ú±¨Í·ÓòµÄÖµ£¬£¨µ«¿´£±£¹.£¶.£±½ÚÁ˽âÖ§³ÖHTTP/1.1Ö÷»úÉϵÄÁíÒ»ÖÖÐèÇó£©.
»ùÓÚÖ÷»úµÄÇëÇóÇø·Ö×ÊÔ´µÄ·þÎñÆ÷(ÓÐʱָÐéÄâµÄÖ÷»ú»ò¿Õ°×µÄÖ÷»úÃû)±ØÐëÓÃÒÔÏµĹæÔò¾ö¶¨HTTP/1.1ÇëÇóËùÇëÇóµÄ×ÊÔ´£®
£±£® Èç¹ûÇëÇóURIÊǾø¶ÔµØÖ·£¬Ö÷»úÊÇÇëÇóURIµÄÒ»²¿·Ö£®ÈκÎÖ÷»ú±¨Í·ÓòÓ¦µ±ºöÂÔ£®
£²£® ¼ÙÈçÇëÇóURI²»ÊǾø¶ÔµØÖ·£¬ÇÒÇëÇó°üÀ¨Ò»¸öÖ÷»ú±¨Í·Óò£¬ÔòÖ÷»úÓɸÃÓòµÄÖµËù¾ö¶¨£®
£³£® ¼ÙÈçÓɹ涨£±»ò¹æ¶¨£²¶¨ÒåµÄÖ÷»úÊÇÎÞЧµÄÖ÷»ú£¬ÔòÓ¦´ðµ±ÊÇÒ»¸ö400³ö´íÐÅÏ¢
ΪÁËÕÒ³öÕæÕý±»ÇëÇóµÄ×ÊÔ´£¬Ò»¸öȱ·¦Ö÷»ú±êʶÓòµÄHTTP/1.0ÇëÇó½ÓÊÕÕß¿ÉÒÔ³¢ÊÔʹÓÃÊÔ̽µÄ·½·¨£¨ÀýÈç¼ì²â£Õ£Ò£É·¾¶¶ÔÓÚÌØ¶¨µÄÖ÷»úÊÇΨһµÄÕâ¸öÐÔÖÊ£©£®
£µ.3ÇëÇó±¨Í·Óò
ÇëÇóµÄ±¨Í·ÓòÔÊÐí¿Í»§´«µÝ¹ØÓÚÇëÇ󣬿ͻ§×Ô¼ºµÄ¸½¼ÓÐÅÏ¢¸ø·þÎñÆ÷£®ÕâЩÓò×÷ΪÇëÇóÐÞÊγɷ֣¬ºÍ³ÌÐòÓïÑÔÖз½·¨µ÷ÓõIJÎÊýÓв¶àµÄº¬Ò壮
ÇëÇó±¨Í·¡¡£½¡¡½ÓÊÕ(Accept)¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ;14.1½Ú
|½ÓÊÕCharset (Accept-Charset) ;14.2½Ú
|½ÓÊÕ±àÂë(Accept-Encoding) ;14.3½Ú
|½ÓÊÕÓïÑÔ(Accept-Language) ;14.4½Ú
|ÈÏÖ¤(Authorization£© ;14.8½Ú
|ÆÚÍû(Expect) ;14.20½Ú
|Ô´(From) ;14.22½Ú
|Ö÷»ú(Host) ;14.23½Ú
|¼ÙÈçÆ¥Åä(If-Match) ;14.24½Ú
|¼ÙÈçÐÞ¸Ä(If-Modified-Since) ;14.25½Ú
|¼ÙÈ粻ƥ(If-None-Match) ;14.26½Ú
|¼ÙÈç¹éÀà(If-Range) ;14.27½Ú
|¼ÙÈç²»ÐÞ¸Ä(If-Unmodified-Since ) ;14.28½Ú
|×î´óת·¢Á¿(Max-Forwards ;14.31½Ú
|´úÀíÈÏÖ¤( Proxy-Authorization) ;14.34½Ú
|·¶Î§(Range) ;14.35½Ú
|Ìá½»Õß(Referer) ;14.36½Ú
|TE ;14.39½Ú
|Óû§´úÀí(User-Agent) ;14.43½Ú
Ëæ×ÅÐÒé°æ±¾µÄ±ä»¯,ÇëÇó±¨Í·ÓòµÄÃû×Ö¿ÉÒÔ¿É¿¿µÄÀ©Õ¹£®È»¶øÐµĻòÀ©Õ¹µÄ±¨Í·Óò¿ÉÒÔ¸ø³öÇëÇó±¨Í·ÓòµÄÓï·¨£¬ÆäǰÌáÊÇͨÐÅÖÐËùÓв¿·Ö³ÐÈÏËüÃÇÊÇÇëÇó±¨Í·Óò£®²»±»³ÐÈϵı¨Í·Óò±»µ±×÷ʵÌ屨ͷÓò£®
£¶ Ó¦´ð
½ÓÊպͷÒëÒ»¸öÇëÇóÐÅÏ¢ºó£¬·þÎñÆ÷·¢³öÒ»¸öHTTPÓ¦´ðÐÅÏ¢£®
Ó¦´ð¡¡¡¡¡¡£½×´Ì¬ÐС¡ ;6.1½Ú
*((³£¹æ±¨Í·(general-header£© ; 4.5½Ú
|Ó¦´ð±¨Í·(response-header) ;6.2½Ú
|ʵÌ屨ͷ(entity-header)CRLF) ;7.1½Ú
CRLF
[Ó¦´ðÕýÎÄ] ;7.2½Ú
6.1 ״̬ÐÐ
Ó¦´ðÐÅÏ¢µÄµÚÒ»ÐÐÊÇ״̬ÐÐ,ÓÉÐÒé°æ±¾ÒÔ¼°Êý×Ö״̬ÂëºÍÏà¹ØµÄÎı¾ËµÃ÷×é³É,¸÷²¿·Ö¼äÓÿոñ·û¸ô¿ª£¬³ýÁË×îºóµÄ»Ø³µ»ò»»ÐÐÍ⣬Öм䲻ÔÊÐíÓлسµ»»ÐУ®
״̬ÐС¡£½¡¡HTTP°æ±¾ SP״̬Âë SP ÔÒò¶ÌÓï CRLF
6.1.1״̬ÂëÓë×¢½â
״̬ÂëÊÇÊÔͼÀí½âºÍÂú×ãÇëÇóµÄÈýλÊý×ÖµÄÕûÊýÂ룬ÕâЩÂëµÄÍêÕû¶¨ÒåÔÚµÚʮգ®×¢½â¶ÌÓïÊÇÌØÒâ¸ø³öµÄ¹ØÓÚ״̬ÂëµÄÎı¾ÃèÊö£®×´Ì¬ÂëÓÃÓÚ×Ô¶¯¿ØÖƶø×¢½â¶ÌÓïÊÇÃæÏòÓû§µÄ£®¿Í»§»ú²»ÐèÒª¼ì²éºÍÏÔʾע½â¶ÌÓ
״̬ÂëµÄµÚһλÊý×Ö¶¨ÒåÓ¦´ðÀàÐÍ£®ºóÁ½Î»Êý×ÖûÓÐÈκÎÀàÐÍÈÎÎñ£®µÚһλÊý×ÖÓÐÎåÖÖÖµ£º
-1xx: ±¨¸æµÄ - ½ÓÊÕµ½ÇëÇó,¼ÌÐø½ø³Ì.
-2xx ³É¹¦ - ²Ù×÷³É¹¦µÄÊÕµ½.
-3xx ÖØ·¢ - ΪÁËÍê³ÉÇëÇó,±ØÐë²ÉÈ¡½øÒ»²½´ëÊ©.
-4xx ¿Í»§¶Ë³ö´í - ÇëÇó°üÀ¨´íµÄ˳Ðò»ò²»ÄÜÍê³É.
-5xx ·þÎñÆ÷³ö´í - ·þÎñÆ÷ÎÞ·¨Íê³ÉÏÔÈ»ÓÐЧµÄÇëÇó.
ΪHTTP/1.1¶¨ÒåµÄ״̬Âëµ¥¶ÀµÄÖµ£¬ºÍÒ»¸öÏàÓ¦µÄһϵÁÐ×¢½â¶ÌÓïµÄÀý×Ó£¬½éÉÜÈçÏÂ,Õâ¶ùÁгöµÄ×¢½â¶ÌÓïÖ»Êǽ¨Òé¨D¨DËüÃÇ¿ÉÒÔ±»Ï൱µÄûÓиÐÇéÉ«²ÊµÄÐÒéÈ¡´ú£®
״̬Âë¡¡£½
"100" ; 10.1.1½Ú: ¼ÌÐø
|"101" ; 10.1.2½Ú: ת»»ÐÒé
|"200" ; 10.2.1½Ú: OK
|"201" ; 10.2.2½Ú: ´´½¨
|"202" ; 10.2.3½Ú: ½ÓÊÜ
|"203" ; 10.2.4½Ú: ·ÇȨÍþÐÅÏ¢
|"204" ; 10.2.5½Ú: ÎÞÄÚÈÝ
|"205" ; 10.2.6½Ú: ÖØÖÃÄÚÈÝ
|"206" ; 10.2.7½Ú: ¾Ö²¿ÄÚÈÝ
|"300" ; 10.3.1½Ú: ¶àÑùÑ¡Ôñ
|"301" ; 10.3.2½Ú: ÓÀ¾ÃÒÆ¶¯
|"302" ; 10.3.3½Ú: ´´½¨
|"303" ; 10.3.4½Ú: ¹Û²ì±ðµÄ²¿·Ö
|"304" ; 10.3.5½Ú: Ö»¶Á
|"305" ; 10.3.6½Ú: Óû§´úÀí
|"307" ; 10.3.8½Ú ÁÙÊ±ÖØ·¢
|"400" ; 10.4.1½Ú: »µÇëÇó
|"401" ; 10.4.2½Ú: δÊÚȨµÄ
|"402" ; 10.4.3½Ú: ±ØÒªµÄÖ§¸¶
|"403" ; 10.4.4½Ú: ½ûÓÃ
|"404" ; 10.4.5½Ú: ûÕÒµ½
|"405" ; 10.4.6½Ú: ²»ÔÊÐíµÄ·½Ê½
|"406" ; 10.4.7½Ú: ²»½ÓÊÜ
|"407" ; 10.4.8½Ú: ÐèÒª´úÀíÑéÖ¤
|"408" ; 10.4.9½Ú£º ÇëÇó³¬Ê±
|"409" ; 10.4.10½Ú£» ³åÍ»
|"410" ; 10.4.11½Ú£º Í£Ö¹
|"411" ; 10.4.12½Ú£º ÐèÒªµÄ³¤¶È
|"412" £» 10.4.13½Ú£» Ô¤´¦Àíʧ°Ü
|"413" ; 10.4.14½Ú£º ÇëÇóʵÌåÌ«´ó
|"414" ; 10.4.15½Ú£» ÇëÇó-URIÌ«´ó
|"415" ; 10.4.16½Ú£º ²»Ö§³ÖµÄýÌåÀàÐÍ
|"416" £» 10.4.17½Ú£º ÇëÇóµÄ·¶Î§²»Âú×ã
|"417" ; 10.4.18½Ú£º ÆÚÍûʧ°Ü
|"500" ; 10.5.1½Ú: ·þÎñÆ÷ÄÚ²¿´íÎó
|"501" ; 10.5.2½Ú: ²»ÄÜʵÏÖ
|"502" ; 10.5.3½Ú: »µÍø¹Ø
|"503" ; 10.5.4½Ú: ·þÎñ²»ÄÜʵÏÖ
|"504" ; 10.5.5½Ú: Íø¹Ø³¬Ê±
|"505" ; 10.5.6½Ú: HTTP°æ±¾²»Ö§³Ö
|À©Õ¹Âë
À©Õ¹Âë =3DIGIT
×¢½â¶ÌÓï=*
HTTP״̬ÂëÊÇ¿ÉÀ©Õ¹µÄ£®HTTPÓ¦ÓóÌÐò²»ÐèÒªÀí½âËùÓÐÒÑ×¢²á״̬ÂëµÄº¬Ò壬¾¡¹ÜÄÇÑùµÄÀí½âÏÔ¶øÒ×¼ûÊǺܺÏËãµÄ£®µ«ÊÇ£¬Ó¦ÓóÌÐò±ØÐëÁ˽âÓɵÚһλÊý×ÖÖ¸¶¨µÄ״̬ÂëµÄÀàÐÍ£¬ÈκÎδ±»Ê¶±ðµÄÓ¦´ðÓ¦±»¿´×÷ÊǸÃÀàÐ͵ģØ00״̬£¬ÓÐÒ»¸öÀýÍâ¾ÍÊÇδ±»Ê¶±ðµÄ״̬Âë²»ÄÜ»º´æ£®ÀýÈ磬Èç¹û¿Í»§»úÊÕµ½Ò»¸öδ±»Ê¶±ðµÄ״̬Âë431£¬¡¡Copyright www.cnpaf.net (2007). All Rights Reserved.
Ôò¿ÉÒÔ°²È«µÄ¼Ù¶¨ÇëÇóÓÐ´í£¬ÇÒÆä¶Ô´ýÓ¦´ðµÄÇé¿öÊǷ·ð¿Í»§¶ËÊÕµ½µÄÊÇ400״̬Â룮ÔÚÕâÖÖÇé¿öÏ£¬Óû§´úÀíÓ¦µ±°ÑʵÌåºÍÓ¦´ðÒ»ÆðÌá½»¸øÓû§£¬ÒòΪʵÌåºÜ¿ÉÄܰüÀ¨ËµÃ÷²»Æ½³£×´Ì¬µÄÈËÈϿɶÁµÄÐÅÏ¢£®
£¶.2Ó¦´ð±¨Í·Óò
Ó¦´ðÍ·ÔÊÐí·þÎñÆ÷´«ËÍÓ¦´ðµÄ¸½¼ÓÐÅÏ¢,ÕâЩÐÅÏ¢²»ÄÜ·ÅÔÚ״̬ÐÐÀï.ÕâЩ±¨Í·Óò¸ø³öÓйطþÎñÆ÷µÄÐÅÏ¢ÒÔ¼°ÇëÇóURIÖ¸¶¨µÄ×ÊÔ´µÄÏÂÒ»²½µÄͨ·£®
Ó¦´ð±¨Í· = ½ÓÊÕ·¶Î§ ; 14.5½Ú
|Éú´æÊ±¼ä ; 14.6½Ú
|Etag ; 14.19½Ú
|λÖà ; 14.30½Ú
|´úÀíÈÏÖ¤ ; 14.33½Ú
|µÈ»áÔÙÊÔ ; 14.37½Ú
|·þÎñÆ÷ ; 14.38½Ú
|±ä»¯ ; 14.44½Ú
|WWWÈÏÖ¤ ; 14.47½Ú
Ëæ×ÅÐÒé°æ±¾µÄ±ä»¯,Ó¦´ð±¨Í·¿ÉÒÔ¿É¿¿µÄÀ©Õ¹£®¶øÇÒ£¬Èç¹ûͨÐŵÄËùÓÐ×é³É²¿·Ö¶¼°ÑËüµ±×÷Ó¦´ð±¨Í·Óò,еĻòÊÔÑéÐÔµÄÓ¦´ð±¨Í·Óò¿ÉÒÔ±»¸ø¶¨Ó¦´ð±¨Í·ÓòµÄº¬Ò壬δ±»³ÐÈϵı¨Í·Óò±»µ±×÷ʵÌ屨ͷÓò£®
7¡£ ʵÌå¡£
ÔÚδ¾ÌØ±ð¹æ¶¨µÄÇé¿öÏ£¬ÇëÇóÓëÓ¦´ðµÄ±¨ÎÄÒ²¿ÉÒÔ´«ËÍʵÌå¡£ ʵÌå°üÀ¨ÊµÌ屨ͷÓòÓëʵÌåÕýÎÄ£¬¶øÓÐЩӦ´ðÖ»°üÀ¨ÊµÌ屨ͷ¡£ÔÚ±¾½ÚÄÚ£¬½ÓÊÕÕßÓë·¢ËÍÕ߼ȿÉÒÔÖ¸Óû§¶Ë£¬Ò²¿ÉÒÔÖ¸·þÎñÆ÷£¬ÊÓÓÉËÊÕ·¢ÊµÌå¶ø¶¨¡£
7¡£1 ʵÌ屨ÎÄÓò
ʵÌ屨ÎÄÓò¶¨ÒåÁ˹ØÓÚʵÌåÕýÎĵÄά»¤ÐÅÏ¢£¨²ÎÊý£©£¬»òÔÚÎÞÕýÎÄÇé¿ö϶¨ÒåÁËÇëÇóµÄ×ÊÔ´¡£ÆäÖÐһЩ²ÎÊýÊÇ¿ÉÑ¡µÄ£¬Ò»Ð©ÔòÊÇÓɼ¼ÊõÖ¸±ê¹æ¶¨±ØÐëµÄ¡£
ʵÌ屨ͷ = ÔÊÐí£¨Allow£©£» 14.7½Ú
|ÄÚÈݱàÂ룻 14.11½Ú
|ÄÚÈÝÓïÑÔ£» 14.12½Ú
|ÄÚÈݳ¤¶È£» 14.13½Ú
|ÄÚÈÝλÖã» 14.14½Ú
|ÄÚÈÝ-MD5£» 14.15½Ú
|ÄÚÈÝ·¶Î§£» 14.16½Ú
|ÄÚÈÝÀàÐÍ£» 14.17½Ú
|¹ýÆÚ(Expires)£» 14.21½Ú
|ÉÏ´ÎÐ޸ģ» 14.29½Ú
|À©Õ¹±¨Í·
À©Õ¹±¨Í·=±¨Îı¨Í·
À©Õ¹±¨Í·»úÖÆÔÊÐíÔÚ²»¸Ä±äÐÒéµÄǰÌá϶¨Òå¶îÍâµÄʵÌ屨ͷÓò£¬µ«²»±£Ö¤ÕâЩÓòÔÚÊÕ¶ËÄܹ»±»Ê¶±ð¡£Î´±»Ê¶±ðµÄÓòÓ¦µ±±»½ÓÊÕÕߺöÂÔ£¬ÇÒ±ØÐ뱻͸Ã÷ת·¢¡£
7¡£2 ʵÌåÕýÎÄ¡£
¾ÓÉHTTPÇëÇó»òÓ¦´ð·¢Ë͵ÄʵÌåÕýÎIJ¿·Ö£¨Èç¹û´æÔڵϰ£©µÄ¸ñʽÓë±àÂ뷽ʽӦÓÉʵÌ屨ÎÄÓò¾ö¶¨¡£
ʵÌåÕýÎÄ= *°Ëλ×Ö½Ú
Èç4¡£3½ÚËùÊö£¬ÊµÌåÕýÎÄÖ»Óе±±¨ÎÄÕýÎÄ´æÔÚʱ²Å´æÔÚ¡£ÊµÌåÕýÎÄÊÇͨ¹ý¶Ô±¨ÎÄÕýÎݴijÖÖ±£Ö¤°²È«ÐÔÇÒ±ãÓÚ´«ÊäµÄ´«Êä±àÂë½øÐнâÂëµÃµ½µÄ¡£
7¡£2¡£1¡£ ÀàÐÍ¡£
¶ÔÓÚ±¨ÎÄÖеÄʵÌåÕýÎĶøÑÔ£¬ÆäÊý¾ÝÀàÐÍÓɱ¨Í·ÖеÄ"ÄÚÈÝÀàÐÍ"Óë"ÄÚÈݱàÂë"Óò¾ö¶¨¡£Ò²¼´¶¨ÒåÁËÒ»¸öË«²ãÓÐÐòµÄ±àÂëÄ£ÐÍ£º
ʵÌåÕýÎÄ=ÄÚÈݱàÂ루ÄÚÈÝÀàÐÍ£¨Êý¾Ý£©£©
"ÄÚÈÝÀàÐÍ"¹æ¶¨ÁË»ù±¾Êý¾ÝµÄýÌåÀàÐÍ¡£
"ÄÚÈݱàÂë"Ôò¿ÉÓÃÀ´Ö¸Ã÷¶ÔÊý¾ÝÊ©¼ÓµÄÈκθ½¼ÓµÄ£¬Í¨³£ÒÔÊý¾ÝѹËõΪĿµÄµÄ±àÂ뷽ʽ£¬²¢½«Æä×÷ΪËùÇëÇó×ÊÔ´µÄÒ»ÏîÊôÐÔ¡£ ûÓÐȱʡµÄ±àÂ뷽ʽ¡£
ÈÎÒ»°üº¬ÁËʵÌåÕýÎĵÄHTTP/1¡£1±¨ÎͼӦ°üÀ¨"ÄÚÈÝÀàÐÍ"±¨Í·Óò£¬ÒÔ¶¨ÒåÕýÎĵÄýÌåÀàÐÍ¡£µ±ÇÒ½öµ±"ÄÚÈÝÀàÐÍ"Óòδ¸ø³öýÌåÀàÐÍʱ£¬½ÓÊÕÕ߲ſÉÒÔͨ¹ý²é¿´×ÊÔ´µÄÄÚÈÝ£¬À©Õ¹Ãû»òURLÀ´²Â²âÆäýÌåÀàÐÍ¡£ÈôýÌåÀàÐÍÈÔȻδ֪£¬½ÓÊÕÕßÓ¦½«Æä×÷Ϊ"Ó¦ÓÃ/°Ëλ×Ö½ÚÁ÷"ÀàÀ´´¦Àí¡£
7¡£2¡£2 ʵÌ峤¶È
±¨ÎĵÄʵÌ峤¶ÈÖ¸µÄÊÇÔÚ¶Ô±¨ÎĽøÐд«Êä±àÂëǰ±¨ÎÄÕýÎĵij¤¶È¡£4¡£4½Ú¶¨ÒåÁËÈ·¶¨±¨ÎÄÕýÎÄ´«Ê䳤¶ÈµÄ·½·¨¡£
8¡£Á¬½Ó
8¡£1 ³ÖÐøÁ¬½Ó¡£
8¡£1¡£1 Ä¿µÄ
ÔÚ³ÖÐøÁ¬½Ó֮ǰ£¬Îª»ñȡÿһURL¶¼½¨Á¢Á˶ÀÁ¢µÄTCP Á¬½Ó£¬ Õâ¾Í¼ÓÖØÁËHTTP·þÎñÆ÷µÄ¸ºµ££¬Ò×ÒýÆðINTERNET×èÈû¡£Ç¶ÈëʽͼƬÓëÆäËüÏà¹ØÊý¾Ýͨ³£Ê¹Óû§ÔÚ¶Ìʱ¼äÄÚ¶Ôͬһ·þÎñÆ÷Ìá½»¶à¸öÇëÇó¡£Ä¿Ç°ÒÑÓÐÕë¶ÔÕâЩÐÔÄÜÎÊÌâµÄ·ÖÎöÒÔ¼°ÔÐÍʵʩµÄ½á¹û[26]£¬[30]¡£ ʵʩµÄ¾ßÌå¹ý³ÌºÍ¶Ôʵ¼ÊHTTP/1¡£1£¨RFC 2068£©µÄ²âÊÔ¾ùÏÔʾÁËÁ¼ºÃµÄ½á¹û[39]¡£ ¶ÔÆäËû·½·¨Ò²ÓÐÁ˳õ²½Ì½¾¿£¬ÈçT/TCP [27]¡£
³ÖÐøHTTP Á¬½ÓÓÐ×ÅÖî¶àµÄÓŵ㣺
--- ͨ¹ý½¨Á¢Óë¹Ø±Õ½ÏÉÙµÄÁ¬½Ó£¬²»½ö½ÚÊ¡ÁË·ÓÉÆ÷ÓëÖ÷»ú£¨¿Í»§»ú£¬·þÎñÆ÷£¬´úÀí·þÎñÆ÷£¬Íø¹Ø£¬ËíµÀ»ò¸ßËÙ»º³å´æ´¢»ú£©µÄCPUʱ¼ä£¬»¹½ÚÊ¡ÁËÖ÷»úÓÃÓÚTCPÐÒé¿ØÖÆ¿éµÄÄÚ´æ¡£
--- HTTPÇëÇóÓëÓ¦´ð¿ÉÒÔ½øÈëÁ¬½ÓÁ÷Ë®Ïß¡£ Á÷Ë®Ïß·½Ê½Ê¹µÃ¿Í»§ÎÞÐë°¤¸öµÈ´ýÓ¦´ð¼´·¢Æð¶à¸öÇëÇ󣬴Ӷø¸ü³ä·ÖµÄÀûÓÃÁ˵¥¸öµÄTCPÁ¬½Ó£¬¼õÉÙÁ˱ÀÀ£Ê±¼ä¡£
--- ÔÚ¼õÉÙTCPÁ¬½ÓÖÐÊý¾Ý°ü¸öÊýµÄͬʱ£¬Ê¹TCPÓÐÁ˳äÔ£µÄʱ¼äÀ´È·¶¨ÍøÂçµÄÓµÈû×´¿ö£¬»º½âÁËÍøÂçÓµÈû¡£
--- ÒòΪÎÞÐëÔÚ´´½¨TCPÁ¬½ÓÎÕÊÖÉϺķÑʱ¼ä£¬¶øÊ¹Á¬ÐøÇëÇóÔì³ÉµÄÑÓ³ÙÏÖÏóµÃµ½¸ÄÉÆ¡£
--- ÓÉÓÚ³ö´í²»»áµ¼ÖÂTCPÁ¬½ÓµÄ¹Ø±Õ£¬HTTP¿ÉÒÔ¸üºÃµÄʵÏÖ×ÔÎÒÍêÉÆ¡£Ê¹ÓýÏаæHTTPµÄÓû§»áÀÖÓÚ³¢ÊÔһЩй¦ÄÜ£¬Óë¾É°æ·þÎñÆ÷ͨÐÅʱ£¬Ôò»áÔÚ½Óµ½³ö´í±¨¸æºóÓþÉÄ£Ê½ÖØÊÔ¡£
HTTPµÄʵÏÖÓ¦µ±²ÉÓóÖÐøÁ¬½Ó¡£
8¡£1¡£2 ×ÜÌå²Ù×÷
HTTP/1.1 ÓëÔçÆÚHTTP °æ±¾µÄÒ»¸öÏÔÖøÇø±ðÔÚÓÚ³ÖÐøÁ¬½ÓÊÇÈκÎHTTPÁ¬½ÓµÄȱʡ·½Ê½¡£Ò²¾ÍÊÇ˵£¬³ý·ÇÁíÓÐÖ¸¶¨£¬¿Í»§»ú×ÜÓ¦µ±¼Ù¶¨·þÎñÆ÷»á±£³Ö³ÖÐøÁ¬½Ó£¬¼´±ãÔÚ½Óµ½·þÎñÆ÷µÄ³ö´íÓ¦´ðʱҲӦÈç´Ë¡£
³ÖÐøÁ¬½ÓÌṩÁËÒ»ÖÖ¿ÉÒÔÓɿͻ§»ú»ò·þÎñÆ÷·¢ÐźÅÖÕÖ¹TCPÁ¬½ÓµÄ»úÖÆ¡£ÖÕÖ¹Á¬½ÓµÄÐźÅÀûÓÃÁË"Á¬½Ó"±¨Í·Óò£¨14.10½Ú£©¡£Ò»µ©³öÏÖÁËÖÕÖ¹Á¬½ÓµÄÐźţ¬¿Í»§»ú±ã²»¿ÉÔÙÏò´ËÁ¬½ÓÌá³öÈκÎÐÂÇëÇó¡£
8¡£1¡£2¡£1 ̸ÅÐ
³ý·ÇÇëÇóµÄÁ¬½Ó±¨Í·ÓòÖаüÀ¨ÁË"ÖÕÖ¹Á¬½Ó"µÄ·ûºÅ£¬HTTP/1¡£1·þÎñÆ÷×Ü¿ÉÒÔ¼Ù¶¨HTTP/1¡£1 ¿Í»§»úÏëҪά³Ö³ÖÐøÁ¬½Ó¡£Èç¹û·þÎñÆ÷ÏëÔÚ·¢³öÓ¦´ðºóÁ¢¼´ÖÕÖ¹Á¬½Ó£¬ËüÓ¦µ±·¢ËÍÒ»¸öº¬ÓÐÖÕÖ¹ÒªÇóµÄÁ¬½Ó±¨Í·Óò¡£
ÎÞÂÛÊǿͻ§»ú»ò·þÎñÆ÷·¢ÆðÖÕÖ¹Á¬½Ó£¬Õâ¶¼ÊDZ¾´ÎÁ¬½ÓµÄ×îºóÒ»¸öÇëÇó¡£
³ý·Ç¾Ã÷È·Ö¸³ö£¬¿Í»§»úÓë·þÎñÆ÷²»Ó¦¼Ù¶¨µÍ°æHTTP»á×Ô¶¯²ÉÓóÖÐøÁ¬½Ó·½Ê½¡£Çë²Î¼û19¡£6¡£2½Ú¹ØÓÚÓëHTTP/1¡£0¿Í»§»úºóÏò¼æÈÝÐÔµÄÓйØÄÚÈÝ¡£
ΪÁËά³Ö³ÖÐøÁ¬½Ó£¬Á¬½ÓÖеı¨Îͼ±ØÐëÓÐÈç4¡£4½ÚËùÊöµÄ×Ô¶¨Ò屨Îij¤¶È£¨¼´²»ÊÇÓÉÁ¬½ÓÖÕÖ¹¶¨ÒåµÄ³¤¶È£©¡£
8¡£1¡£2¡£2 Á÷Ë®Ïß
Ö§³Ö³ÖÐøÁ¬½ÓµÄ¿Í»§»ú¿ÉÒÔÒÔÁ÷Ë®Ïß·½Ê½·¢ËÍÇëÇ󣨼´ÎÞÐëµÈ´ýÓ¦´ð¶ø·¢ËͶà¸öÇëÇ󣩡£·þÎñÆ÷Ôò±ØÐ뽫ÆäÓ¦´ð°´½Óµ½ÇëÇóµÄ˳Ðò·¢³ö¡£
½¨Á¢Á¬½ÓºóÁ¢¼´²ÉÓóÖÐøÁ¬½ÓÓëÁ÷Ë®Ïß·½Ê½µÄ¿Í»§»úÓ¦×÷ºÃ³õ´ÎÁ÷Ë®Ïß³¢ÊÔʧ°ÜºóÖØÊÔµÄ×¼±¸£¬¶ø²»¿ÉÔÚ³ÖÐøÁ¬½ÓÉÐδȷ¶¨Ê±¾ÍÁ¬Ðø·¢ËÍÇëÇ󡣿ͻ§»ú»¹±ØÐëΪ·þÎñÆ÷ÔÚ·¢³öËùÓÐÓ¦´ð֮ǰ¾Í½áÊøÁ¬½ÓµÄÇé¿ö×÷ºÃÖØ·¢ÇëÇóµÄ×¼±¸¡£
¿Í»§»ú²»Ó¦¸ÃÓ÷ǵÈÃÝ·½·¨»ò·ÇµÈÃÝ·½·¨ÐòÁУ¨²Î¼û9¡£1¡£2½Ú£©Á¬·¢ÇëÇó¡£·ñÔò£¬¹ýÔçÖÕÖ¹µÄ´«Êä²ãÁ¬½Ó»áµ¼Ö²»È·¶¨µÄ½á¹û¡£
8¡£1¡£3 ´úÀí·þÎñÆ÷
ʹ´úÀí·þÎñÆ÷ÕýÈ·µØÊµÏÖ14¡£10½ÚËù¹æ¶¨µÄÁ¬½Ó±¨Í·ÓòµÄÊôÐÔÊǷdz£¹Ø¼üµÄ¡£
´úÀí·þÎñÆ÷±ØÐë¶ÀÁ¢ÓÚËüËùÁ¬½ÓµÄ¿Í»§»ú£¬Ô·þÎñÆ÷£¨»òÆäËü´úÀí·þÎñÆ÷£©¶ø·¢³ö³ÖÐøÁ¬½ÓµÄÐźš£Ã¿Ò»³ÖÐøÁ¬½Ó½öÕë¶Ô´«Êä²ãÁ´½Ó¡£
´úÀí·þÎñÆ÷²»¿ÉÓëһ̨HTTP/1.0¿Í»§»ú½¨Á¢HTTP/1¡£1³ÖÐøÁ¬½Ó£¨Çë²Î¼ûRFC 2068 [33] ÖйØÓÚHTTP/1¡£0¿Í»§»úÉÏʵÏÖ"ά³Ö»îԾ̬"±¨Í·ÎÊÌâµÄ̽ÌÖ¼°×ÊÁÏ£©
8¡£1¡£4 ʵ¼ÊµÄ¿¼ÂÇ
·þÎñÆ÷ͨ³£ÓÐÒ»¸öʱÏÞÖµ£¬³¬¹ýÒ»¶¨Ê±¼ä¼´²»ÔÙάϵ´¦ÓÚ·Ç»îԾ̬µÄÁ¬½Ó¡£´úÀí·þÎñÆ÷»áѡһ¸ö½Ï¸ßµÄÖµ£¬ÒòΪ¿Í»§»úºÜ¿ÉÄÜ»áÓëͬһ·þÎñÆ÷½¨Á¢¶à¸öÁ¬½Ó¡£³ÖÐøÁ¬½Ó·½Ê½µÄ²ÉÓöÔÓÚ¿Í»§»úÓë·þÎñÆ÷µÄʱÏÞ¾ùδÌá³öÈκÎÒªÇó¡£µ±¿Í»§»ú»ò·þÎñÆ÷Ï£Íû³¬Ê±ÖÕֹʱ£¬ËüÓ¦°´¹æ·¶ÖÕÖ¹´«ÊäÁ¬½Ó¡£¿Í»§¶ËÓë·þÎñÆ÷¶ËӦʼÖÕ×¢Òâ¶Ô·½ÊÇ·ñÖÕÖ¹ÁËÁ¬½Ó£¬²¢Êʵ±µÄÓèÒÔÓ¦´ð¡£Èô¿Í»§»ú»ò·þÎñÆ÷δÄܼ°Ê±¼ì²âµ½¶Ô·½ÒÑÖÕÖ¹ÁËÁ¬½Ó£¬½«»áÔì³É²»±ØÒªµÄÍøÂç×ÊÔ´ÀË·Ñ¡£
¿Í»§»ú£¬·þÎñÆ÷£¬»ò´úÀí·þÎñÆ÷¿ÉÄÜÔÚÈÎÒâʱ¿ÌÖÕÖ¹´«ÊäÁ¬½Ó¡£±ÈÈ磬¿Í»§»ú¿ÉÄÜÕýÏë·¢³öеÄÇëÇ󣬶ø´Ëʱ·þÎñÆ÷È´¾ö¶¨¹Ø±Õ"ÏÐÖÃ"µÄÁ¬½Ó¡£ÔÚ·þÎñÆ÷¿´À´£¬Á¬½ÓÊÇÔÚÏÐÖÃ×´¿öϱ»¹Ø±ÕµÄ£¬ ¶ø¿Í»§»úÈ´ÒÔΪÇëÇóÔÚ½øÐÐÖС£
Õâ±íÃ÷¿Í»§»ú£¬·þÎñÆ÷Óë´úÀí·þÎñÆ÷±ØÐëÓÐÄÜÁ¦´Ó·Çͬ²½µÄÁ¬½ÓÖÕֹʼþÖлָ´¡£Ö»ÒªÇëÇóÐòÁÐÊǵÈÃݵģ¨²Î¼û9¡£1¡£2½Ú£©£¬¿Í»§¶ËÈí¼þ¾ÍÓ¦×Ô¶¯ÖØÐ·¢Æð´«Êä²ãÁ¬½Ó²¢ÖØ´«±»·ÏÆúµÄÇëÇóÐòÁС£¶Ô·ÇµÈÃÝ·½·¨»òÐòÁв»¿É×Ô¶¯ÖØÊÔ£¬µ«Óû§´úÀí¿ÉÒÔÏòÊÖ¹¤²Ù×÷Ô±Ìá¹©ÖØ·¢ÇëÇóµÄ»ú»á¡£Óû§´úÀíÈí¼þ¶ÔÓ¦ÓóÌÐò»ùÓھ䷨Àí½âµÄÈ·ÈÏ¿ÉÒÔÓÃÀ´´úÌæÈ˹¤·½Ê½¡£ÈôÖØÊÔʧ°Ü£¬Ôò²»Ó¦ÔÊÐíÔÙÊÔ¡£
·þÎñÆ÷ÔÚÿ´ÎÁ¬½ÓÖÐÖ»ÒªÓпÉÄÜ£¬×ÜÓ¦ÖÁÉÙÓ¦´ðÒ»¸öÇëÇó¡£³ý·Ç³öÓÚÍøÂç»ò¿Í»§¶ËµÄ¹ÊÕÏ£¬·þÎñÆ÷²»Ó¦ÔÚ´«ËÍÓ¦´ðµÄÖÐ;¶Ï¿ªÁ¬½Ó¡£
ʹÓóÖÐøÁ¬½ÓµÄ¿Í»§»úÓ¦ÏÞÖÆÓëijһ·þÎñÆ÷ͬʱÁ¬½ÓµÄ¸öÊý¡£µ¥Óû§¿Í»§»ú²»Ó¦ÓëÈÎÒ»·þÎñÆ÷»ò´úÀí·þÎñÆ÷±£³ÖÁ½¸öÒÔÉϵÄÁ¬½Ó¡£´úÀí·þÎñÆ÷ÓëÆäËü·þÎñÆ÷»ò´úÀíÖ®¼äӦά»¤2*N¸öÁ¬½Ó£¬ÆäÖÐNÊÇͬʱÔÚÏßµÄÓû§Êý¡£É趨ÕâÒ»¹æÔòÊÇΪÁ˸ĽøHTTPÓ¦´ðʱ¼äÇÒ±ÜÃâÓµÈû¡£
8¡£2 ±¨ÎÄ´«ÊäÒªÇó¡¢
8¡£2¡£1 ³ÖÐøÁ¬½ÓÓëÁ÷Á¿¿ØÖÆ
HTTP/1¡£1·þÎñÆ÷Ó¦µ±±£³Ö³ÖÐøÁ¬½Ó²¢Ê¹ÓÃTCPµÄÁ÷Á¿¿ØÖÆ»úÖÆÀ´½â¾öÁÙʱ¹ýÔØ£¬¶ø²»ÊÇÔÚÖÕÖ¹Á¬½ÓºóÖ¸Íû¿Í»§¶ËµÄÖØÊÔ¡£ºóÒ»·½·¨»á¶ñ»¯ÍøÂç×èÈû¡£
8¡£2¡£2 ¼àÊÓÁ¬½ÓÖгö´í״̬µÄ±¨ÎÄ
·¢Ëͱ¨ÎÄÕýÎĵÄHTTP/1¡£1£¨»ò¸üУ©¿Í»§»úÓ¦ÔÚ´«ÊäÇëÇóµÄͬʱ¼àÊÓÁ¬½ÓÊÇ·ñ´¦ÓÚ³ö´í״̬¡£Èô¿Í»§»ú·¢ÏÖÁË´íÎó£¬ËüÓ¦µ±Á¢¼´Í£Ö¹ÕýÎĵĴ«ËÍ¡£ÈôÕýÎÄÊÇÒÔ¿é±àÂ뷽ʽ·¢Ë͵ģ¨3¡£6½Ú£©£¬¿ÉÒÔÓÃÒ»³¤¶ÈΪÁãµÄ¿éºÍ¿Õ±¨Î²À´Ìáǰ±ê¼Ç±¨ÎĽáÊø¡£ÈôÕýÎÄǰÓÐ"ÄÚÈݳ¤¶È"±¨Í·£¬Ôò¿Í»§»ú±ØÐë¹Ø±ÕÁ¬½Ó¡£
8¡£2¡£3 100ºÅ״̬µÄÓÃ;
100ºÅ״̬µÄÄ¿µÄÔÚÓÚ°ïÖúÄÇЩ·¢Ëͺ¬ÓÐÇëÇóÕýÎĵÄÇëÇó±¨ÎĵĿͻ§»úÔÚ·¢ËÍÇëÇóÕýÎÄÖ®Ç°ÍÆ²â·þÎñÆ÷¿´µ½ÇëÇó±¨Í·ºóÊÇ·ñÔ¸Òâ½ÓÊÕÇëÇó¡£ÓÐЩʱºò£¬Èç¹û·þÎñÆ÷²»¿´ÕýÎÄ¾ÍÆúÖñ¨Îĵϰ£¬¿Í»§»ú¶ÔÕýÎĵķ¢Ë;Ͷà´ËÒ»¾ÙÁË¡£
¶ÔHTTP/1¡£1 ¿Í»§»úµÄÒªÇó£º
--- Èô¿Í»§»úÔÚ·¢ËÍÇëÇóÕýÎÄ֮ǰµÈºò100£¨¼ÌÐø£©Ó¦´ð£¬ÔòËü±ØÐë·¢ËÍÌîÓÐ"100--¼ÌÐø"ÆÚÍûµÄ"ÆÚ´ýÇëÇó"±¨Í·Óò£¨14¡£20½Ú£©¡£
--- Èô¿Í»§»ú²»ÐèÒª·¢ËÍÇëÇóÕýÎÄ£¬ÔòËü²»µÃ·¢ËÍÌîÓÐ"100--¼ÌÐø"ÆÚÍûµÄ"ÆÚ´ýÇëÇó"±¨Í·Óò£¨14¡£20½Ú£©¡£
ÓÉÓÚ´æÔھɵÄʵÏÖ·½·¨£¬ÐÒéÔÊÐí³öÏÖÖîÈç¿Í»§»ú·¢³öÁË"ÆÚÍû£º100-¼ÌÐø" ȴû½Óµ½417£¨ÆÚÍûʧ°Ü£©»ò100£¨¼ÌÐø£©×´Ì¬µÄ»ìÂÒ¾ÖÃæ´æÔÚ¡£ Òò´Ë£¬µ±¿Í»§»ú½«ÕâÒ»±¨Í·Óò·¢¸øËü´Óδ½Óµ½100£¨¼ÌÐø£©×´Ì¬µÄÔ·þÎñÆ÷£¨Í¨³£ÊÇͨ¹ý´úÀí£©Ê±£¬ ¿Í»§»ú²»Ó¦ÔÚ·¢ËÍÇëÇóÕýÎÄǰÎÞÏÞÆÚµØµÈ´ý¡£
¶ÔHTTP/1¡£1Ô·þÎñÆ÷µÄÒªÇó£º
--- ÔÚ½Óµ½"ÆÚÍû"ÇëÇó±¨Í·ÓòÌîÓÐ"100-¼ÌÐø"ÆÚÍûµÄÇëÇóʱ£¬Ô·þÎñÆ÷±ØÐëÒÔ100£¨¼ÌÐø£©×´Ì¬Ó¦´ð²¢¼ÌÐø¶ÁÈëÊý¾ÝÁ÷£¬»òÕßÒÔÖÕֹ״̬ÂëÓ¦´ð¡£Ô·þÎñÆ÷ÔÚ·¢ËÍ100£¨¼ÌÐø£©Ó¦´ð֮ǰ²»µÃµÈ´ý¡£ÈôÒÔÖÕֹ״̬ÂëÓ¦´ð£¬Ëü¼È¿É¹Ø±Õ´«Êä²ãÁ¬½Ó£¬Ò²¿É¼ÌÐø¶ÁÈëÊý¾Ý¶ø¶ªÆúÇëÇóµÄÊ£Óಿ·Ö¡£µ«´ËʱËü²»µÃ°´¿Í»§»úËùÇëÇóµÄ·½Ê½ÔËÐС£
--- ÈçÇëÇó±¨ÎIJ»º¬ÌîÓÐ"100-¼ÌÐø"µÄ"ÆÚÍû"±¨Í·Óò£¬ Ô·þÎñÆ÷²»Ó¦·¢ËÍ100£¨¼ÌÐø£©Ó¦´ð¡£µ±ÇëÇóÀ´×ÔHTTP/1¡£0£¨»ò¸üÔ磩¿Í»§»úʱҲ²»µÃ·¢ËÍ100£¨¼ÌÐø£©Ó¦´ð¡£¶Ô´Ë¹æ¶¨ÓÐÒ»ÀýÍ⣺ΪÁËÓëRFC 2068¼æÈÝ£¬·þÎñÆ÷¶ÔÓÚ맪ÌîÓÐ"100-¼ÌÐø"µÄ"ÆÚÍû"±¨Í·ÓòµÄPUT»òPOST ÇëÇó¿ÉÒÔÓ¦´ð100£¨¼ÌÐø£©×´Ì¬¡£ÕâÒ»ÀýÍâµÄÄ¿µÄÔÚÓÚ¾¡Á¿¼õÉÙÓÉ100£¨¼ÌÐø£©×´Ì¬µÄδÉêÃ÷µÈ´ýÒýÆðµÄ¿Í»§»ú´¦ÀíÑÓ³Ù£¬½öÊÊÓÃÓÚHTTP/1¡£1ÇëÇó£¬ºÍÆäËüHTTP °æ±¾µÄÇëÇóÎ޹ء£
--- ÈôÒѾ½Óµ½ÏàÓ¦ÇëÇóµÄ²¿·Ö»òÈ«²¿ÇëÇóÕýÎÄ£¬Ô·þÎñÆ÷¿ÉÒÔÃâ·¢100£¨¼ÌÐø£©Ó¦´ð¡£
--- Ò»µ©ÇëÇóÕýÎı»ÊÕµ½´¦Àí£¬·¢³ö100£¨¼ÌÐø£©Ó¦´ðµÄÔ·þÎñÆ÷³ý·Ç¹ýÔçÇжϴ«Êä²ãÁ¬½Ó£¬·ñÔò×îÖÕ±ØÐë·¢ËÍÖÕֹ״̬Âë¡£
--- ÈôÔ·þÎñÆ÷½Óµ½²»º¬ÌîÓÐ"100-¼ÌÐø"µÄ"ÆÚÍû"±¨Í·ÓòµÄÇëÇ󣬸ÃÇëÇóº¬ÓÐÇëÇóÕýÎÄ£¬¶ø·þÎñÆ÷ÓÖÔÚ´Ó´«Êä²ãÁ¬½Ó¶ÁÈëÕýÎÄ֮ǰ¾ÍÓ¦´ðÁËÖÕֹ״̬Â룬Ôò·þÎñÆ÷²»Ó¦ÔÚ¶ÁÍêÈ«²¿ÇëÇó»ò¿Í»§»úÖÕÖ¹Á¬½Óǰ¹Ø±ÕÁ¬½Ó¡£ ·ñÔò£¬¿Í»§»ú¿ÉÄÜÎÞ·¨¿É¿¿µØ½ÓÊÕÓ¦´ð±¨ÎÄ¡£È»¶ø£¬ÕâÒ»ÒªÇóÔÚ²ûÊÍÖв»Ó¦×èÖ¹·þÎñÆ÷·ÀÎÀ¾Ü¾ø·þÎñµÄ¹¥»÷»òÓÐÑÏÖØÈ±ÏݵĿͻ§³ÌÐò¡£
¶Ô´úÀí·þÎñÆ÷µÄÒªÇó£º
--- Èô´úÀí·þÎñÆ÷½Óµ½°üº¬ÌîÓÐ"100-¼ÌÐø"µÄ"ÆÚÍû"±¨Í·ÓòµÄÇëÇó£¬ÇÒ´úÀí·þÎñÆ÷Ҫô֪µÀÏÂÒ»Õ¾·þÎñÆ÷×ñÑHTTP/1¡£1»ò¸ü¸ß°æÐÒ飬Ҫô²»ÖªÏÂÒ»Õ¾·þÎñÆ÷µÄHTTP°æ±¾£¬ÔòËü±ØÐëÁ¬Í¬"ÆÚÍû"±¨Í·ÓòÒ»Æðת·¢´ËÇëÇó¡£
--- ÈôÇÒ´úÀí·þÎñÆ÷ÖªµÀÏÂÒ»Õ¾·þÎñÆ÷°æ±¾ÊÇHTTP/1¡£0»ò¸üµÍ£¬ÔòËü²»µÃת·¢´ËÇëÇ󣬶øÓ¦Ó¦´ðÒÔ417£¨ÆÚÍûʧЧ£©×´Ì¬¡£
--- ´úÀí·þÎñÆ÷Ó¦µ±Î¬»¤Ò»¸ßËÙ»º´æ£¬ÒԼǼнü·ÃÎʵ½µÄÏÂÒ»Õ¾µã·þÎñÆ÷µÄHTTP°æ±¾ºÅ¡£
--- Èô½Óµ½µÄÇëÇóÀ´×ÔÓÚ°æ±¾ÊÇHTTP/1¡£0£¨»ò¸üµÍ£©µÄ¿Í»§»ú£¬²»º¬ÌîÓÐ"100-¼ÌÐø"µÄ"ÆÚÍû"±¨Í·ÓòµÄÇëÇó£¬Ôò´úÀí·þÎñÆ÷²»µÃת·¢100£¨¼ÌÐø£©Ó¦´ð¡£ ÕâÒ»ÒªÇó¿É¸²¸Ç1xxÓ¦´ðת·¢µÄÒ»°ã¹æÔò£¨²Î¼û10¡£1½Ú£©¡£
8£®2£®4 ·þÎñÆ÷¹ýÔç¹Ø±ÕÁ¬½Óʱ¿Í»§»úµÄÐÐΪ
Èç¹ûHTTP/1¡£1 ¿Í»§»ú·¢³öÒ»Ìõº¬ÓÐÇëÇóÕýÎĵ«²»º¬ÌîÓÐ"100-¼ÌÐø"µÄ"ÆÚÍû"±¨Í·ÓòµÄÇëÇ󣬲¢ÇÒ¿Í»§»úÖ±½ÓÓëHTTP/1¡£1Ô·þÎñÆ÷ÏàÁ¬£¬ÔÚ´Ó·þÎñÆ÷´¦½Óµ½ÈκÎ״̬ÐÅϢ֮ǰ¾Í·¢ÏÖÁ¬½Ó±»¹Ø±Õ£¬ÄÇô¿Í»§»úÓ¦µ±ÖØÊÔÇëÇó¡£ÔÚÖØÊÔʱ£¬¿Í»§»úºÎÒÔ²ÉÓÃÈçÏÂËùÊöµÄ"¶þ½øÖÆÖ¸ÊýºóÍËËã·¨"ÒÔÈ·±£»ñµÃ¿É¿¿Ó¦´ð£º
1£® Ïò·þÎñÆ÷·¢ÆðÒ»ÐÂÁ¬½Ó¡£
2£® ·¢ËÍÇëÇóµÄ±¨Í·¡£
3£® ³õʼ»¯±äÁ¿RΪͨÍù·þÎñÆ÷µÄÍù·µÊ±¼äµÄ¹À¼ÆÖµ£¨±ÈÈç»ùÓÚ½¨Á¢Á¬½ÓµÄʱ¼ä£©£¬»òÔÚÎÞ·¨¹À¼ÆÍù·µÊ±¼äʱÉèΪһ³£ÊýÖµ5Ãë¡£
4£® ¼ÆËãT=R*£¨2**N£©£¬NΪ´ËÇ°ÖØÊÔÇëÇóµÄ´ÎÊý¡£
5£® µÈ´ý·þÎñÆ÷·¢À´µÄ³ö´íÓ¦´ð»òÊÇTÃ루Á½ÕßÖÐʱ¼ä½Ï¶ÌµÄ£©¡£
6£® ÈôûµÈµ½³ö´íÓ¦´ð£¬TÃëºó·¢ËÍÇëÇóÕýÎÄ¡£
7£® Èô¿Í»§»ú·¢ÏÖÁ¬½Ó±»ÌáǰÖÕÖ¹£¬×ªµ½µÚ1²½£¬Ö±µ½ÇëÇó±»½ÓÊÜ£¬½Óµ½³ö´íÓ¦´ð£¬»òÊÇÓû§Òò²»ÄÍ·³¶øÖÕÖ¹ÁËÖØÊÔ½ø³Ì¡£
ÔÚÈÎÒâ»·½ÚÉÏ£¬¿Í»§»úÈç¹û½Óµ½³ö´í״̬£¬
--- ²»Ó¦ÔÙ¼ÌÐø£¬ ²¢ÇÒ
--- ÈçÍê³ÉÇëÇó±¨Îĵķ¢ËÍÔòÓ¦ÖÕÖ¹Á¬½Ó
£¹ ·½·¨¶¨Òå
HTTP/1.1³£¹æ·½·¨µÄ¶¨ÒåÈçÏÂ.ËäÈ»Õâ¸ö¶¨Òå¿ÉÒÔÕ¹¿ª,µ«¸½¼ÓµÄ·½·¨²»Äܱ»¼Ù¶¨·ÖÏíºÍ¸ö±ðÀ©Õ¹µÄ¿Í»§»úºÍ·þÎñÆ÷ͬÑùµÄÓïÒå.
Ö÷»úÇëÇóÓ¦´ð±¨Í·(14.23½Ú)±ØÐë·ûºÏËùÓеÄHTTP/1.1ÇëÇó.
9.1 °²È«ºÍµÈÃÝ(Idempotent)·½·¨
9.1.1 °²È«·½·¨
ʵÏÖ³ÌÐòÓ¦µ±ÖªµÀÈí¼þͨ¹ýÔÚInternetÉϵĽ»»¥À´°çÑÝÓû§,ÇÒÓ¦¸Ã×ÐϸµÄÔÊÐíÓû§ÖªµÀÈκÎËüÃÇ¿ÉÄܲÉÈ¡µÄÐж¯,ÕâЩÐж¯¿ÉÄܸøËûÃÇ×Ô¼º»òËûÈË´øÀ´ÎÞ·¨Ô¤ÁϵĽá¹û.
ÌØ±ðµÄ.ÕâÑùµÄ¹ßÀýÒѾÐγÉ,¾ÍÊÇGETºÍHEAD·½·¨³ýÁ˲¹¾ÈÍâ²»Ó¦¸ÃÓбðµÄ²ÉÈ¡´ëÊ©µÄº¬Òå.ÕâЩ·½·¨Ó¦¸Ã±»¿´×÷"°²È«".ÕâÔÊÐíÓû§´úÀíÃè»æÆäËû·½·¨,ÏñPOST,PUT,DELETE,ÔÚijÖÖÒâÒåÉÏ,Óû§ÖªµÀijÖÖ²»°²È«µÄÐÐΪ±»ÇëÇóµÄÊÂʵ.
×ÔÈ», Ëæ×ÅGETÇëÇóµÄʵÏÖ,²»¿ÉÄܱ£Ö¤·þÎñÆ÷²»²úÉú¸±×÷ÓÃ;ÊÂʵÉÏ,һЩ¶¯Ì¬µÄ×ÊÔ´¿¼Âǵ½ÄÇÑùµÄÌØÕ÷.ÔÚÕâÀïÖØÒªµÄÇø±ðÊÇÓû§Ã»ÓÐÇëÇó¸±×÷ÓÃ,Òò´Ë²»Ó¦¸ÃΪ´Ë³Ðµ£ÔðÈÎ.
9.1.2 µÈÃÝ·½·¨
·½·¨Ò²¿ÉÒÔµÈÃݵÄÐÔÖÊ,ÕâÖÖÇé¿öÏÂ(³ýÁ˳ö´í»òÖÕÖ¹ÎÊÌâ)N>0¸öͬÑùÇëÇóµÄ¸±×÷Óú͵¥¸öÇëÇóÒ»Ñù.·½·¨GET,HEAD,PUT, DELETE¶¼ÓÐÕâÖÖÐÔÖÊ.¶øÇÒ,·½·¨OPTIONSºÍTRACE²»Ó¦¸ÃÓи±×÷ÓÃ,µÈÃݾÍÊÇÕâÑùµÄº¬Òå.È»¶ø,ÓпÉÄܼ¸¸öÇëÇóµÄÐòÁÐÊDz»µÈÃݵÄ,¼´Ê¹ÔÚÄÇÑùµÄÐòÁÐÖÐËùÓз½·¨µ¥¶ÀʵÏÖ¶¼ÊǵÈÃݵÄ(Èç¹ûÕû¸öÐòÁÐÕûÌåµÄʵÏÖ½á¹û×ÜÊÇÏàͬµÄ,¼´²»ÒòÐòÁÐÕûÌå,²¿·ÖµÄÖØÐÂʵÏÖ¶ø±ä»¯,ÔòÐòÁÐÊǵÈÃݵÄ).ÀýÈç,Èç¹ûÒ»¸öÐòÁÐʵÏֵĽá¹ûÒÀÀµÒ»¸öÐòÁÐÖкóÀ´¿ÉÒÔÐ޸ĵÄÖµ,Ôò¸ÃÐòÁв»ÊǵÈÃݵÄ.
ûÓи±×÷ÓõÄÐòÁÐÊǵÈÃݵÄ(ÌÈÈôÔÚͬÑùµÄ×ÊÔ´ÅäÖÃϲ»Í¬Ê±²Ù×÷)
9.2 OPTIONS(Ñ¡Ï
OPTIONS·½·¨ÃèÊöÁËÔÚÇëÇóURIÈ·¶¨µÄÇëÇó/Ó¦´ð¹ý³ÌÖÐͨÐÅÌõ¼þÊÇ·ñ¿ÉÐеÄÐÅÏ¢.¸Ã·½·¨ÔÊÐí¿Í»§»úÈ·¶¨Ìõ¼þ»òÉ豸,ÆäÓë×ÊÔ´»ò·þÎñÆ÷µÄûÓаµÊ¾×ÊÔ´²Ù×÷»ò³õʼ»¯×ÊÔ´ÖØ½¨µÄÇé¿öϵÄÐÔÄÜÓйØ,
ÕâÖÖ·½·¨µÄÓ¦´ðÊDz»ÄÜ»º´æµÄ.
Èç¹ûOPTIONSÇëÇó°üÀ¨Ò»¸öʵÌå(ÓÃÀ´Ö¸Ê¾ÄÚÈݳ¤¶È»ò´«ÊäÂëµÄ´æÔÚ),½Ó×ÅýÌåÀàÐÍÓ¦¸ÃÓÐÒ»¸öÄÚÈÝÄÚÐÍÓòÀ´È·¶¨.ËäÈ»ÕâÖֹ涨¶ÔÄÇÑùµÄÖ÷ÌåûÓж¨ÒåÈκι¦ÄÜ,δÀ´HTTPµÄÀ©Õ¹¿ÉÒÔÓÃOPTIONSÓòÀ´°²ÅŸü¶àϸ½ÚÐÔµÄÓйطþÎñÆ÷µÄѯÎÊ.һ̨²»Ö§³ÖÀ©Õ¹µÄ·þÎñÆ÷¿ÉÒÔÅׯúÇëÇóÕýÎÄ.
Èç¹ûÇëÇóURIÊÇÒ»¸öÐǺÅ("*"), OPTIONSÇëÇóÌØÒâÓ¦ÓÃÓÚ×ܵķþÎñÆ÷¶ø²»ÊÇÌØ¶¨µÄ·þÎñ×ÊÔ´.¼ÈÈ»·þÎñÆ÷µÄͨÐÅÌõ¼þÈ¡¾öÓÚ×ÊÔ´,"*"ÇëÇóÖ»ÊÇ×÷Ϊ"ping" »ò "no-opÀàÐ͵ķ½·¨²ÅÓÐÓÃ;ËüÖ»ÄÜÔÊÐí¿Í»§»ú²âÊÔ·þÎñÆ÷µÄÐÔÄÜ.ÀýÈç,ÕâÄܱ»ÓÃÀ´¼ì²âһ̨´úÀí»ú¼´ÊÇ·ñÖ§³ÖHTTP/1.1.
Èç¹ûÇëÇóURI²»ÊÇÒ»¸öÐǺÅ("*"), OPTIONSÇëÇóÖ»Êǵ±ºÍ×ÊԴͨÐÅʱӦÓÃÓÚÌõ¼þÊÇ·ñ¿ÉÄÜ.
Ó¦´ð200Ó¦µ±°üÀ¨±íʾ·þÎñÆ÷ʵÏֺͿÉÓ¦ÓÃÓÚ×ÊÔ´µÄ¿ÉÑ¡ÔñµÄÌØÕ÷±¨Í·Óò,.¿ÉÄܰüÀ¨ÕâÖֹ淶¶¨Òå䶨ÒåµÄÀ©Õ¹.¹æ·¶Ã»Óж¨ÒåÕýÎÄ,µ«Î´À´HTTPµÄÀ©Õ¹¿ÉÄܻᶨÒå,ÉÌÒéÄÚÈÝ¿ÉÄÜ»áÓÃÓÚÑ¡ÔñÊʵ±µÄÓ¦´ð¸ñʽ.Èç¹ûûÓÐÓ¦´ðÌå±»°üÀ¨½øÀ´,Ó¦´ð±ØÐë°üÀ¨Ò»¸öֵΪÁãµÄÄÚÈݳ¤¶ÈÓò.
×î´óת·¢ÇëÇó±¨Í·Óò¿ÉÒÔÓÃÓÚÇëÇó¹ý³ÌÖÐÌØ¶¨µÄ´úÀí»ú.µ±´úÀí»úÊÕµ½¿ÉÒÔ¼ÌÐø´«²¥µÄ¾ø¶ÔURIµÄOPTIONSÇëÇóʱ,´úÀí»ú±ØÐë¼ì²â×î´óת·¢Óò.Èç¹û×î´óת·¢ÓòµÄÖµÊÇÁã,´úÀí»ú½ûֹת·¢ÐÅÏ¢.Ïà·´µÄ,´úÀí»ú½«»Ø´ðËü×Ô¼ºµÄͨÐÅÌõ¼þ.Èç¹ûÊÇ´óÓÚÁãµÄÕûÊý,µ±´úÀí»úת·¢ÇëÇóʱ,¸ÃÓòµÄÖµ½«Öð½¥¼õС.Èç¹ûÇëÇóÖÐûÓиÃÓò,Ôòת·¢ÇëÇóµ±ÖÐÒ²»áûÓÐ.
9.3 GET£¨»ñÈ¡£©
GET·½·¨Öؽ¨ÐÅÏ¢µÄÄÚÈÝ(ÕýÎĵÄÐÎʽ)ÓÉÇëÇóURIÀ´È·¶¨.Èç¹ûÇëÇóURIÖ¸Êý¾Ý²úÉúµÄ¹ý³Ì,ËüÊÇÔÚÓ¦´ðÖвúÉú,±»µ±×÷ÕýÎÄ·µ»ØµÄÊý¾Ý,¶ø²»Êǹý³ÌµÄÔ´Îı¾,³ý·ÇÎı¾ÅöÇÉÊǹý³ÌµÄÊä³ö.
Èç¹ûÇëÇóÐÅÏ¢°üÀ¨ If-Modified-Since, If-Unmodified-Since,If-Match, If-None-Match, or If-Range±¨Í·Óò, GETµÄÓïÒ彫±ä³É"Ìõ¼þ£¨conditial£© GET". Ö»ÓÐÔÚÌõ¼þ±¨Í·Óò(conditional header)ËùÃèÊöµÄ»·¾³ÏÂ, Ìõ¼þGET·½·¨ÇëÇóʵÌå±»´«Êä. "Ìõ¼þGET"·½·¨ÓÃÓÚ¼õÉÙ²»±ØÒªµÄÍøÂçʹÓÃ,ÕâÖÖʹÓÃÔÊÐíÔÚûÓжàÖÖÇëÇó»ò¿Í»§»úÒѾ»ñ´«ÊäÊý¾ÝµÄÇé¿öÏÂˢлº´æÊµÌå.
Èç¹ûÇëÇóÐÅÏ¢°üÀ¨·¶Î§£¨Range)±¨Í·Óò, GET·½·¨µÄÓïÒ彫±ä³É"²¿·Ö(partial)GET","²¿·ÖGET"ÇëÇóÖ»ÒªÇó´«Ê䲿·ÖʵÌå,Èç14.35½ÚÖ¸¶¨µÄÄÇÑù. ²¿·ÖGET·½Ê½Í¨¹ýÔÊÐíµ±¿Í»§¶ËûÓеõ½È«²¿µÄ´«ÊäÊý¾Ýʱ²¿·ÖµÄÖØ½¨Êý¾ÝÀ´¼õÉÙ²»±ØÒªµÄÍøÂçʹÓÃ.
Ö»Óе±GETÇëÇóÅöµ½13ÕÂÀïËùÃèÊöµÄÖ§³ÖHTTP»º´æµÄÉ豸ʱ,Ó¦´ð²ÅÊǿɻº´æµÄ.
µ±Ê¹Óñí¸ñÐÎʽʱ.Çë²Î¿´15.1.3½Ú¹ØÓÚ°²È«µÄ¿¼ÂÇ.
9.4 HEAD£¨±¨Í·£©
³ýÁËÓ¦´ðÖнûÖ¹·µ»ØÏûÏ¢ÕýÎÄÍâ,HEAD·½·¨ÓëGET·½·¨Ò»Ñù.°üº¬ÔÚHTTP±¨Í·ÒÔºóÓ¦´ð±¨Í·Í·ÇëÇóµÄÐÅÏ¢ÓëPOSTÈ¥Ó¦´ðGETÇëÇóµÄÐÅÏ¢ÊÇÏàͬµÄ.ÕâÖÖ·½·¨ÄÜÓÃÓÚ»ñµÃ¹ØÓÚʵÌå¸ü¶àµÄÐÅÏ¢,ûÓд«ÊäʵÌåÕýÎı¾ÉíµÄÇëÇó°µÊ¾ÁËÕâÖÖÐÅÏ¢.Õâ¸ö·½·¨³£ÓÃÀ´¼ì²é³¬Îı¾Á´½ÓµÄÓÐЧÐÔ,¿Éµ½´ïÐÔºÍ×î½üµÄÐÞÕý.
µ±°üº¬ÔÚÓ¦´ðÖеÄÐÅÏ¢¿ÉÒÔÓÃÀ´¸üÐÂÒÔǰ»º´æµÄÀ´×Ô×ÊÔ´µÄʵÌåʱ,¶ÔHEADÇëÇóµÄÓ¦´ðÊǿɻº´æµÄ.Èç¹ûÐÂÓòµÄÖµÏÔʾ»º´æµÄʵÌ岻ͬÓÚµ±Ç°µÄʵÌåʱ(Õ⽫ÔÚÄÚÈݳ¤¶È,ÄÚÈÝ-MD5,ETAG»ò×îºó¸üÐÂʱ¼äÖбíÏÖ³öÀ´),»º³åÇø¾ÍÅׯú»º´æµÄʵÌå.
9.5 POST£¨ÕÅÌù£©
ÔÚPOST ·½·¨ÊÊÓõÄÇëÇóÖÐ,Ô·þÎñÆ÷½ÓÊÕ¸½¼ÓÔÚÇëÇóºóµÄʵÌå,¸ÃʵÌåºó×÷ΪÇëÇóÐÐÀïÇëÇóURIÖ¸¶¨µÄ×ÊÔ´µÄ´ÎÒª²¿·Ö,. POST ±»Éè¼ÆÎª¾ßÓÐÈçÏµĹ¦µÄͳһµÄ·½·¨:
- ÒÑÓÐ×ÊÔ´µÄ×¢½â.
- ÔÚµç×Ó²¼¸æ°æ,ÐÂÎÅ×é,ÓÊÏä»òÀàËÆµÄÖ÷Ìâ×éÌùһЩÐÅÏ¢.
- ÌṩÊý¾Ý¿é,ÏñÈ·ÈÏ±íµ¥Êý¾Ý´¦ÀíµÄ½á¹û.
- ͨ¹ý¸½¼ÓµÄ²Ù×÷À©³äÊý¾Ý¿â.
POST·½·¨ÊµÏÖµÄʵ¼Ê¹¦ÄÜÈ¡¾öÓÚ·þÎñÆ÷,ÇÒÍùÍùÈ¡¾öÓÚÇëÇóURI.POSTʵÌåÊôÓÚURI,¾ÍÏñÎĵµÊôÓÚ°üÀ¨ËüµÄĿ¼,ÐÂÎÅÖ÷ÌâÊôÓÚËüËùÔÚµÄÐÂÎÅ×é,»ò¼Í¼ÊôÓÚÊý¾Ý¿â.
POST·½·¨ÊµÏֵIJÙ×÷²»»á×÷ÓÃÓÚURI¿ÉÒÔ¼øÊ¶±ðµÄ×ÊÔ´.ÔÚÕâÖÖÇé¿öÏÂ,ÎÞÂÛ2000(OK)»¹ÊÇ2004(ÎÞĿ¼)ÊǺÏÊʵÄÓ¦´ð״̬,È¡¾öÓÚÓ¦´ðÊÇ·ñ°üÀ¨ÃèÊö½á¹ûµÄʵÌå.
Èç¹ûÔ·þÎñÆ÷ÉÏÒѾ½¨Á¢ÁË×ÊÔ´,Ó¦´ð½«ÊÇ201(½¨Á¢)ÇÒ°üÀ¨ÃèÊöÇëÇó״̬,Ö¸ÏòеÄ×ÊÔ´µÄʵÌåºÍÒ»¸ö±¾µØ±¨Í·(¿´14.30½Ú).
ÕâÖÖ·½·¨µÄÓ¦´ðÊDz»¿É»º´æµÄ,³ý·ÇÓ¦´ð°üÀ¨ºÏÊʵĻº³å¿ØÖÆ»òÖÕÖ¹±¨Í·Óò.È»¶ø,303(¿´±ðµÄ)Ó¦´ð¿ÉÖ±½ÓÓÃÓÚÓû§´úÀíÖØ½¨¿É»º´æ×ÊÔ´.
POST ÇëÇó±ØÐëÏñ8.2½ÚËùÃèÊöµÄÄÇÑù·þ´ÓÏûÏ¢´«ÊäµÄÐèÒª.
²Î¼û15.1.3½Ú¹ØÓÚ°²È«ÐԵĿ¼ÂÇ.
9.6 PUT£¨·ÅÖã©
PUT·½·¨ÒªÇóËù¸½ÊµÌå´æ´¢ÔÚÌṩµÄÇëÇóURIÏÂ.¼ÙÈçÇëÇóURIÖ¸µÄÊÇÒѾ´æÔÚµÄ×ÊÔ´,Ëù¸½µÄʵÌåÓ¦µ±±»µ±×÷Ô·þÎñÆ÷ÖÐÒÑÐ޸ĵİ汾. ¼ÙÈçÇëÇóURIÖ¸µÄ²»ÊÇÒѾ´æÔÚµÄ×ÊÔ´,¶øURI¿ÉÒÔ±»¿Í»§´úÀí¶¨Òå³ÉеÄ×ÊÔ´,Ô·þÎñÆ÷¿ÉÒÔ½¨Á¢¸ÃURI×ÊÔ´.¼ÙÉ轨Á¢ÁËÐÂ×ÊÔ´,Ô·þÎñÆ÷±ØÐëͨ¹ý 201(½¨Á¢)Ó¦´ð֪ͨÓû§´úÀí.Èç¹ûÐÞ¸ÄÁËÒÑÓÐ×ÊÔ´,½«·¢ËÍ200(OK)»ò204(ÎÞÄÚÈÝ)Ó¦´ð±íʾÇëÇóµÄ³É¹¦Íê³É.Èç¹û¶ÔÓÚ¸ÃURI×ÊÔ´²»ÄÜ´´½¨»òÐÞÕý,½«¸ø³öºÏÀíµÄ³ö´íÓ¦´ðÀ´·´Ó³ÎÊÌâËùÔÚ.ʵÌåÈÝÆ÷²»ÄܺöÊÓÈκβ»±»Àí½â»òʵÏÖµÄÄÚÈÝ-*(ÀýÈçÄÚÈÝ·¶Î§)±¨Í·,Õâʱ±ØÐë·µ»Ø501(δʵÏÖ)Ó¦´ð.
Èç¹ûÇëÇó¾¹ý¸ßËÙ»º³å´æ´¢Æ÷ºÍÇëÇóURI±êʶһ¸ö»ò¶à¸öµ±Ç°»º´æµÄʵÌå,ÕâЩʵÌ彫±»Åׯú.Õâ¸ö·½·¨µÄÓ¦´ðÊDz»¿É»º´æµÄ.
POSTºÍPUTÇëÇó»ù±¾µÄ²»Í¬µã·´Ó³ÔÚÇëÇóURIµÄ²»Í¬ÒâÒå.POST·½·¨ÖеÄURI±êʶ½«´¦Àí¸½¼ÓʵÌåµÄ×ÊÔ´.×ÊÔ´¿ÉÒÔÊÇÊý¾Ý½ÓÊÕ¹ý³Ì,Ò»¸öÍø¹ØºÍһЩÐÒé,»òÒ»¸ö½ÓÊÕ×¢½âµÄ·ÖÉ¢µÄʵÌå.ÓëÖ®Ïà¶ÔÕÕµÄÊÇ, PUTÇëÇóÖеÄURI±êʶÇëÇóËù¸½µÄʵÌå-Óû§´úÀíÁ˽âʲôURIÊÇÓÐÒâµÄºÍ·þÎñÆ÷½ûÖ¹ÊÔͼӦÓÃÇëÇóÓÚ±ðµÄ×ÊÔ´.¼ÙÈç·þÎñÆ÷Ï£ÍûÇëÇóÓ¦ÓÃÓÚ²»Í¬µÄURI,
Ëü±ØÐëÊÇ301(ÓÀ¾ÃÒÆ¶¯)Ó¦´ð;Óû§´úÀí¿ÉÒÔ×Ô¼º¾ö¶¨¹ØÓÚÊÇ·ñ¸Ä±äÇëÇó·ÓÉ.
µ¥¸öµÄ×ÊÔ´¿ÉÒÔ±»Ðí¶à²»Í¬µÄURIÈ·¶¨.ÀýÈç,Ò»¸öÖ÷Ìâ¿ÉÒÔÓÐÒ»¸öURIʶ±ðµ±Ç°°æ±¾,Õâ´ÓURIʶ±ðÿһ¸öÌØ¶¨µÄ°æ±¾·ÖÀ뿪À´.ÔÚÕâÖÖÇé¿öÏÂ,PUTÇëÇóÖÐÒ»°ãµÄURIµ¼Ö·þÎñÆ÷,¶øÆäËûµÄURIÓÉÔ·þÎñÆ÷¶¨Òå.
HTTP/1.1ûÓж¨ÒåPUT·½·¨ÈçºÎÓ°ÏìÔ·þÎñÆ÷µÄ״̬.
PUTÇëÇó±ØÐë·þ´Ó8.2½ÚÃèÊöµÄÐÅÏ¢´«ÊäÐèÒª.
³ýÁËÌØ¶¨µÄʵÌ屨ͷ˵Ã÷,POST·½·¨ÖеÄʵÌåÍ·Ó¦¸ÃÓ¦ÓÃÓÚPOST·½·¨´´½¨»òÐ޸ĵÄ×ÊÔ´.
9.7 DELETE£¨É¾³ý£©
DELELE·½·¨ÒªÇóÔ·þÎñÆ÷ÊÍ·ÅÇëÇóURIÖ¸ÏòµÄ×ÊÔ´.ÕâÖÖ·½·¨¿ÉÒÔͨ¹ýÔ·þÎñÆ÷ÉÏÈ˵ÄÇ¿ÐиÉÉæ¶øÖÆÖ¹(À¨ÆäËûÊÖ¶Î).¿Í»§»ú²»Äܵ£±£²Ù×÷ÒѾʵÏÖÁË,¼´Ê¹´ÓÔ·þÎñÆ÷·µ»ØµÄ״̬Âë˵Ã÷²Ù×÷ÒѾ³É¹¦µÄÍê³É.µ«Èç¹ûµ±Ê±Ó¦´ðδ¸ø³öµÄ»°,·þÎñÆ÷²»Ó¦¸Ã±íʾ³É¹¦,Ëü´òËãÊÍ·Å×ÊÔ´»òÒÆµ½²»ÄÜ·ÃÎʵÄλÖÃ.
¼ÙÈçÓ¦´ð°üÀ¨ÃèÊö״̬µÄʵÌå,³É¹¦µÄÓ¦´ðÊÇ200(OK),Èç¹û²Ù×÷ÈÔÎ´ÖÆ¶¨,ÔòÓ¦´ðΪ202(½ÓÊÕ),Èç¹û²Ù×÷ÒÑÖÆ¶¨µ«Ó¦´ð²»°üÀ¨ÊµÌå,ÔòÓ¦´ðΪ204(ÎÞÄÚÈÝ).
Èç¹ûÇëÇó¾¹ý»º´æºÍÇëÇóURIʶ±ðÒ»¸ö»ò¶à¸öµ±Ç°»º´æµÄʵÌå,ÕâЩʵÌ彫±»Åׯú.Õâ¸ö·½·¨µÄÓ¦´ðÊDz»¿É»º´æµÄ.
Èç¹ûÇëÇó¾¹ý»º´æºÍÇëÇóURIʶ±ðÒ»¸ö»ò¶à¸öµ±Ç°»º´æµÄʵÌå,ÕâЩʵÌ彫±»Åׯú.Õâ¸ö·½·¨µÄÓ¦´ðÊDz»¿É»º´æµÄ.
Èç¹ûÇëÇó¾¹ý¸ßËÙ»º³å´æ´¢Æ÷ºÍÇëÇóURI±êʶһ¸ö»ò¶à¸öµ±Ç°»º´æµÄʵÌå,ÕâЩʵÌ彫±»Åׯú.Õâ¸ö·½·¨µÄÓ¦´ðÊDz»¿É»º´æµÄ.
9.8 TRACE£¨¸ú×Ù£©
TRACE·½·¨ÓÃÓÚµ÷ÓÃÔ¶³ÌµÄ,Ó¦ÓòãÑ»·ÇëÇóÏûÏ¢.ÇëÇó×îÖյĽÓÊÕÕßÓ¦µ±·´Éä´Ó¿Í»§»ú×÷Ϊ200Ó¦´ðµÄʵÌåÕýÎÄÊÕµ½µÄÐÅÏ¢.×îÖյĽÓÊÕÕßÒ²ÊÇÔ·þÎñÆ÷»òÔÚÇëÇóÖÐÊÕµ½×î´óת·¢ÊýÁ¿ÖµµÚÒ»¸ö´úÀí·þÎñÆ÷»òÍø¹Ø (¿´14.31½Ú).TRACEÇëÇó²»°üÀ¨ÊµÌå.
TRACEÔÊÐí¿Í»§¶ËÁ˽âÔÚÇëÇóµÄÁíÒ»¶ËÊÕµ½µÄÄÚÈݺÍÓÃÊý¾Ý²âÊÔ»òÕï¶ÏÐÅÏ¢.¾Óɱ¨Í·ÓòµÄÖµÓÈÆäÖØÒª,ÒòΪËü±íʾÇëÇó¹ý³ÌµÄ·¾¶.×î´óת·¢ÊýÓòµÄʹÓÃÔÊÐí¿Í»§¶ËÏÞÖÆÇëÇóÁ´µÄ³¤¶È,Õâ¶ÔÔÚÎÞÏÞÑ»·ÖÐÕÒ³öǰÏò·¾¶µÄ´úÀí·þÎñÆ÷ÊǺÜÓÐÓõÄ.
Èç¹ûÇëÇóÓÐЧ,ÔÚʵÌåÕýÎÄÖÐÓ¦´ð°üÀ¨Õû¸öÇëÇóÐÅÏ¢,¾ßÓÐ"ÏûÏ¢/http"µÄ ÄÚÈÝ-ÐÎʽ.ÕâÖÖ·½·¨µÄÓ¦´ð½ûÖ¹»º´æ.
9.9 CONNECT£¨Á¬½Ó£©
±¾ËµÃ÷Öб£ÁôCONNECT·½·¨ÓÃÓÚÄܶ¯Ì¬½¨Á¢ÆðËíµÀµÄ´úÀí·þÎñÆ÷(ÀýSSL ËíµÀ[44]).
10.״̬´úÂ붨Òå
ÿһ¶Î״̬´úÂëÔÚÏÂÃæ±»ÃèÊö,°üÀ¨ËûËùÄÜ×ñѵķ½·¨µÄÃèÊöºÍÔÚÓ¦´ðÖÐËù±ØÐèµÄά»¤ÐÅÏ¢.
10.1 ÐÅÏ¢ 1xx
״̬´úÂëµÄÀà¼òµ¥ÃèÊöÁËÒ»¸öÁÙʱµÄ»Ø´ð,Ö»ÊÇÓÉ״̬ÐкͿÉÑ¡ÔñµÄ±¨Í·Ëù×é³É,²¢ÇÒÓÉ¿ÕÐÐËù¾ö¶¨,״̬´úÂëÀàûÓÐËùÐèµÄ±¨Í·.×Ô´ÓHTTP/1.0ûÓж¨ÒåÈκÎ1xx״̬´úÂë,ÔÚʵÑéµÄÌõ¼þÏ·þÎñÆ÷ÑϽû·¢ËÍÒ»¸ö1xxÓ¦´ð¸øHTTP/1.0¿Í»§.
¿Í»§±ØÐë×¼±¸ÔÚ½ÓÊÜͨ³£Ó¦´ð֮ǰ½ÓÊÜÒ»¸ö»òÕß¶à¸ö1xxÓ¦´ð£¬ÉõÖÁ¿Í»§²¢²»ÆÚ´ýÒ»¸ö100״̬µÄ±¨ÎÄ¡£²»±»ÆÚ´ý³öÏÖµÄ1xx״̬Ӧ´ðÒ²Ðí»á±»Óû§¶ËµÄ´úÀíËùºöÂÔ¡£
´úÀí·þÎñÆ÷±ØÐëת¼Ä1xxÓ¦´ð£¬³ý·Ç´úÀí·þÎñÆ÷ºÍ¿Í»§Ö®¼äµÄÁªÏµ±»Çжϣ¬»òÕß³ý·Ç´úÀí·þÎñÆ÷±¾ÉíÇëÇó1xxÓ¦´ðµÄ·¢Éú¡££¨¾ÙÀý˵Ã÷Èç¹ûÒ»¸ö´úÀí·þÎñÆ÷ÔÚËüת¼ÄÒ»¸öÇëÇóʱ»á¼ÓÉÏÒ»¸ö"ÆÚÍû:100-----¼ÌÐøÇøÓò",Ëü½ÓÏÂÀ´¾Í²»ÐèҪת¼Ä100»Ø´ðÓ¦´ð£©.
10£®1£®1 100 ¼ÌÐø
¿Í»§Ó¦¸ÃºÍËû×Ô¼ºµÄÇëÇó¼ÌÐø¡£ÖмäµÄÓ¦´ð±»ÓÃÓÚ¸æÖª¿Í»§ÇëÇóµÄ³õʼ²¿·ÖÒѾÊÕµ½²¢ÇÒ»¹Ã»Óб»·þÎñÆ÷Ëù¾Ü¾ø¡£¿Í»§Ó¦¸Ã¼ÌÐø·¢ËÍʣϵÄÇëÇ󣬻òÕßÈç¹ûÇëÇóÔçÒÑÍê³É£¬ÄǾͺöÂÔÇëÇó¡£·þÎñÆ÷±ØÐë·¢ËÍÒ»¸ö³õʼ»Ø´ðÓ¦´ðµ±ÇëÇóÍê³Éʱ¡£Èç¹ûÏëÖªµÀÕⲿ·Ö״̬´úÂëÓ÷¨¼°²Ù×÷´¦ÀíµÄÏêϸÌÖÂÛ£¬ÄÇôÇë¿´8.2.3Õ½ڡ£
10£®1£®2 101ת»»ÐÒé
·þÎñÆ÷Á˽ⲢÇÒÔ¸Òâ˳´Ó¿Í»§µÄÇëÇ󣬾¹ýÉý¼¶µÄ±¨Îı¨Í·ÇøÓò£¬ÎªµÄ¾ÍÊÇÒ»¸öÓ¦ÓÃÐÒéµÄ±ä»¯Ê¹Ö®Äܹ»ÔÚÁ¬½ÓÖÐʹÓ᣷þÎñÆ÷»áת»»ÐÒéʹ֮³ÉΪÄÇЩͨ¹ýÓ¦´ðÉý¼¶±¨Í·µÄÇøÓò¶¨ÒåµÄÁ¢¼´ÔÚ¾ö¶¨101Ó¦´ðµÄ¿ÕÐÐÖ®ºóµÄÐÒé¡£
ÐÒéÓ¦¸Ã½ö½öÔÚÕâÑù×öÓÐÀûµÄʱºòʵÐÐת»»¡£±ÈÈ磬ת»»³ÉΪһ¸öа汾µÄHTTPÐÒéÓëÀϰ汾Ïà±È¸ü¼ÓÓÐÀû£¬×ª»»³ÉΪһ¸öʵʱͬ²½µÄÐÒéÒ²Ðí»áÓÐÀû,µ±±»´«Ë͵Ä×ÊÔ´ÐèÒªÀûÓÃÕâÑùµÄÌØÕ÷
10£®2 ³É¹¦ 2xx
ÕâÖÖ״̬´úÂëÀà¼òÒªµÄ˵Ã÷Á˿ͻ§µÄÇëÇ󱻳ɹ¦µÄ½ÓÊÕ£¬Àí½â£¬ºÍ½ÓÊÜ
10.2.1 200 OK
ÇëÇóÒѾ³É¹¦¡£Á¬Í¬Ó¦´ðÒ»Æð·µ»ØµÄÐÅÏ¢ÊÇÒÀÀµÓÚÔÚÇëÇóÖÐʹÓ÷½·¨µÄ¡£ÀýÈ磺
GET Óë±»ÇëÇóµÄ×ÊÔ´ÏàÓ¦µÄʵÌåÔÚÓ¦´ðÖÐÒ»Æð·¢ËÍ¡£
HEAD Óë±»ÇëÇó×ÊÔ´Ïà¶ÔÓ¦µÄûÓб¨ÎÄÕýÎĵı¨Í·ÇøÓòÔÚÓ¦´ðÖз¢ËÍ¡£
POST ÃèÊö»òÕß°üº¬Ðж¯½á¹ûµÄʵÌå¡£
TRACE µ×¶Ë·þÎñÆ÷ÒѾ½ÓÊյİüº¬ÇëÇó±¨ÎĵÄʵÌå
10.2.2 201 ´´½¨
ÇëÇóÒѾÍê³Éͬʱµ¼ÖÂеÄ×ÊÔ´±»´´Ôì.д´ÔìµÄ×ÊÔ´ºÍµØÖ·±¨Í·ÇøÓò¸ø³ö×ÊÔ´µÄ×îרҵµÄURI¿ÉÒÔ±»ËæÓ¦´ðʵÌå·µ»ØµÄURI²Î¿¼.Ó¦´ðÓ¦¸Ã°üº¬Óû§»òÕßÓû§´úÀí¿ÉÒÔ´ÓÖÐÑ¡Ôñ³öµÄһϵÁÐ×î×îºÏÊÊ×ÊÔ´µÄÌØÕ÷ºÍµØÖ·.ʵÌåµÄ¸ñʽͨ¹ýÔÚÄÚÈÝÐÎʽ±¨Í·ÇøÓò¸ø³öµÄýÌåÐÎʽÀ´Ïêϸ˵Ã÷.×î³õµÄ·þÎñÆ÷±ØÐëÔÚ·µ»Ø201 ״̬´úÂëÒÔǰ´´Ôì×ÊÔ´.Èç¹ûÐж¯²»ÄÜÂíÉÏÖ´ÐÐ,·þÎñÆ÷Ó¦¸ÃÒÔ202½ÓÊÜÓ¦´ðÀ´Ó¦´ðËü.
Ò»¸ö201Ó¦´ð¿ÉÒÔÓÉÒ»¸öΪÁ˸ոմ´Ôì³öµÄÇëÇó±äÁ¿¶øÏÔʾ³öÀ´µÄµ±Ç°ÊµÌå±ê¼Ç·ûµÄÖµµÄEtagÓ¦´ð±¨Í·ÇøÓò,²Î¼û14.19½Ú¡£.
10.2.3 202 ½ÓÊÜ.
ΪÁË´¦Àí,ÇëÇó±»½ÓÊÜ,µ«ÊÇ´¦Àí²¢Ã»ÓÐÍê³É.ÇëÇó×îÖÕÓпÉÄÜ»òÕß²»¿ÉÄÜ×ñÕÕÐÐÊÂ,ÒòΪÔÚ´¦Àí¹ý³Ìʵ¼Ê·¢Éúʱ,ËüÓпÉÄܱ»²»ÔÊÐí.ûÓÐʲôÉ豸¿ÉÒÔ´ÓÈç´ËµÄÒì²½²Ù×÷ÖÐÖØÐ·¢ËÍ״̬´úÂë
202Ó¦´ðÊǹÊÒâÎÞίÍеÄ.ËüµÄÄ¿µÄ¾ÍÔÚÓÚΪÁËÆäËûһЩ¹ý³Ì,ÔÚûÓÐÒªÇóÓû§´úÀíÖ±µ½¹ý³ÌÖ´ÐнáÊø»¹¼á³ÖÁ¬½Óµ½·þÎñÆ÷µÄÇé¿öÏÂ,ÔÊÐí·þÎñÆ÷½ÓÊÜÇëÇó (Ò²ÐíÊÇÒ»ÅúÓÐËùÖ¸ÏòµÄÒ»ÌìÖ»´¦ÀíÒ»´Î).ʵÌåºÍÓ¦´ð·µ»ØÓ¦¸Ã°üÀ¨µ±Ç°µÄÇëÇó״̬,ºÍ»òÕßÒ»¸öÖ¸Ïò״̬¼àÌýÆ÷µÄÖ¸Õë»òÕß¹ØÓÚʲôʱ¼äÓû§ÆÚ´ýÇëÇóÍê³ÉµÄ¹À¼Æ.
.
10.2.4 203 ·ÇȨÍþÐÅÏ¢
ÔÚʵÌ屨ͷÖзµ»ØµÄά»¤ÐÅÏ¢²¢²»ÊÇÔ·þÎñÆ÷¿ÉÓõÄ×îÖÕµÄÉèÖÃ,µ«ÊÇËûÃÇÊÇ´ÓÒ»¸ö±¾µØµÄ»òÊǵÚÈý·½µÄ¿½±´.Ìá³öµÄÉèÖÃÒ²ÐíÊÇÔʼ°æ±¾µÄ×Ó¼¯»òÊǸ¸¼¯.¾ÙÀýÀ´Ëµ,°üÀ¨ÓйØÓÚÒ²Ðíµ¼Ö±»Ô·þÎñÆ÷ʶ±ðµÄά»¤ÐÅÏ¢µÄ¸¸¼¯µÄ±¾µØ×¢½âÐÅÏ¢.ÕâÖÖÓ¦´ð´úÂëµÄÓ÷¨²¢²»±ØÐè,¶øÇÒÖ»Óе±Ó¦´ðΪ200ʱ²ÅÊÊÓÃ.
10.2.5 204 ûÓÐÄÚÈÝ
·þÎñÆ÷Íê³ÉÇëÇó²¢²»ÐèÒª·µ»ØÊµÌåµÄÕýÎÄ,²¢ÇÒÒ²ÐíÏë·µ»ØÉý¼¶¹ýµÄά»¤ÐÅÏ¢.Ó¦´ðÒ²Ðí°üº¬ÐµĻòÕßÊÇÉý¼¶¹ýµÄµÄʵÌ屨ͷÐÎʽµÄά»¤ÐÅÏ¢,Èç¹ûÕâЩµ±Ç°µÄ¿ÉÒÔÓëÇëÇóµÄ±äÁ¿Ïà¹ØÁª.
Èç¹û¿Í»§ÊǸöÓû§´úÀí,Ëý¾Í²»Ó¦¸Ã¸Ä±äËüµÄÎļþ¹ÛµãÒÔÇø±ðÓÚÄǸöµ¼ÖÂÇëÇó±»·¢Ë͵ÄÎļþ¹Ûµã.ÕâÑùµÄÓ¦´ðÖ÷ÒªÊǹÊÒâÔÊÐíΪÁËÐж¯µÄÊäÈë·¢ÉúÔÚûÓе¼Ö¶ÔÓû§´úÀíÖ÷¶¯µÄÎļþ¹Ûµã¸Ä±äµÄÇé¿öÏÂ,¾¡¹ÜÈκÎеĻòÕßÊÇÉýÁ˼¶µÄά»¤ÐÅÏ¢Ó¦¸ÃÊÇÊÊÓ¦ÓÚÓû§´úÀíÏÖÔÚµÄÖ÷¶¯¹ÛµãµÄ.
204Ó¦´ðÑϽû°üº¬±¨ÎÄÕýÎÄ,²¢ÇÒÕâÑù×ÜÊÇÓÉÔÚ±¨Í·ÇøÓòÖ®ºóµÄµÚÒ»¸ö¿ÕÐоö¶¨µÄ.
10.2.6 205 ÖØÖÃÄÚÈÝ
·þÎñÆ÷ÒѾÍê³ÉÁËÇëÇó,Óû§´úÀíÓ¦¸ÃÖØÐÂÉèÖõ¼ÖÂÇëÇó±»·¢Ë͵ÄÎļþ¹Ûµã.ÕâÖÖÓ¦´ðÖ÷ÒªÊǹÊÒâÔÊÐíÊäÈëÐж¯Í¨¹ýÓû§ÊäÈë·¢Éú,°éËæ¶øÀ´µÄÊǶԸø³öÐÎʽµÄÇåÀíΪÁËÈÃÓû§¿ÉÒÔÇáËÉ¿ªÊ¼ÁíÒ»¸öÊäÈëÐж¯.Ó¦´ðÑϽû°üº¬ÈκÎʵÌå.
10.2.7 206 ¾Ö²¿ÄÚÈÝ
·þÎñÆ÷¶ÔÓÚ×ÊÔ´ÒѾÍê³ÉÁ˲¿·ÖGETÇëÇó.ÇëÇó±ØÐë°üº¬Ò»¸ö·¶Î§±¨Í·ÇøÓò(14.35½Ú),
Ö¸³öÁËÏëÒªµÄ·¶Î§,¶øÇÒÒ²ÓпÉÄܰüº¬Ò»¸öʹÇëÇóÌõ¼þ»¯Èç¹û-·¶Î§±¨Í·ÇøÓò
Ó¦´ð±ØÐë°üº¬ÒÔϵı¨Í·ÇøÓò:
»òÕßÊÇÒ»¸öÄÚÈÝ·¶Î§±¨Í·ÇøÓòÖ¸³ö°üº¬´ËÏÖÓ¦´ðµÄ·¶Î§,»òÕßÊǶÔÿ¸ö²¿·ÖÀ´ËµÒ»¸ö¶à²¿·ÖµÄ/×Ö½Ú·¶Î§µÄÄÚÈÝÐÎʽ¶¼°üº¬ÄÚÈÝ·¶Î§±¨Í·.Èç¹ûÄÚÈݳ¤¶È±¨Í·ÇøÓòÔÚµ±Ç°Ó¦´ðÖÐ,ÄÇôËüµÄÖµ±ØÐëºÍʵ¼ÊÔÚ±¨ÎÄÕýÎÄÖØ´«Ë͵ÄOCTETÏàÆ¥Åä.
-ÈÕÆÚ
-Etag»òÕßÄÚÈÝλÖÃ,Èç¹ûÄܹ»ÔÚÒ»¸ö200Ó¦´ðÖжÔÓÚͬһ¸öÇëÇó·¢Ëͱ¨Í·.
-ÖÕÖ¹,»º´æ¿ØÖÆ,ºÍ/»òÕ߱仯,Èç¹ûÇøÓòÖµÓë¶ÔÓÚͬһ¸ö±äÁ¿ÒÔǰ·¢Ë͵ÄÓ¦´ðÖеÄÇøÓòÖµ²»Ò»Ñù.
Èç¹û206Ó¦´ðÊÇÒ»¸öʹÓÃÇ¿»º´æÈ·ÈϵĵÄÈç¹û·¶Î§ÇëÇóµÄ½á¹û,ÄÇôӦ´ð²»Ó¦¸Ã°üº¬ÆäËûʵÌ屨ͷ. Èç¹ûÓ¦´ðÊÇÒ»¸öʹÓÃÈõ»º´æÈ·ÈϵĵÄÈç¹û·¶Î§ÇëÇóµÄ½á¹û,ÄÇôӦ´ðÑϽû°üº¬ÆäËûʵÌ屨ͷ,Õâô×öÊÇΪÁË·ÀÖ¹»º´æÊµÌåÕýÎĺÍÉý¼¶±¨Í·Ö®¼äµÄì¶ÜÐÔ.·ñÔò,Ó¦´ð±ØÐë°üº¬ËùÓжÔͬһ¸öÇëÇ󷵻صÄ200Ó¦´ðÖеÄʵÌ屨ͷ.
Èç¹ûEtag»òÕßÉϴθü¸ÄµÄ±¨Í·²»ÑϸñÆ¥Åä,»º´æÑϽû½«Ò»¸ö206ÇëÇóÓëÆäËûÒÔǰ»º´æµÄÄÚÈÝÁ¬½ÓÆðÀ´
Ò»¸ö²¢²»Ö§³Ö·¶Î§ºÍÄÚÈÝ·¶Î§µÄ»º´æÑϽû»º´æ206(²¿·Ö)Ó¦´ð.
10.3 ÖØÐ¶¨Ïò 3xx.
ÕâÖÖ״̬´úÂëÀàÖ¸³öÁËΪÁËÍê³ÉÇëÇóÓû§´úÀí¶øËùÐèÒª×öµÄ¸ü½øÒ»²½µÄÐж¯.±ØÐèµÄÐж¯ ¿ÉÒÔ±»Ã»ÓÐÓëÓû§·¢Éú½»»¥×÷ÓõÄÓû§´úÀíÖ´Ðв¢ÇÒÔÚµ±ÇÒ½öµ±ÔÚµÚ¶þ¸öÇëÇóÖÐËùÐèµÄ·½·¨ÊÇGET »òÕßÊÇHEAD.¿Í»§Ó¦¸ÃÕì²ì×îÖÕµÄÖØÐ¶¨Ïò»·Â·,ÒòΪ¶ÔÓÚÿһ¸öÖØÐ¶¨ÏòÀ´ËµÕâÑùµÄ»·Â·²úÉúÍøÂ罻ͨ.
×¢½â:Àϰ汾µÄ¹æ·¶ÍƼö×î´óÊýÁ¿Îª5µÄÖØÐ¶¨Ïò.ÄÚÈÝ¿ª·¢ÕßÓ¦¸ÃÖªµÀÒ²ÐíÓй᳹ÕâÑù¸´ÔÓÏÞÖÆµÄ¿Í»§.
10.3.1 300 ¶àÑùÑ¡Ôñ.
±»ÇëÇóµÄ×ÊÔ´·ûºÏÈκÎÒ»Ì×±íʾ·¨Ö®Ò»,ÿÖÖ×ÊÔ´ºÍËý×Ô¼ºµÄÌØ¶¨µØÖ·,²¢ÇÒΪÁËʹÓû§¿ÉÒÔÑ¡ÔñÒ»¸öÊ×Ñ¡µÄ±íʾ·¨ºÍÒÀÕÕÄǸöµØÖ·ÖØÐ¶¨Ïò, ´úÀíÇý¶¯µÄÐÉÌÐÅÏ¢¿ÉÒÔ±»Ìṩ³öÀ´.
³ý·ÇËüÊÇÒ»¸öHEADÇëÇó,Ó¦´ð¶¼Ó¦¸ÃÓаüº¬Ò»ÏµÁÐÓû§»òÕßÓû§´úÀí¿ÉÒÔ´ÓÖÐÑ¡ÔñµÄ×î×îºÏÊʵÄ×ÊÔ´ÌØÐԺ͵ØÖ·.ʵÌå¸ñʽ±»ÔÚÄÚÈÝÐÎʽ±¨Í·ÇøÓò¸ø³öµÄúÌåÐÎʽÏêϸ˵Ã÷.ÒÀ¿¿Óû§´úÀíµÄ¸ñʽºÍÈÝÁ¿,×î×îºÏÊʵÄÄǸöÑ¡ÔñÓпÉÄÜ×Ô¶¯Íê³É.²»¹ÜÔõÑù,ÕâÖֹ淶²¢Ã»Óж¨Òå×Ô¶¯Ñ¡ÔñµÄ±ê×¼.Èç¹û·þÎñÆ÷ÓÐÁËÒ»¸ö³ÂÊöµÄÊ×Ñ¡, ÄÇôËüÓ¦¸Ã°üº¬ÎªÁ˹ØÓÚÄǸö³ÂÊöµÄÌØ¶¨µÄURI;Óû§´úÀíΪÁË×Ô¶¯ÖØÐ¶¨Ïò¿ÉÒÔʹÓõØÖ·ÇøÓòÖµ.³ý·ÇÖ¸³öÁíÍâµÄÄÇôӦ´ð¾Í¿ÉÒÔ»º´æ.
10.3.2 301 ÓÀ¾ÃÒÆ¶¯
±»ÇëÇóµÄ×ÊÔ´ÒѾ·ÖÅäÁËÒ»¸öеÄÓÀ¾ÃµÄURI,ÈκζÔ×ÊÔ´µÄδÀ´²Î¿¼Ó¦¸ÃʹÓ÷µ»ØµÄURIÖеÄÒ»¸ö.Óбà¼Á¬½ÓÄÜÁ¦µÄ¿Í»§Ó¦¸Ã¶ÔÓÚ±»ÇëÇóµÄURI´Ó¿ÉÄܵķþÎñÆ÷Öзµ»ØµÄÒ»¸ö»òÕß¶à¸ö²Î¿¼ÖÐʵÏÖ×Ô¶¯Á¬½Ó²Î¿¼.ÕâÖÖÓ¦´ðÊÇ¿ÉÒÔ»º´æµÄ³ý·ÇËüÖ¸³öÆäËûµÄ.
еÄÓÀ¾ÃµÄURIÓ¦¸ÃÔÚÓ¦´ðÖеĵØÖ·ÇøÓò¸ø³ö.³ý·ÇÇëÇó·½·¨ÊÇHEAD,Ó¦´ðµÄʵÌåÓ¦¸Ã°üÀ¨Ò»¸ö¶ÎÖ¸ÏòеÄURIµÄ³¬Îı¾Îı¾×¢½â
Èç¹û301״̬±àÂëÔÚ¶ÔÓ¦ÓÚHEAD»òÕßGEI·½·¨ÖÐÊÕµ½,Óû§´úÀíÑϽû×Ô¶¯µÄÖØÐ¶¨ÏòÇëÇó³ý·ÇËü¿ÉÒÔ±»Óû§È·ÈÏ,ÒòΪÕâÑù¿ÉÄÜ»á¸Ä±äÇëÇó·¢ÉúµÄÌõ¼þ.
×¢½â:µ±ÔÚ½ÓÊܵ½Ò»¸ö301״̬±àÂëºó×Ô¶¯ÖØÐ¶¨ÏòijһÓÊÕþÇëÇó,һЩÏÖ´æµÄHTTP/1.0Óû§´úÀí½«´íÎóµÄ½«Ëü¸Ä³ÉGET·½·¨.
10.3.3 302 ´´Á¢
±»ÇëÇóµÄ×ÊÔ´ÒѾ·ÖÅäÁËÒ»¸öеÄÓÀ¾ÃµÄURI,ÈκζÔ×ÊÔ´µÄδÀ´²Î¿¼Ó¦¸ÃʹÓ÷µ»ØµÄURIÖеÄÒ»¸ö.Óбà¼Á¬½ÓÄÜÁ¦µÄ¿Í»§Ó¦¸Ã¶ÔÓÚ±»ÇëÇóµÄURI´Ó¿ÉÄܵķþÎñÆ÷Öзµ»ØµÄÒ»¸ö»òÕß¶à¸ö²Î¿¼ÖÐʵÏÖ×Ô¶¯Á¬½Ó²Î¿¼.ÕâÖÖÓ¦´ðÊÇ¿ÉÒÔ»º´æµÄ³ý·ÇËüÖ¸³öÆäËûµÄ.
¶ÔÁÙʱµÄURIÓ¦¸Ã¸øÓèµØÖ·ÇøÓò.³ý·ÇÇëÇóµÄ·½·¨ÊÇHEAD,ÏàÓ¦µÄʵÌåÓ¦¸Ã°üº¬Ò»¸ö¶ÌµÄÖ¸ÏòÒ»¸öеÄURIµÄ³¬¼¶Á¬½ÓµÄ³¬Îı¾Ìáʾ
Èç¹û302״̬´úÂëÔÚÒ»¸öÓ¦´ð·ÇGEI»òÕßHEADÇëÇóÖеĹý³ÌÖб»½ÓÊÕµ½,ÄÇôÓû§´úÀíÑϽû×Ô¶¯ÖØÐ¶¨Î»³ý·ÇËü¿ÉÒÔ±»Óû§Ö¤Êµ,ÒòΪËü¿ÉÄܱ仯ËüµÄÇëÇóʵÏÖµÄÌõ¼þ.
×¢½â: RFC 1945 ºÍ RFC 2068 Ïêϸ˵Ã÷Á˿ͻ§²»±»ÔÊÐí¸Ä±äÔÚÖØÐ¶¨Î»ÇëÇóʹÓõķ½·¨.µ«ÊÇ´ó¶àÊý´æÔÚµÄÓû§´úÀí½«302ÊÓΪһ¸ö303Ó¦´ð, ²»¹Ü×î³õµÄÇëÇó·½·¨¶øÔÚλÖÃÇøÓòֵʵÏÖÒ»¸öGET·½·¨.״̬´úÂë303ºÍ307±»¼ÓÔÚ·þÎñÆ÷ÉÏÒÔÏ£ÍûËüÄܹ»Çå³þ¿Í»§ËùÆÚ´ýµÄÄÇÖÖ·´×÷ÓÃ.
10.3.4 303 ¹Û²ì±ðµÄ²¿·Ö
¶ÔÇëÇóµÄÓ¦´ð¿ÉÒÔÔÚ²»Í¬µÄURIÖÐÕÒµ½,²¢ÇÒÓ¦´ðÓ¦¸ÃÔÚ¶Ô×ÊÔ´µÄGET·½·¨ÖÐÖØÐµõ½.ÕâÖÖ·½·¨´æÔÚÖ÷ÒªÊÇΪÁËÔÊÐíÓÊÕþ»îÐÔµÄÊä³ö½Å±¾ÖØÐ¶¨ÏòÓû§´úÀíÓÚÒ»¸öÑ¡ÔñµÄ×ÊÔ´.еÄURI²»ÊÇÒ»¸ö×î³õÇëÇó×ÊÔ´µÄÌæ´ú²Î¿¼.303Ó¦´ðÑϽû»º´æ,µ«ÊǶÔÓÚµÚ¶þ¸öÇëÇó(ÖØÐ¶¨Ïò)¿ÉÒÔ»º´æ.
²»Í¬µÄURIÓ¦¸ÃÔÚÏàÓ¦µÄλÖÃÇøÓò¸ø³ö³ý·ÇÇëÇóµÄ·½·¨ÊÇHEAD,ÏàÓ¦µÄʵÌåÓ¦¸Ã°üº¬Ò»¸ö¶ÌµÄÖ¸ÏòÒ»¸öеÄURIµÄ³¬¼¶Á¬½ÓµÄ³¬Îı¾Ìáʾ.
×¢½â: Ðí¶àHTTP/1.1ÒÔǰµÄÓû§²»Àí½â303״̬.µ±¿Í»§Ö®¼äµÄÐͬ¹¤×÷ÄÜÁ¦±»¹Ø×¢Ê±,302״̬´úÂëÒ²Ðí»á×÷ÎªÌæ´ú¶øÊ¹ÓÃ,ÒòΪ´ó¶àÊýÓû§´úÀí¾ÍÏòÕâÀïÃèÊöµÄ303ÄÇÑù·´×÷ÓÃÓÚ302Ó¦´ð.
10.3.5 304 Ö»¶Á
Èç¹û¿Í»§Ìá³öÒ»¸öÌõ¼þµÄGETÇëÇó²¢ÇÒ·ÃÎÊÒ²ÒѾÔÊÐí,µ«ÊÇÎĵµ²¢Ã»ÓÐÐÞ¸Ä,·þÎñÆ÷Ó¦¸ÃÓ¦´ðÕâЩ״̬±àÂë.304Ó¦´ðÑϽû°üº¬±¨ÎÄÕýÎÄ,²¢ÇÒ×ÜÊÇÓɱ¨Í·ÇøÓòÖ®ºóµÄµÚÒ»¸ö¿ÕÐоö¶¨µÄ.
Ó¦´ð±ØÐë°üÀ¨ÒÔϱ¨Í·ÇøÓò:
-ÈÕÆÚ,³ý·ÇÊý¾Ý¿º³¤ÊÇ14.18.1²¿·Ö±ØÐëµÄ.
Èç¹ûÒ»¸öÎÞʱÖÓÔ·þÎñÆ÷×ñÊØÕâЩ¹æÔò,²¢ÇÒ´úÀí·þÎñÆ÷ºÍ¿Í»§½«×Ô¼ºµÄÈÕÆÚ¼ÓÈëÈκγɱê×¼µÄÓ¦´ðÖÐÈ¥,»º´æ»á¹¤×÷Õý³£.
-Etag»òÕßÄÚÈÝλÖÃ,Èç¹ûÄܹ»ÔÚÒ»¸ö200Ó¦´ðÖжÔÓÚͬһ¸öÇëÇó·¢Ëͱ¨Í·.
-ÖÕÖ¹,»º´æ¿ØÖÆ,ºÍ/»òÕ߱仯,Èç¹ûÇøÓòÖµÓë¶ÔÓÚͬһ¸ö±äÁ¿ÒÔǰ·¢Ë͵ÄÓ¦´ðÖе
ÍÆ¼öÎÄÕÂ
ÈȵãÎÄÕÂ
- SubversionÅäÖð²×°½Ì³Ì£¨Ò»£©
- ±à³Ì»ù´¡£ºÊ²Ã´ÊǼÆËã»úÓïÑÔ
- [¶àͼ]ÖÐÎķִʼ¼ÊõʵÑé:°Ù¶È¡¢ÑÅ»¢¡¢¹È¸è´ó±ÈÆ´
- ÖÐÎķִʵļòҪʵÏÖ
- ±à³Ì×¢ÒâÊÂÏî
- Subversion 1.5·¢²¼ËµÃ÷
- subversion°²×°ÓëÅäÖñ¸Íü¼
- SubversionʹÓÃÊÖ¼Ç
- ÖÐÎķִʼ¼ÊõÏê½â
- Óà Apache ºÍ Subversion ´î½¨°²È«µÄ°æ±¾¿ØÖÆ»·¾³
- ³¬Îı¾´«ÊäÐÒ飨HTTP Protocol£©
- 64bit ±à³Ì×¢ÒâÊÂÏî
Ïà¹ØÎÄÕÂ
- HTTP 1.1ÓëHTTP 1.0µÄ±È½Ï
- ³¬Îı¾»º´æÐÒé(HTCP/0.0)(Hyper Text Caching Protoc..
- Internet ½»»»½»Ì¸£º·þÎñÆ÷ÐÒé(RFC2813¡ª¡ªInternet ..
- InternetÑÓ³Ù½»Ì¸£ºÍ¨µÀ¹ÜÀí£¨RFC2811¡ª Internet rel..
- ÍøÂçÐÂÎÅ×é´«ÊäÐÒé (nntp Protocol)
- ÉîÈëÀí½â ASP.NET Óë¿Í»§¶Ë»º´æ (Part 1 - HTTP ÐÒé)
- µÚÒ»¸ö Protocol Buffers С³ÌÐò£ºµç»°±¾
- Protocol Buffers ¼ò½é
- ʲôÊÇProtocol Buffers£¿
- GoogleÍÆ³öProtocol Buffers:Õù¶áÍøÂçʱ´úÊý¾Ý¸ñʽ
- ÓÃPHPʵÏÖHTTP 301ÓÀ¾ÃÖØ¶¨Ïò
°Ù¶ÈËÑË÷
³¬Îı¾´«ÊäÐÒ飨HTTP Protocol£©
- ÔÄÀÀ´ÎÊý:
- ÎÄÕÂÀ´Ô´: http://blog.csdn.net/PrideRock/
- ÔÎÄ×÷Õß:
- ÕûÀíÈÕÆÚ: 2008-07-13
- ·¢±íÆÀÂÛ
