HTTP/1.1µÄ½¹µãÊÂÇé·½·¨ÊÇÇëÇó-ÏìÓ¦£¨Request-Response£©Ä£Ê½¡£Ã¿Ò»´Î¿Í»§¶ËÓë·þÎñÆ÷µÄ½»»¥£¬¶¼Ê¼ÓÚÒ»´ÎÇëÇó£¬ÖÕÓÚÒ»´ÎÏìÓ¦¡£
HTTPÇëÇó£¨HTTPRequest£©£º¿Í»§¶ËÏò·þÎñÆ÷·¢Ë͵ÄÖ¸Á°üÀ¨Á˿ͻ§¶ËÏëÒª×öʲôÒÔ¼°ÐèҪʲôÐÅÏ¢¡£Ò»¸öµä·¶µÄHTTPÇëÇó°üÀ¨ÒÔϼ¸¸öÒªº¦²¿·Ö£º
ÇëÇóÐУ¨RequestLine£©£ºÕâÊÇÇëÇóµÄµÚÒ»ÐУ¬°üÀ¨ÁËÇëÇóÒªÁì¡¢ÇëÇóURI£¨Í³Ò»×ÊÔ´±êʶ·û£©ºÍHTTPÐÒé°æ±¾¡£ÇëÇóÒªÁ죨HTTPMethods£©£ºÕâÊÇHTTPÇëÇóµÄ½¹µã£¬¸æËß·þÎñÆ÷Ï£ÍûÖ´ÐеIJÙ×÷¡£×î³£¼ûµÄÇëÇóÒªÁì°üÀ¨£ºGET£ºÓÃÓÚ´Ó·þÎñÆ÷»ñÈ¡Êý¾Ý¡£
ÀýÈ磬µ±Äã»á¼ûÒ»¸öÍøÒ³Ê±£¬ä¯ÀÀÆ÷¾Í·¢ËÍÒ»¸öGETÇëÇóÀ´»ñÈ¡HTMLÎļþ¡£POST£ºÓÃÓÚÏò·þÎñÆ÷Ìá½»Êý¾Ý£¬Í¨³£ÓÃÓÚ½¨ÉèÐÂ×ÊÔ´»ò¸üÐÂÏÖÓÐ×ÊÔ´¡£ÀýÈ磬ÄãÌá½»Ò»¸ö±íµ¥Ê±£¬¾Í»áʹÓÃPOSTÇëÇó¡£PUT£ºÓÃÓÚ¸üзþÎñÆ÷ÉϵÄÏÖÓÐ×ÊÔ´£¬ÈôÊÇ×ÊÔ´²»±£´æ£¬Ôò¿ÉÄܽ¨Éè¡£
X-Forwarded-For£ºËäÈ»²»ÊÇHTTP/1.1±ê×¼½ç˵µÄÍ·²¿£¬µ«±»ÆÕ±éʹÓã¬ÓÃÓڼͼÔʼ¿Í»§¶ËµÄIPµØÖ·£¬µ±ÇëÇó¾Óɶà¸ö´úÀí·þÎñÆ÷ʱÓÈΪÖ÷Òª¡£Content-TypeºÍContent-Length£ºÓëÇëÇóÕýÎÄÅäºÏʹÓã¬Ö¸Ã÷ÎúÕýÎĵÄýÌåÀàÐͺ;Þϸ£¬·þÎñÆ÷ÐèҪƾ֤ÕâЩÐÅÏ¢À´×¼È·ÆÊÎöºÍ´¦Öóͷ£ÎüÊÕµ½µÄÊý¾Ý¡£
ÏìӦͷ²¿£¨ResponseHeaders£©µÄ¾«ÃÏìӦͷ²¿Í¬ÑùÐÅÏ¢Á¿ÖØ´ó£¬Ó°Ïì×ſͻ§¶ËÈçÄÇÀïÖ÷þÎñÆ÷·µ»ØµÄÊý¾Ý¡£
Content-TypeºÍContent-Length£ºÓëÇëÇóÖеÄ×÷ÓÃÀàËÆ£¬¼û¸æ¿Í»§¶ËÏìÓ¦ÌåµÄÀàÐͺ;Þϸ¡£Cache-Control£ºÕâÊÇÒ»¸öǿʢµÄ»º´æ¿ØÖÆÖ¸Á¿ÉÒÔÖ¸¶¨Èçpublic£¨ÔÊÐíËùÓлº´æ?£©¡¢private£¨Ö»ÔÊÐí¿Í»§¶ËÍâµØ»º´æ£©¡¢no-cache£¨ÐèÒª¾ÙÐÐÑéÖ¤²Å»ª»º´æ£©¡¢no-store£¨Õ¥È¡»º´æ£©¡¢max-age£¨»º´æµÄ×î´óÉúÑÄ?ʱ¼ä£©µÈ¡£
Expires£ºÌṩÁË»º´æµÄ¾ø¶ÔÓâÆÚʱ¼ä£¬ÓëCache-ControlÖеÄmax-ageÅäºÏʹÓ㬵«Cache-Controlͨ³£¾ßÓиü¸ßµÄÓÅÏȼ¶¡£ETag£ºÊµÌåµÄ?Ψһ±êʶ·û£¬ÓÃÓÚʵÏÖETag»º´æÑéÖ¤¡£·þÎñÆ÷¿ÉÒÔÌìÉúÒ»¸öETagÖµ£¬¿Í»§¶ËÔÚºóÐøÇëÇóÖÐͨ¹ýIf-None-MatchÍ·²¿·¢Ë͸ÃÖµ£¬·þÎñÆ÷ÒÔ´ËÅжÏ×ÊÔ´ÊÇ·ñ±¬·¢×ª±ä¡£
Ö»¹ÜHTTP/1.1´øÀ´Á˳¤ÆÚÅþÁ¬ºÍ¹ÜµÀ»¯µÈÖ÷ҪˢУ¬µ«Ëæ×Å»¥ÁªÍøÓ¦ÓõÄÖØ´ó»¯ºÍÓû§¶ÔÏìÓ¦ËÙÂÊÒªÇóµÄÌá¸ß£¬Æä¾ÖÏÞÐÔÒ²Öð½¥Õ¹ÏÖ¡£
¶ÓÍ·ÛÕ±Õ£¨Head-of-LineBlocking,HOLBlocking£©£ºËäÈ»¹ÜµÀ»¯Ö¼ÔÚ½â¾ö´ËÎÊÌ⣬µ«ÔÚʵ¼ùÖУ¬TCPÐÒé×Ô¼º¹ÌÓеĶÓÍ·ÛÕ±ÕÎÊÌâÒÀÈ»±£´æ¡£ÈôÊÇÒ»¸öTCPÅþÁ¬ÖеÄij¸öÊý¾Ý°üɥʧ£¬Õû¸öÅþÁ¬¶¼»áÔÝÍ££¬Ö±µ½¸ÃÊý¾Ý°ü±»ÖØÐ´«Êä¡£
×ÝÈ»ºóÐøµÄÊý¾Ý°üÒѾµÖ´ï£¬Ò²±ØÐèÆÚ´ýÇ°ÃæµÄÊý¾Ý°ü»Ö¸´Õý³£²Å»ª¼ÌÐø´«Ê䣬ÕâÑÏÖØÓ°ÏìÁËÐÔÄÜ¡£ÔÚHTTP/1.1µÄ¹ÜµÀ»¯ÖУ¬ÈôÊÇÒ»¸öÇëÇóµÄ´¦Öóͷ£ºÄʱ½Ï³¤£¬ÄÇôºóÐøµÄÇëÇó×ÝÈ»ÒѾ׼±¸ºÃ£¬Ò²±ØÐèÆÚ´ýÇ°ÃæµÄÇëÇóÍê³É²Å»ª±»?·þÎñÆ÷ÏìÓ¦£¬´Ó¶øÐγɶÓÍ·ÛÕ±Õ¡£
ÅþÁ¬ÊýÄ¿Óë×ÊÔ´ÏûºÄ£ºËäÈ»³¤ÆÚÅþÁ¬ïÔÌÁËTCPÎÕÊÖ´ÎÊý£¬µ«Ôڸ߲¢·¢³¡¾°Ï£¬´ó×ڵIJ¢·¢TCPÅþÁ¬ÈÔÈ»»áÏûºÄ·þÎñÆ÷´ó×ÚµÄÄÚ´æºÍCPU×ÊÔ´£¬ÏÞÖÆÁË·þÎñÆ÷µÄ´¦Öóͷ£ÄÜÁ¦¡£
¶þ½øÖÆÓëÎı¾ÐÒéµÄ»ìÏý£ºHTTP/1.1ÊÇ»ùÓÚÎı¾µÄÐÒ飬Æä±¨ÎÄÒ×ÓÚÔĶÁºÍµ÷ÊÔ£¬µ«Ò²±£´æ´«ÊäЧÂʲ»Èç¶þ½øÖÆÐÒéµÄÎÊÌâ¡£
HTTP/1.1×ñÕÕ¾µäµÄ¿Í»§¶Ë-·þÎñÆ÷£¨Client-Server£©Ä£×Ó¡£ÔÚÕâ¸öÄ£×ÓÖУ¬¿Í»§¶Ë£¨Í¨³£ÊÇÎÒÃǵÄä¯ÀÀÆ÷£©ÌᳫÇëÇ󣬷þÎñÆ÷£¨ÍйÜÍøÒ³¡¢Ó¦ÓóÌÐòµÄÅÌËã»ú£©ÔòÏìÓ¦ÕâЩÇëÇó¡£ÕâÖÖÇåÎúµÄ·Ö¹¤Ê¹µÃ»¥ÁªÍøµÄ¹¹½¨ºÍά»¤±äµÃ¸ßЧ¶øÓÐÐò¡£
¿Í»§¶Ë£¨Client£©£º¿ÉÒÔÊÇÄãµçÄÔÉϵÄÍøÒ³ä¯ÀÀÆ÷¡¢ÊÖ»úÉϵÄAPP£¬ÉõÖÁÊÇÎïÁªÍø×°±¸¡£ËüµÄÖ÷ÒªÖ°ÔðÊÇÏò·þÎñÆ÷·¢ËÍHTTPÇëÇ󣬲¢ÎüÊÕ¡¢ÆÊÎö·þÎñÆ÷·µ»ØµÄÏìÓ¦¡£·þÎñÆ÷£¨Server£©£º¿ÉÒÔÊÇWeb·þÎñÆ÷£¨ÈçApache¡¢Nginx£©¡¢Ó¦Ó÷þÎñÆ÷£¬»òÕßÊý¾Ý¿â·þÎñÆ÷¡£
ËüÈÏÕæÎüÊÕÀ´×Ô¿Í»§¶ËµÄÇëÇ󣬾ÙÐд¦Öóͷ££¨Èç²éÕÒÎļþ¡¢Ö´ÐдúÂë¡¢ÅÌÎÊÊý¾Ý£©£¬È»ºó½«´¦Öóͷ£Ð§¹û·â×°³ÉHTTPÏìÓ¦·¢Ëͻؿͻ§¶Ë¡£
Cookie£º°üÀ¨·þÎñÆ÷֮ǰ·¢Ë͸ø¿Í»§¶ËµÄcookieÐÅÏ¢¡£Referer£ºÖ¸Ê¾ÁËÌᳫÇëÇóµÄËÈËÒ³ÃæµÄURL¡£ÇëÇóÕýÎÄ£¨RequestBody£©£ºÔÚijЩÇëÇóÒªÁ죨ÈçPOST£©ÖУ¬ÓÃÓÚЯ´øÒª·¢Ë͸ø·þÎñÆ÷µÄÊý¾Ý¡£
HTTPÏìÓ¦£¨HTTPResponse£©£º·þÎñÆ÷¶Ô¿Í»§¶ËÇëÇóµÄ»ØÓ¦£¬°üÀ¨ÁËÇëÇóµÄ´¦Öóͷ£Ð§¹û¡£Ò»¸öµä·¶µÄHTTPÏìÓ¦Ò²°üÀ¨¼¸¸öÒªº¦²¿·Ö£º
״̬ÐУ¨StatusLine£©£ºÕâÊÇÏìÓ¦µÄµÚÒ»ÐУ¬°üÀ¨ÁËHTTPÐÒé°æ±¾¡¢×´Ì¬ÂëºÍ״̬ÐÂÎÅ¡£×´Ì¬Â루StatusCodes£©£ºÕâÊÇÒ»¸öÈýλÊýµÄÊý×Ö£¬ÓÃÓÚָʾÇëÇóµÄ´¦Öóͷ£Ð§¹û¡£ËüÃDZ»·ÖΪÎå´óÀࣺ1xxInformational£ºÇëÇóÒÑÎüÊÕ£¬¼ÌÐø´¦Öóͷ£¡£
2xxSuccess£ºÇëÇóÒÑÀÖ³ÉÊÕµ½¡¢Ã÷È·ºÍ½ÓÊÜ¡£200OK£º×î³£?¼ûµÄÀÖ³É״̬Â룬ÌåÏÖÇëÇóÀֳɡ£201Created£ºÌåÏÖÇëÇóÀֳɣ¬²¢ÇÒ½¨ÉèÁËÒ»¸öеÄ×ÊÔ´¡£204NoContent£ºÌåÏÖÇëÇóÀֳɣ¬µ«·þÎñÆ÷ûÓзµ»ØÈκÎÄÚÈÝ¡£3xxRedirection£ºÐèÒª¿Í»§¶Ë½ÓÄɽøÒ»²½µÄ²Ù×÷²Å»ªÍê³ÉÇëÇó¡£
Ïà½ÏÓÚÆäǰÉíHTTP/1.0£¬HTTP/1.1ÔÚÐÔÄܺÍЧÂÊÉϾÙÐÐÁËÏÔÖøµÄˢУ¬ÆäÖÐ×î½¹µãµÄÁ½¸öÌØÕ÷¾ÍÊdz¤ÆÚÅþÁ¬£¨PersistentConnections£©ºÍ¹ÜµÀ»¯£¨Pipelining£©¡£
³Ö?¾ÃÅþÁ¬£¨PersistentConnections£©£ºÔÚHTTP/1.0ÖУ¬ä¯ÀÀÆ÷ͨ³£»áΪÿ¸öÇëÇó½¨ÉèÒ»¸öеÄTCPÅþÁ¬£¬²¢ÔÚÇëÇóÍê³Éºó¹Ø±Õ¸ÃÅþÁ¬¡£ÕâÖÖ·½·¨´øÀ´ÁË´ó×ÚµÄÅþÁ¬½¨ÉèºÍ¹Ø±Õ¿ªÏú£¬´ó´ó½µµÍÁËͨѶЧÂÊ¡£HTTP/1.1ÒýÈëÁËKeep-Alive»úÖÆ£¬ÔÊÐí¿Í»§¶ËºÍ·þÎñÆ÷ÔÚÍê³ÉÒ»´ÎÇëÇó-ÏìÓ¦ºó£¬¼á³ÖTCPÅþÁ¬µÄ·¿ª×´Ì¬£¬ÒÔ±ãºóÐøµÄÇëÇóÄܹ»ÖØÓÃÕâ¸öÅþÁ¬¡£
ÕâÏÔÖøïÔÌÁËTCPÎÕÊֵĿªÏú£¬ÌáÉýÁËÍøÒ³µÄ¼ÓÔØËÙÂÊ£¬ÓÈÆäÊÇÔÚ¼ÓÔØ°üÀ¨´ó×ÚС×ÊÔ´µÄ?ÍøÒ³Ê±¡£
¹ÜµÀ»¯£¨Pipelining£©£ºÔÚ³¤ÆÚÅþÁ¬µÄ»ù´¡ÉÏ£¬HTTP/1.1½øÒ»²½ÒýÈëÁ˹ܵÀ»¯ÊÖÒÕ¡£ËüÔÊÐí¿Í»§¶ËÒ»´ÎÐÔ·¢ËͶà¸öHTTPÇëÇ󣬶øÎÞÐèÆÚ´ýǰһ¸öÇëÇóµÄÏìÓ¦¡£·þÎñÆ÷Ôòƾ֤ÎüÊÕµ½µÄÇëÇó˳Ðò£¨ËäÈ»ÏìÓ¦·×Æç¶¨°´Ë³Ðò·µ»Ø£©£¬ÒÀ´Î´¦Öóͷ£²¢·¢ËÍÏìÓ¦¡£Õâ×èÖ¹ÁË¡°¶ÓÍ·ÛÕ±Õ¡±£¨Head-of-LineBlocking£©µÄÎÊÌ⣬ÀíÂÛÉÏ¿ÉÒÔÏÔÖøÌáÉýÐÔÄÜ¡£
HTTP/1.1ÐÒ飬×÷Ϊ»¥ÁªÍøÍ¨Ñ¶µÄÒ»×ùÖ÷ÒªÀï³Ì?±®£¬ÒÔÆäÇåÎúµÄ¿Í»§¶Ë-·þÎñÆ÷Ä£×Ó¡¢ÎÞаµÄÇëÇó-ÏìÓ¦»úÖÆ£¬ÒÔ¼°³Ö?¾ÃÅþÁ¬ºÍ¹ÜµÀ»¯µÈÒªº¦ÌØÕ÷£¬¹¹½¨ÁËÖ§³ÖÎÒÃÇÒ»Ñùƽ³£WebÌåÑéµÄͨѶ¹Ç¼Ü¡£Ëü²»µ«ÊÇÅþÁ¬Óû§ÓëÐÅÏ¢µÄÇÅÁº£¬¸üÊÇÍÆ¶¯WebÊÖÒÕÒ»Ö±ÏòËÞÊÀ³¤µÄÖ÷ÒªÁ¦Á¿¡£
ͨ¹ý¶ÔHTTP/1.1µÄÉîÈëÃ÷È·£¬ÎÒÃDz»µ«Äܹ»¸üºÃµØÕÆÎÕWebͨѶµÄʵÖÊ£¬Ò²ÄÜΪδÀ´µÄ?ÍøÂçÊÖÒÕÉú³¤´ò?ϼáʵµÄ»ù´¡¡£¼´±ãÔÚHTTP/2ºÍHTTP/3ÈÕÒæÆÕ¼°µÄ½ñÌ죬HTTP/1.1µÄ¼ÛÖµÒÀÈ»½ûÖ¹ºöÊÓ¡£Ëü´ú±í×Å»¥ÁªÍøÍ¨Ñ¶µÄÒ»´ÎÖØ´ó±¼ÌÚ£¬ÊÇÎÒÃÇͨÍù¸ü¸ßЧ¡¢¸üÖÇÄÜÍøÂçʱ´úµÄÒ»¼¶õè¾¶¡£
Ö»¹ÜHTTP/2ºÍHTTP/3ÒÑÖð½¥ÆÕ¼°£¬µ«HTTP/1.1²¢Î´±»ÍêÈ«ïÔÌ£¬ÆäÖ÷ÒªÐÔÒÀÈ»ÌåÏÖÔÚ£º
ÆÕ±éµÄ¼æÈÝÐÔ£º¾ø´ó´ó¶¼ÏÖÓÐϵͳ¡¢×°±¸ºÍÍøÂç»ù´¡ÉèÊ©¶¼¶ÔHTTP/1.1ÓÐÓÅÒìµÄÖ§³Ö¡£¹ØÓÚһЩÀϾÉϵͳ»ò×ÊÔ´ÊÜÏÞµÄ×°±¸£¬HTTP/1.1ÒÀÈ»ÊÇÊ×Ñ¡¡£µ÷ÊԵı㵱ÐÔ£ºHTTP/1.1µÄÎı¾ÃûÌÃʹµÃ?ÔÚ¿ª·¢ºÍµ÷ÊÔÀú³ÌÖУ¬Ê¹ÓÃ×¥°ü¹¤¾ß£¨ÈçWireshark£©Äܹ»Ö±¹ÛµØÉó²éÇëÇóºÍÏìÓ¦ÄÚÈÝ£¬Àû±ãÎÊÌâµÄ¶¨Î»¡£
ѧϰ»ù´¡£ºÃ÷È·HTTP/1.1ÊÇÉîÈëÃ÷È·HTTP/2ºÍHTTP/3µÄ»ù´¡¡£ÕÆÎÕÁËHTTP/1.1µÄ?ÔÀí£¬¾ÍÄܸüºÃµØÃ÷ȷа汾ÐÒéµÄË¢ÐÂÖ®´¦?ºÍÉè¼ÆË¼Ð÷¡£Ìض¨µÄÓ¦Óó¡¾°£ºÔÚijЩ¶ÔʵʱÐÔÒªÇ󲻸ߣ¬»òÕß¶Ô·þÎñÆ÷×ÊÔ´ÒªÇ󼫵͵ij¡¾°Ï£¬HTTP/1.1µÄ¾«Á·ÐÔ·´¶ø¿ÉÄÜÊÇÒ»ÖÖÓÅÊÆ¡£
ÔÚÏÖʵӦÓÃÖУ¬ÓÉÓÚ·þÎñÆ÷ºÍ¿Í»§¶ËʵÏÖÒÔ¼°ÍøÂç״̬µÄ²î±ð£¬¹ÜµÀ»¯²¢·Ç×ÜÄÜ´øÀ´Ô¤ÆÚµÄÐÔÄÜÌáÉý£¬ÓÐʱÉõÖÁ»áÒýÈëеÄÎÊÌ⣬ÕâÒ²ÊÇØÊºóHTTP/2½ÓÄɶà·¸´Óã¨Multiplexing£©À´½â¾ö¶ÓÍ·ÛÕ±ÕµÄÔµ¹ÊÔÓÉÖ®Ò»¡£
HTTP/1.1µÄÕâЩˢУ¬Ê¹µÃ»¥ÁªÍøµÄͨѶԽ·¢¸ßЧ¡¢Îȹ̣¬Ò²ÎªØÊºóµÄWebÊÖÒÕÉú³¤µÓÚ¨Á˼áʵµÄ»ù´¡¡£Ã÷È·ÕâЩ»ùÀ´Ô´Àí£¬ÊÇÎÒÃǽøÒ»²½Ì½Ë÷»¥ÁªÍøÉñÃØµÄµÚÒ»²½¡£
HTTP/1.1µÄÉî¶ÈÆÊÎö£º¹¹½¨¸ßЧWebͨѶµÄÒªº¦
ÔÚÉÏÒ»²¿·Ö£¬ÎÒÃÇÒѾ¶ÔHTTP/1.1µÄ»ù±¾¿´·¨¡¢Ä£×Ó¡¢ÇëÇó-ÏìӦģʽÒÔ¼°³¤ÆÚÅþÁ¬ºÍ¹ÜµÀ»¯µÈ½¹µãÌØÕ÷ÓÐÁËÆðÔ´µÄÊìϤ¡£ÏÖÔÚ£¬ÈÃÎÒÃǼÌÐøÉîÈ룬´Ó¸üϸÄåµÄ½Ç¶ÈÆÊÎöHTTP/1.1µÄÊÂÇé»úÖÆ£¬ÒÔ¼°ËüÔÚÏÖ´úWeb¿ª·¢ÖеÄÒâÒåÓëÌôÕ½¡£
301MovedPermanently£ºÌåÏÖ×ÊÔ´Òѱ»ÓÀÊÀÒÆ¶¯µ½ÐµÄURL¡£302Found£¨»òMovedTemporarily£©£ºÌåÏÖ×ÊÔ´ÔÝÊ±ÒÆ¶¯µ½ÐµÄURL¡£304NotModified£ºÓÃÓÚ»º´æ?£¬ÌåÏÖ¿Í»§¶ËµÄ×ÊԴûÓÐת±ä£¬ÎÞÐèÖØÐÂÏÂÔØ¡£
4xxClientError£º¿Í»§¶Ë¹ýʧ£¬ÇëÇó°üÀ¨²»×¼È·µÄÓï·¨»òÎÞ·¨Öª×ã¡£400BadRequest£ºÇëÇóÎÞЧ¡£401Unauthorized£ºÇëÇóÐèÒªÓû§ÈÏÖ¤¡£403Forbidden£º·þÎñÆ÷¾Ü¾øÖ´ÐÐÇëÇó£¬×ÝÈ»ÈÏÖ¤Àֳɡ£404NotFound£ºÇëÇóµÄ×ÊÔ´²»±£´æ¡£
5xxServerError£º·þÎñÆ÷¹ýʧ£¬·þÎñÆ÷ÔÚ´¦Öóͷ£ÇëÇóʱ±¬·¢¹ýʧ¡£500InternalServerError£º·þÎñÆ÷ÄÚ²¿¹ýʧ¡£503ServiceUnavailable£º·þÎñÆ÷ÔÝʱÎÞ·¨´¦Öóͷ£ÇëÇó¡£×´Ì¬ÐÂÎÅ£¨ReasonPhrase£©£º¶Ô״̬ÂëµÄ¼òËæ±Ê×ÖÐÎò£¬Èç"OK"¡¢"NotFound"¡£
Last-Modified£º×ÊÔ´µÄ×îºóÐÞËûÈÕÆÚ£¬ÓÃÓÚʵÏÖIf-Modified-Since»º´æÑéÖ¤¡£Set-Cookie£ºÓÃÓÚÔÚÏìÓ¦ÖÐÉèÖÃCookie£¬¿Í»§¶Ë»á½«ÆäÉúÑÄÔÚÍâµØ£¬²¢ÔÚºóÐøÇëÇóÖз¢ËͻطþÎñÆ÷£¬ÊµÏֻỰ¹ÜÀí¡¢Óû§¸ú×ٵȹ¦Ð§¡£Location£ºµ±·þÎñÆ÷·µ»ØÖض¨Ïò״̬Â루Èç301¡¢302£©Ê±£¬LocationÍ·²¿»á°üÀ¨ÐµÄURL£¬¿Í»§¶Ë»áƾ֤´ËURLÌᳫеÄÇëÇó¡£
Server£ºÖ¸Ê¾·þÎñÆ÷ʹÓõÄÈí¼þ£¬ÓÐʱҲ¿ÉÄܰüÀ¨°æ?±¾ÐÅÏ¢¡£
DELETE£ºÓÃÓÚɾ³ý·þÎñÆ÷ÉϵÄÖ¸¶¨×ÊÔ´¡£HEAD£ºÀàËÆÓÚGET£¬µ«Ö»·µ»ØÏìÓ¦µÄÍ·²¿ÐÅÏ¢£¬²»·µ»ØÏìÓ¦Ì壬³£ÓÃÓÚ¼ì²é×ÊÔ´µÄÔªÊý¾Ý¡£OPTIONS£ºÓÃÓÚÅÌÎÊÄ¿µÄ×ÊÔ´µÄͨѶѡÏî¡£CONNECT£ºÓÃÓÚÓë´úÀí·þÎñÆ÷½¨ÉèËíµÀ£¬Í¨³£?ÓÃÓÚSSL/TLS¼ÓÃÜÅþÁ¬¡£
TRACE£ºÓÃÓÚ»ØÏÔ·þÎñÆ÷ÊÕµ½µÄÇëÇó£¬Ö÷ÒªÓÃÓÚÕï¶Ï¡£ÇëÇóURI£¨RequestURI£©£ºÖ¸Ã÷Îú¿Í»§¶ËÏëÒª»á¼ûµÄ·þÎñÆ÷ÉϵÄ×ÊÔ´£¬¿ÉÒÔÊÇÏà¶Ô·¾¶»ò¾ø¶Ô·¾¶¡£HTTPÐÒé°æ±¾£¨HTTPVersion£©£ºÔÚ´Ë?Ç龳ϣ¬¾ÍÊÇHTTP/1.1¡£ÇëÇóÍ·²¿£¨RequestHeaders£©£ºÌṩ¹ØÓÚÇëÇóµÄÌØÊâÐÅÏ¢£¬Èç¿Í»§¶ËÀàÐÍ¡¢½ÓÊܵÄÄÚÈÝÀàÐÍ¡¢»º´æÖ¸ÁîµÈ¡£
³£¼ûµÄ?Í·²¿×Ö¶ÎÓУºHost£ºÖ¸¶¨ÁË·þÎñÆ÷µÄÓòÃû£¬¹ØÓÚÐéÄâÖ÷»úºÜÊÇÖ÷Òª¡£User-Agent£ºÅú×¢¿Í»§¶ËµÄÉí·Ý£¬Èçä¯ÀÀÆ÷ÀàÐͺͰ汾¡£Accept£º¸æËß·þÎñÆ÷¿Í»§¶ËÄܹ»½ÓÊÜÄÄЩýÌåÀàÐÍ£¨Èçtext/html¡¢application/json£©¡£
HTTPÍ·²¿ÐÅÏ¢£¨Headers£©ÊÇHTTP/1.1ÐÒéÖÐÖÁ¹ØÖ÷ÒªµÄ×é³É²¿·Ö£¬ËüÃÇÓÌÈçͨѶ˫·½×ª´ïµÄ¡°ÏßË÷¡±ºÍ¡°Ö¸Á£¬°üÀ¨Á˸»ºñµÄÐÅÏ¢£¬Ö¸µ¼×ÅÇëÇóµÄ·¢ËÍ¡¢´¦Öóͷ£ºÍÏìÓ¦µÄÌìÉú¡£
ÇëÇóÍ·²¿£¨RequestHeaders£©µÄ½ø½×£º³ýÁËÎÒÃÇÖ®Ìõ¼þµ½µÄHost¡¢User-Agent¡¢Accept¡¢Cookie¡¢Referer£¬HTTP/1.1»¹ÒýÈëÁ˸ü¶àÓÐÓõÄÇëÇóÍ·²¿£¬ÀýÈ磺
If-Modified-SinceºÍIf-None-Match£ºÕâÊÇHTTP/1.1ÔÚ»º´æ?¿ØÖÆ·½ÃæµÄÖ÷ÒªÔöÇ¿¡£¿Í»§¶Ë¿ÉÒÔ·¢ËÍÕâЩͷ²¿£¬¼û¸æ·þÎñÆ÷ËüÍâµØ»º´æµÄ×ÊÔ´ÊÇ»ùÓÚÄĸöÐÞ¸Äʱ¼ä£¨If-Modified-Since£©»òÕßETag£¨ÊµÌå±êÇ©£¬If-None-Match£©ÌìÉúµÄ¡£
ÈôÊÇ·þÎñÆ÷·¢Ã÷×ÊÔ´×Ô¸Ãʱ¼äÒÔÀ´Î´±»Ð޸쬻òÕßETagÆ¥Å䣬Ëü»á·µ»ØÒ»¸ö304NotModifiedÏìÓ¦£¬¼û¸æ¿Í»§¶ËʹÓÃÍâµØ»º´æ¼´¿É£¬´ó´ó½ÚÔ¼ÁË´ø¿íºÍ´¦Öóͷ£Ê±¼ä¡£Expect£ºÓÃÓÚָʾ¿Í»§¶ËÆÚÍû·þÎñÆ÷Ö´ÐеÄÌØ¶¨ÐÐΪ£¬ÀýÈçExpect:100-continue£¬ÌåÏÖ¿Í»§¶ËÔÚ·¢ËÍ´óµÄÇëÇóÕýÎÄ֮ǰ£¬Ï£ÍûÏÈ»ñµÃ·þÎñÆ÷µÄ¡°¼ÌÐø¡±ÏìÓ¦£¨100Continue״̬Â룩£¬ÒÔ×èÖ¹²»?ÐëÒªµÄÉÏ´«?¡£
ÏìӦͷ²¿£¨ResponseHeaders£©£ºÌṩ¹ØÓÚÏìÓ¦µÄÌØÊâÐÅÏ¢£¬Èç·þÎñÆ÷ÀàÐÍ¡¢ÄÚÈݳ¤¶È¡¢ÄÚÈÝÀàÐÍ¡¢»º´æ²ß?ÂԵȡ£³£¼ûµÄÍ·²¿×Ö¶ÎÓУºServer£ºÅú×¢·þÎñÆ÷Èí¼þµÄ?ÀàÐͺͰ汾¡£Content-Type£ºÖ¸Ã÷ÏìÓ¦ÌåµÄýÌåÀàÐÍ£¨Èçtext/html¡¢image/jpeg£©¡£
Content-Length£ºÖ¸Ã÷ÏìÓ¦ÌåµÄ³¤¶È£¨ÒÔ×Ö½ÚΪµ¥Î»£©¡£Set-Cookie£ºÖ¸Ê¾·þÎñÆ÷·¢Ë͸ø¿Í»§¶ËµÄcookie¡£Cache-Control£ºÖ¸Ê¾¿Í»§¶ËÔõÑù»º´æÏìÓ¦¡£ÏìÓ¦ÕýÎÄ£¨ResponseBody£©£º·þÎñÆ÷·µ»ØµÄÏÖʵÊý¾Ý£¬ÈçHTMLÎļþ¡¢Í¼Æ¬¡¢JSONÊý¾ÝµÈ?¡£
ÔÚÎÒÃÇÿһ´Îµã»÷Á´½Ó¡¢Ë¢ÐÂÒ³Ãæ¡¢ÉÏ´«Í¼Æ¬µÄ±³ºó£¬¶¼Òþ²Ø×ÅÒ»¸öÖÁ¹ØÖ÷ÒªµÄÐÒ顪¡ªHTTP/1.1¡£ËüÓÌÈ绥ÁªÍøÍ¨Ñ¶µÄÎÞÉùÓïÑÔ£¬Ä¬Ä¬µØÅþÁ¬×ÅÊýÒÔÒڼƵÄ×°±¸£¬Ö§³ÖÆðÎÒÃǸ»ºñ¶à²ÊµÄÊý×ÖÉúÑÄ¡£¹ØÓÚ´ó´ó¶¼Óû§¶øÑÔ£¬HTTP/1.1¿ÉÄÜÖ»ÊÇÒ»¸öÄ£ºýµÄ¿´·¨£¬»òÕß½ö½öÊÇä¯ÀÀÆ÷µØÖ·À¸ÖеÄÒ»´®×Ö·û¡£
½ñÌ죬¾ÍÈÃÎÒÃÇÒ»Æð²¦¿ªÃÔÎí£¬ÉîÈë̽ÌÖÕâ¸ö»¥ÁªÍøÍ¨Ñ¶»ùʯµÄÉñÃØ¡£