ÇÏÀÌÆÛÅؽºÆ® Àü¼Û±Ô¾à 1.1Ç¥ÁØ(¾È) Çѱ¹ÀüÀÚÅë½Å¿¬±¸¼Ò ¿ä¾à ÇÏÀÌÆÛÅؽºÆ® Àü¼Û ±Ô¾à(HTTP)Àº ºÐ»ê Á¤º¸ ½Ã½ºÅÛ, Á¾ÇÕ Á¤º¸½Ã½ºÅÛ ¹× ÇÏÀÌÆ۹̵ð ¾î Á¤º¸½Ã½ºÅÛ¿¡¼­ »ç¿ëÇÏ´Â ÀÀ¿ë °èÃþ ±Ô¾àÀ¸·Î¼­ ¿ä±¸ ¹æ¹ýÀÇ È®ÀåÀ» ÅëÇؼ­ ³×ÀÓ ¼­¹ö¿Í ºÐ»ê °´Ã¼ °ü¸® ½Ã½ºÅÛ°ú °°Àº ¼ö¸¹Àº ÀÛ¾÷¿¡ »ç¿ëµÉ ¼ö ÀÖ´Â º¸ÆíÀûÀÎ °´Ã¼ ÁöÇâÇü ±Ô¾àÀÌ´Ù. HTTP´Â ¾î¶² ¹®¼­ÀÇ µ¥ÀÌÅÍ Ç¥Çö Çü½ÄÀ» ±ÔÁ¤ÇÏ°í Çù»óÇÏ¿© Àü¼Û ÁßÀÎ µ¥ÀÌÅÍ¿Í ¹«°üÇÏ°Ô ½Ã½ºÅÛÀ» ±¸ÃàÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. HTTP´Â 1990³â ÀÌÈÄ World-Wide Web ¹ü ¼¼°è Á¤º¸ À̴ϼÅƼºê¿¡ ÀÇÇÏ¿© »ç¿ëµÇ°í ÀÖ´Ù. ÀÌ ±Ô°ÝÀº "HTTP/1.1"·Î ¾ð±ÞµÇ´Â ±Ô¾àÀ» Á¤ÀÇÇÏ°í ÀÖ´Ù. ¸ñÂ÷ 1 µµÀÔ........................................................... 7 1.1 ¸ñÀû ................................................... 7 1.2 ÇÊ¿ä »çÇ× ......................................... 7 1.3 ¿ë¾î ................................................... 8 1.4 Àü¹ÝÀûÀÎ ¿î¿µ ........................... 11 2 ±âÈ£ °ü·Ê ¹× ÀϹÝÀûÀÎ ¹®¹ý.............. 13 2.1 Ãß°¡µÈ BNF ....................................... 13 2.2 ±âº»ÀûÀÎ ±ÔÄ¢ .................................. 15 3 ±Ô¾à ÆĶó¹ÌÅÍ............................... 17 3.1 HTTP ¹öÀü ........................................ 17 3.2 º¸ÆíÀû ÀÚ¿ø ½Äº°ÀÚ(Uniform Resource Identifiers) ........................ 18 3.2.1 ÀϹÝÀû Çü½Ä ............................. 18 3.2.2 http URL ......................................... 19 3.2.3 URI ºñ±³ .................................. 20 3.3 ³¯Â¥/½Ã°£ Çü½Ä................................... 21 3.3.1 ¿ÏÀüÇÑ ³¯Â¥ ................................. 21 3.3.2 Delta Seconds ................. 22 3.4 ¹®ÀÚ ÁýÇÕ .......................................... 22 3.5 ³»¿ë ÄÚµù (Content Coding)............. 23 3.6 Àü¼Û ÄÚµù (Transfer Coding)............ 24 3.7 ¹Ìµð¾î ŸÀÔ ...................................... 25 3.7.1 Á¤ÇüÈ­(Canonicalization) ¹× ÅؽºÆ® ±âº»°ª ............... 26 3.7.2 Multipart Type .................................... 27 3.8 Á¦Ç° ÅäÅ« ...................................... 28 3.9 Ç°Áú µî±Þ °ª.................................. 28 3.10 ¾ð¾î ű×...................................... 28 3.11 ¿£ÅÍƼ ű×....................................... 29 3.12 ¿µ¿ª ´ÜÀ§ ..................................... 30 4 HTTP ¸Þ½ÃÁö......................................... 30 4.1 ¸Þ½ÃÁö À¯Çü ................................... 30 4.2 ¸Þ½ÃÁö Çì´õ ................................... 31 4.3 ¸Þ½ÃÁö º»¹® ................................... 32 4.4 ¸Þ½ÃÁö ±æÀÌ ................................... 32 4.5 ÀϹÝÀûÀÎ Çì´õ Çʵå ..................... 34 5 ¿ä±¸........................................................ 34 5.1 Request-Line ........................................ 34 5.1.1 Method ......................................... 35 5.1.2 Request-URI ...................................... 35 5.2 ¿ä±¸¿¡ ÀÇÇØ ½Äº°µÇ´Â ÀÚ¿ø ......... 37 5.3 ¿ä±¸ Çì´õ Çʵå ............................... 37 6 ÀÀ´ä.......................................................... 38 6.1 »óÅÂ-¶óÀÎ .......................................... 38 6.1.1 »óÅ ÄÚµå ¹× ÀÌÀ¯ ¹®±¸ .......... 39 6.2 ÀÀ´ä Çì´õ Çʵå ............................... 41 [Page 1] 7 ¿£ÅÍƼ(Entity).......................................................... 41 7.1 ¿£ÅÍƼ Çì´õ Çʵå ................................ 41 7.2 ¿£ÅÍƼ º»¹® ......................................... 42 7.2.1 À¯Çü .............................................. 42 7.2.2 ±æÀÌ ............................................¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦... 43 8 Á¢¼Ó.......................................................... 43 8.1 Áö¼ÓÀûÀÎ Á¢¼Ó ................................. 43 8.1.1 ¸ñÀû .............................................. 43 8.1.2 Àü¹ÝÀûÀÎ ¿î¿µ.............................. 44 8.1.3 ÇÁ¶ô½Ã ¼­¹ö(Proxy Servers) ........ 45 8.1.4 ½ÇÁ¦ÀûÀÎ °í·Á »çÇ× .................. 45 8.2 ¸Þ½ÃÁö Àü¼Û ÇÊ¿ä Á¶°Ç ................. 46 9 Method Á¤ÀÇ............................. 48 9.1 ¾ÈÀü ¹× ¸èµî¿ø(ØñÔõêª) method .. 48 9.1.1 ¾ÈÀü method..................................... 48 9.1.2 ¸èµî¿ø method................................. 49 9.2 OPTIONS ............................................... 49 9.3 GET ........................................................ 50 9.4 HEAD .................................................... 50 9.5 POST ...................................................... 51 9.6 PUT ........................................................ 52 9.7 DELETE ................................................. 53 9.8 TRACE ................................................... 53 10 »óÅ ÄÚµå Á¤ÀÇ....................................... 53 10.1 Informational 1xx (Á¤º¸¸¦ ¾Ë·Á ÁÖ´Â 1xx) .................................. 54 10.1.1 100 Continue (°è¼Ó)..................................................................... 54 10.1.2 101 Switching Protocols (±Ô¾à Àüȯ).................................. 54 10.2 Successful 2xx (¼º°øÀ» ¾Ë·Á ÁÖ´Â 2xx) ....................................................... 54 10.2.1 200 OK ......................................................................................... 54 10.2.2 201 Created (»ý¼º µÇ¾úÀ½) ......................................................... 55 10.2.3 202 Accepted (Á¢¼ö µÇ¾úÀ½)....................................................... 55 10.2.4 203 Non-Authoritative Information (ºñ ÀÎÁõ Á¤º¸) .................. 55 10.2.5 204 No Content (³»¿ëÀÌ ¾øÀ½) ......................... ...... ...... ........... 55 10.2.6 205 Reset Content (³»¿ëÀ» Áö¿ò)............................ ...... ............ 56 10.2.7 206 Partial Content (ºÎºÐÀû ³»¿ë)....................... ...... ............... 56 10.3 Redirection 3xx (¹æÇâÀ» Àç¼³Á¤ÇÏ´Â 3xx)..................................... 56 10.3.1 300 Multiple Choices (º¹¼ö ¼±ÅÃ).......................... ...... .... ........ 57 10.3.2 301 Moved Permanently (¿µ±¸ À̵¿).............. ........................... 57 10.3.3 302 Moved Temporarily (Àӽà À̵¿).......................................... 58 10.3.4 303 See Other (´Ù¸¥ °ÍÀ» ÂüÁ¶)................................................. 58 10.3.5 304 Not Modified (º¯°æµÇÁö ¾Ê¾ÒÀ½)......................................... 58 10.3.6 305 Use Proxy (ÇÁ¶ô½Ã¸¦ »ç¿ëÇÒ °Í)........................................ 59 10.4 Client Error 4xx (Ŭ¶óÀ̾ðÆ® ¿¡·¯ 4xx)......................................... 59 10.4.1 400 Bad Request (À߸øµÈ ¿ä±¸)................................................... 60 10.4.2 401 Unauthorized (ÀÎÁõµÇÁö ¾Ê¾ÒÀ½).......................................... 60 10.4.3 402 Payment Required (¿ä±Ý ÁöºÒ ¿äû).................................... 60 10.4.4 403 Forbidden (±ÝÁöµÇ¾úÀ½)........................................¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦.............. 60 [Page 2] 10.4.5 404 Not Found (ãÀ» ¼ö ¾øÀ½)..................................................... 60 10.4.6 405 Method Not Allowed (Method¸¦ »ç¿ëÇÒ ¼ö ¾øÀ½).............. 61 10.4.7 406 Not Acceptable (Á¢¼öÇÒ ¼ö ¾øÀ½)......................................... 61 10.4.8 407 Proxy Authentication Required (ÇÁ¶ô½Ã ÀÎÁõÀÌ ÇÊ¿äÇÔ).... 61 10.4.9 408 Request Timeout (¿ä±¸ ½Ã°£ ÃÊ°ú)....................................... 62 10.4.10 409 Conflict (Ãæµ¹)....................................................................... 62 10.4.11 410 Gone (³»¿ë¹°ÀÌ »ç¶óÁ³À½).................................................. 62 10.4.12 411 Length Required (±æÀÌ°¡ ÇÊ¿äÇÔ)........................................ 63 10.4.13 412 Precondition Failed (»çÀü Á¶°Ç ÃæÁ· ½ÇÆÐ)........................ 63 10.4.14 413 Request Entity Too Large (¿ä±¸ ¿£ÅÍƼ°¡ ³Ê¹« Å­)............. 63 10.4.15 414 Request-URI Too Long (Request-URIÀÌ ³Ê¹« ±è).................. 63 10.4.16 415 Unsupported Media Type (Áö¿øµÇÁö ¾Ê´Â media type).. 63 10.5 Server Error 5xx (¼­¹ö ¿¡·¯ 5xx)...................................................... 64 10.5.1 500 Internal Server Error (¼­¹ö ³»ºÎ ¿¡·¯).................................. 64 10.5.2 501 Not Implemented (±¸ÇöµÇÁö ¾Ê¾ÒÀ½)..................................... 64 10.5.3 502 Bad Gateway (ºÒ·® °ÔÀÌÆ®¿þÀÌ) .................................................... 64 10.5.4 503 Service Unavailable (¼­ºñ½º¸¦ »ç¿ëÇÒ ¼ö ¾øÀ½) ......................... 64 10.5.5 504 Gateway Timeout (°ÔÀÌÆ®¿þÀÌ ½Ã°£ ÃÊ°ú).................................... 64 10.5.6 505 HTTP Version Not Supported (Áö¿øµÇÁö ¾Ê´Â HTTP ¹öÀü) ........ 65 11 Á¢¼Ó ÀÎÁõ .................................................................... 65 11.1 ±âº» ÀÎÁõ scheme ........................................ 66 11.2 ¿ä¾à ÀÎÁõ scheme ....................................................... 67 12 ³»¿ë Çù»ó(Content Negotiation).................................... 67 12.1 ¼­¹ö°¡ ÁÖµµÇÏ´Â Çù»ó ......................................... 68 12.2 ¿¡ÀÌÀüÆ®°¡ ÁÖµµÇÏ´Â Çù»ó................................... 69 12.3 Åõ¸íÇÑ Çù»ó(Transparent Negotiation ) .................. 70 13 HTTP¿¡¼­ÀÇ Ä³½Ã........................................................ 70 13.1.1 ij½ÃÀÇ Á¤È®¼º .................................................. 72 13.1.2 °æ°í .................................................................... 73 13.1.3 ij½Ã-Á¦¾î ¸ÞÄ¿´ÏÁò ......................................... 74 13.1.4 ¸í¹éÇÑ »ç¿ëÀÚ ¿¡ÀÌÀüÆ® °æ°í ...................... 74 13.1.5 ±ÔÄ¢ ¹× °æ°íÀÇ ¿¹¿Ü »çÇ× ............................ 75 13.1.6 Ŭ¶óÀ̾ðÆ®°¡ Á¦¾îÇÏ´Â ÇàÅ ........................ 75 13.2 À¯È¿ÀÏ ¸ðµ¨ ........................................................... 75 13.2.1 ¼­¹ö°¡ ¸í½ÃÇÑ ¸¸±âÀÏ .................................... 75 13.2.2 ½º½º·Î ¸¸±âÀÏÀ» ãÀ½(Heuristic Expiration) .. 76 13.2.3 °æ°ú ½Ã°£ °è»ê(Age Calculations) ................... 77 13.2.4 ¸¸±âÀÏ °è»ê ...................................................... 79 13.2.5 ¸¸±âÀÏ °ªÀ» ¸íÈ®ÇÏ°Ô Çϱâ ......................... 80 13.2.6 º¹¼öÀÇ ÀÀ´äÀ» ¸íÈ®ÇÏ°Ô Çϱâ ...................... 80 13.3 °ËÁõ ¸ðµ¨ ............................................................... 81 13.3.1 ÃÖÁ¾ °»½Å ³¯Â¥ ................................................ 82 13.3.2 ¿£ÅÍƼ ÅÂ±× Ä³½Ã °ËÁõÀÚ(Validators) ................ 82 13.3.3 ¾àÇÑ/°­ÇÑ °ËÁõÀÚ ............................................. 82 13.3.4 ¿£ÅÍƼ ÅÂ±×¿Í ÃÖÁ¾ °»½Å ³¯Â¥¸¦ »ç¿ëÇÒ ¶§¸¦ °áÁ¤ÇÏ´Â ±ÔÄ¢....... 85 13.3.5 °ËÁõÀ» ÇÏÁö ¾Ê´Â Á¶°Ç ¹ý ................................................................. 86 13.4 ÀÀ´äÀ» ij½ÃÇÒ ¼ö ÀÖ´Â Á¤µµ(Cachability) .....................¡¦¡¦¡¦¡¦¡¦................¡¦..¡¦.... 86 [Page 3] 13.5 ij½Ã¿¡¼­ ÀÀ´äÀ» ±¸ÃàÇϱâ .......................... 87 13.5.1 End-to-end ¹× Hop-by-hop Çì´õ ............... 88 13.5.2 º¯°æÇÒ ¼ö ¾ø´Â Çì´õ ............................... 88 13.5.3 Çì´õÀÇ °áÇÕ ............................................... 89 13.5.4 ¹ÙÀÌÆ® ¿µ¿ª(Byte Ranges)ÀÇ °áÇÕ............ 90 13.6 Çù»óÀ» ÅëÇÑ ÀÀ´äÀ» ij½ÃÇϱâ .................... 90 13.7 °øÀ¯/ºñ°øÀ¯ ij½Ã............................................. 91 13.8 ¿¡·¯ ¶Ç´Â ºÒ¿ÏÀüÇÑ ÀÀ´ä ij½Ã ÇàÅ ....... 91 13.9 GET ¹× HEADÀÇ ºÎÀÛ¿ë ............................. 92 13.10 °»½Å ¶Ç´Â »èÁ¦ ÈÄÀÇ ¹«È¿È­ .................... 92 13.11 Àǹ«ÀûÀ¸·Î ¼­¹ö¸¦ ÅëÇÏ¿© ±âÀÔ................ 93 13.12 ij½Ã ´ëü ...................................................... 93 13.13 History List ................................ 93 14 Çì´õ Çʵå Á¤ÀÇ..................................................... 94 14.1 Accept ..................................................... 95 14.2 Accept-Charset............................. 97 14.3 Accept-Encoding................................ 97 14.4 Accept-Language.................................... 98 14.5 Accept-Ranges ...................................... 99 14.6 Age........................................................... 99 14.7 Allow........................................... 100 14.8 Authorization......................................... 100 14.9 Cache-Control.................................... 101 14.9.1 ¹«¾ùÀ» ij½ÃÇÒ ¼ö Àִ°¡................................ 103 14.9.2 ij½Ã¿¡ ÀÇÇØ ¹«¾ùÀ» ÀúÀåÇÒ ¼ö Àִ°¡........ 103 14.9.3 ±âº»ÀûÀÎ ¸¸±âÀÏ ¸ÞÄ¿´ÏÁòÀÇ º¯°æ .............. 104 14.9.4 ij½ÃÀÇ Àç°ËÁõ ¹× Reload Á¦¾î ................... 105 14.9.5 ºñ º¯°æ Áö½Ã¾î ................................................ 107 14.9.6 ij½Ã Á¦¾î È®Àå.................................................. 108 14.10 Connection............................................... 109 14.11 Content-Base................................ 109 14.12 Content-Encoding.................... 110 14.13 Content-Language........................ 110 14.14 Content-Length.............................. 111 14.15 Content-Location......................... 112 14.16 Content-MD5.............................. 113 14.17 Content-Range....................... 114 14.18 Content-Type.......................... 116 14.19 Date................................................ 116 14.20 ETag ......................................................................... 117 14.21 Expires....................................................... 117 14.22 From....................................................... 118 14.23 Host..................................................... 119 14.24 If-Modified-Since .................................................... 119 14.25 If-Match ................................................................... 121 14.26 If-None-Match ......................................................... 122 14.27 If-Range ................................................................... 123 14.28 If-Unmodified-Since ................................................ 124 14.29 Last-Modified ..................¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦........... 124 [Page 4] 14.30 Location........................................... 125 14.31 Max-Forwards............................. 125 14.32 Pragma ...................................................................... 126 14.33 Proxy-Authenticate................. 127 14.34 Proxy-Authorization................ 127 14.35 Public ........................................................................ 127 14.36 Range........................................................ 128 14.36.1 Byte Ranges................ 128 14.36.2 Range Retrieval Requests 130 14.37 Referer............................................ 131 14.38 Retry-After.............................. 131 14.39 Server....................................................... 132 14.40 Transfer-Encoding.............. 132 14.41 Upgrade....................................... 132 14.42 User-Agent........................ 134 14.43 Vary......................................................... 134 14.44 Via......................................................... 135 14.45 Warning............................................... 137 14.46 WWW-Authenticate...................... 139 15 º¸¾È¿¡ ´ëÇÑ °í·Á »çÇ×............................................... 139 15.1 Ŭ¶óÀ̾ðÆ®ÀÇ ÀÎÁõ ............................................... 139 15.2 ÀÎÁõ schemeÀ» ¼±ÅÃÇÒ ¼ö ÀÖµµ·Ï ÇÔ ................................... 140 15.3 ¼­¹ö ·Î±× Á¤º¸ÀÇ ³²¿ë ....................................... 141 15.4 ¹Î°¨ÇÑ Á¤º¸ÀÇ Àü¼Û ............................................. 141 15.5 ÆÄÀÏ ¹× °æ·Î À̸§¿¡ ±âÃÊÇÑ °ø°Ý ................... 142 15.6 °³ÀÎÀûÀÎ Á¤º¸ ........................................................... 143 15.7 Accept Çì´õ¿Í ¿¬°áµÈ »ç»ýÈ° º¸È£ÀÇ À̽´ ........... 143 15.8 DNS Spoofing(¼ÓÀ̱â) ............................................ 144 15.9 Location Çì´õ¿Í Spoofing(¼ÓÀ̱â) ........................ 144 16 °¨»çÀÇ ¸»...................................................................... 144 17 Âü°í ¹®Çå...................................................................... 146 18 ÀúÀÚÀÇ ÁÖ¼Ò.................................................................. 149 19 ºÎ·Ï................................................................................ 150 19.1 Internet Media Type message/http...................... 150 19.2 Internet Media Type multipart/byteranges ............ 150 19.3 Tolerant Applications............................. 151 19.4 HTTP ¿£ÅÍƼ¿Í MIME ¿£ÅÍƼÀÇ Â÷ÀÌÁ¡......................................................... 152 19.4.1 ±Ô¹üÀûÀÎ ÆûÀ¸·Î º¯È¯ .................................... 152 19.4.2 ³¯Â¥ Çü½ÄÀÇ º¯È¯ ............................................ 153 19.4.3 Content-Encoding ¼Ò°³............................................... 153 19.4.4 No Content-Transfer-Encoding ........................................ 153 19.4.5 Multipart Body-PartÀÇ HTTP Çì´õ Çʵå ....... 153 19.4.6 Transmit-Encoding ¼Ò°³ ............................................. 154 19.4.7 MIME-Version ..................................................¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦...... 154 [Page 5] 19.5 HTTP/1.0 ÀÌÈÄ º¯°æ »çÇ× .................................... 154 19.5.1 º¹¼öÀÇ È¨À» °¡Áø À¥ ¼­¹ö¸¦ ´Ü¼øÇÏ°Ô Çϱâ À§ÇÑ º¯°æ »çÇ× ¹× IP ÁÖ¼Ò º¸Á¸ ..................................................... 155 19.6 Ãß°¡ ±â´É ............................................................... 156 19.6.1 Ãß°¡ÀûÀÎ ¿ä±¸ method ............................................ 156 19.6.2 Ãß°¡ Çì´õ Çʵå Á¤ÀÇ ...................................... 156 19.7 ÀÌÀü ¹öÀü°úÀÇ È£È¯¼º ......................................... 160 19.7.1 HTTP/1.0 Áö¼ÓÀûÀÎ ¿¬°á°úÀÇ È£È¯¼º............. 161 [Page 6] 1 ¼­·Ð 1.1 ¸ñÀû ÇÏÀÌÆÛÅؽºÆ® Àü¼Û ±Ô¾à(HTTP)Àº ºÐ»ê Á¤º¸½Ã½ºÅÛ, Á¾ÇÕ Á¤º¸½Ã½ºÅÛ ¹× ÇÏÀÌÆ۹̵ð¾î Á¤º¸½Ã ½ºÅÛ¿¡¼­ »ç¿ëÇÏ´Â ÀÀ¿ë°èÃþÀÇ ±Ô¾àÀÌ´Ù. HTTP´Â 1990³â ÀÌÈÄ World-Wide Web ¹ü ¼¼°è Á¤º¸ À̴ϼÅƼºê¿¡ ÀÇÇÏ¿© »ç¿ëµÇ°í ÀÖ´Ù. "HTTP/0.9"·Î ¾ð±ÞµÇ´Â HTTPÀÇ Ã¹ ¹öÀüÀº ÀÎÅÍ³Ý »ó¿¡ ¼­ ÀúÀåµÇ¾î ÀÖ´Â ¿ø·¡ µ¥ÀÌÅÍ(raw data)¸¦ Àü¼ÛÇϱâ À§ÇÑ ´Ü¼øÇÑ ±Ô¾àÀ̾ú´Ù. RFC 1945 [6]ÀÌ ±ÔÁ¤ÇÑ HTTP/1.0Àº ¸Þ½ÃÁö¸¦ Àü¼ÛµÇ´Â ¹®¼­ µ¥ÀÌÅÍ¿¡ ´ëÇÑ ¸ÞŸ Á¤º¸ ¹× ¿ä±¸/ÀÀ´ä ¿ë¾îÀÇ º¯°æÀÚ¸¦ Æ÷ÇÔÇÏ´Â MIME°ú À¯»çÇÑ ¸Þ½ÃÁöÀÇ Çü½ÄÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇÔÀ¸·Î½á ±Ô¾àÀ» Çâ »ó½ÃÄ×´Ù. ±×·¯³ª HTTP/1.0Àº °èÃþÀû ÇÁ¶ô½Ã(hierarchical proxies), ij½Ã, Áö¼ÓÀûÀÎ ¿¬°áÀÇ ÇÊ¿ä ¼º ¹× °¡»ó È£½ºÆ®(virtual host) µîÀÇ ¿µÇâÀ» ÃæºÐÈ÷ °í·ÁÇÏÁö ¾Ê¾Ò´Ù. ¶ÇÇÑ "HTTP/1.0"À» Áö¿ø ÇÑ´Ù°í Çϸ鼭µµ ±Ô¾àÀÇ ºÒ¿ÏÀü ±¸Çö ¹× ¿ÀÇØ¿¡ ÀÇÇÑ À߸øµÈ ±¸Çö µî¿¡ ÀÇÇØ ÀÀ¿ë ÇÁ·Î±×·¥ »çÀÌ¿¡ Á¾Á¾ ¹®Á¦°¡ ¹ß»ýÇÏ¿´±â¿¡ »óÈ£ Çù»óÇÒ ¼ö ÀÖ´Â ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ »ó´ë¹æÀÇ ÁøÁ¤ÇÑ ¼º ´ÉÀ» ÆľÇÇÒ ¼ö ÀÖµµ·Ï ±Ô¾à ¹öÀüÀ» °»½ÅÇÒ ÇÊ¿ä°¡ »ý°å´Ù. ÀÌ ±Ô°ÝÀº "HTTP/1.1"·Î ºÒ¸®¿ì´Â ÇÏÀÌÆÛÅؽºÆ® Àü¼Û ±Ô¾àÀ» Á¤ÀÇÇÑ´Ù. ÀÌ ±Ô¾àÀº ±â´ÉÀ» ½Å ·ÚÇÒ ¼ö ÀÖµµ·Ï ±¸ÇöÇϱâ À§ÇØ HTTP/1.0º¸´Ù ´õ ¾ö°ÝÇÑ ÇÊ¿ä Á¶°ÇÀ» Æ÷ÇÔÇÏ°í ÀÖ´Ù. ½ÇÁ¦ÀûÀÎ Á¤º¸ ½Ã½ºÅÛÀº ´Ü¼øÇÑ Á¶È¸º¸´Ù °Ë»ö, ÇÁ·±Æ®-¿£µå(front-end) °»½Å ¹× ÁÖ¼® ´Þ±â µî ¸¹Àº ±â´ÉÀ» ÇÊ¿ä·Î ÇÑ´Ù. HTTP´Â ¿ä±¸ÀÇ ¸ñÀûÀ» Ç¥½ÃÇÏ´Â ÀÏ·ÃÀÇ °³¹æµÈ method¸¦ (open- ended set of methods) Çã¿ëÇÑ´Ù. ÀÌ ±Ô¾àÀº º¸ÆíÀû ÀÚ¿ø ½Äº°ÀÚ(URI) [3][20], ÀÚ¿ø À§Ä¡ (URL) [4] ¶Ç´Â ÀÚ¿ø À̸§(URN)ÀÌ Á¦°øÇÏ´Â Âü°í ¹æ¹ý¿¡ µû¶ó method¸¦ Àû¿ëÇÒ ÀÚ¿øÀ» ÁöĪÇÏ´Â µ¥ »ç ¿ëÇÑ´Ù. ¸Þ½ÃÁö´Â ´Ù¿ëµµ ÀÎÅÍ³Ý ¸ÞÀÏ È®Àå(MIME)¿¡¼­ Á¤ÀÇµÈ °Íó·³ ÀÎÅÍ³Ý ¸ÞÀÏ¿¡¼­ »ç¿ë µÇ´Â °Í°ú À¯»çÇÑ Çü½ÄÀ¸·Î Àü¼ÛµÈ´Ù. HTTP´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ®, ÇÁ¶ô½Ã/°ÔÀÌÆ®¿þÀÌ¿Í SMTP [16], NNTP [13], FTP [18], Gopher [2], ¹× WAIS [10] µîÀ» Áö¿øÇÏ´Â ´Ù¸¥ ÀÎÅÍ³Ý ½Ã½ºÅÛ »çÀÌÀÇ Åë½ÅÀ» À§ÇÑ ¹ü¿ë ±Ô¾àÀ¸·Î¼­ »ç¿ëµÈ´Ù. ÀÌ·¯ÇÑ ¹æ½ÄÀ¸·Î HTTP´Â ±âº»ÀûÀÎ ÇÏÀÌÆ۹̵ð¾î°¡ ´Ù¾çÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ÀÚ¿ø¿¡ Á¢±ÙÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. 1.2 ÇÊ¿ä Á¶°Ç ÀÌ ±Ô°ÝÀº °¢°¢ÀÇ Æ¯º°ÇÑ ÇÊ¿ä Á¶°ÇÀÇ Áß¿äµµ¸¦ Á¤ÀÇÇÒ ¶§ RFC 1123 [8]¿Í µ¿ÀÏÇÑ ¿ë¾î¸¦ »ç ¿ëÇÑ´Ù. ÀÌ·¯ÇÑ ¿ë¾î´Â ´ÙÀ½°ú °°´Ù. MUST ÀÌ ´Ü¾î ¶Ç´Â "¿ä±¸µÈ"À̶ó´Â Çü¿ë»ç´Â ÇØ´ç Ç׸ñÀÌ ±Ô°ÝÀÇ Àý´ëÀûÀÎ ÇÊ¿ä Á¶°ÇÀÓÀ» ÀÇ¹Ì ÇÑ´Ù. [Page 7] SHOULD ÀÌ ´Ü¾î ¶Ç´Â "ÃßõµÈ"À̶ó´Â Çü¿ë»ç´Â ƯÁ¤ »óȲ¿¡¼­ ÇØ´ç Ç׸ñÀ» ¹«½ÃÇÒ ÇÕ´çÇÑ ÀÌÀ¯°¡ ÀÖÀ» ¼ö ÀÖ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ±×·¯³ª ÃæºÐÈ÷ ÇÔÃàÀû Àǹ̸¦ ÀÌÇØÇØ¾ß ÇÏ°í ´Ù¸¥ ¹æ¹ýÀ» ¼±ÅÃÇϱâ Àü¿¡ »ç·Ê¸¦ ÃæºÐÈ÷ °ËÅäÇØ¾ß ÇÑ´Ù. MAY ÀÌ ´Ü¾î ¶Ç´Â "¼±ÅÃÀû"À̶ó´Â Çü¿ë»ç´Â ÇØ´ç Ç׸ñÀÌ ÁøÁ¤À¸·Î ¼±ÅÃÀûÀ̶ó´Â °ÍÀ» ÀǹÌÇÑ ´Ù. ÇÑ ÆǸÅȸ»ç´Â ƯÁ¤ Ç׸ñÀ» ƯÁ¤ ½ÃÀåÀÌ ¿ä±¸Çϱ⠶§¹®¿¡ ¶Ç´Â ¿¹¸¦ µé¾î Á¦Ç°ÀÇ ±â´É À» Çâ»ó½ÃÄÑ Áֱ⠶§¹®¿¡ ´Ù¸¥ ÆǸŠȸ»ç¿Í ´Þ¸® µ¿ÀÏÇÑ Ç׸ñÀ» Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. ±¸Çö ¹æ¹ýÀÌ Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ MUST ±Ô¾à ÇÊ¿ä Á¶°ÇÀ» ÃæÁ·½ÃÄÑ ÁÖÁö ¸øÇÏ¸é ±Ô¾à¿¡ µû ¸£Áö ¾Ê´Â °ÍÀÌ´Ù. ±¸Çö ¹æ½ÄÀÌ ¸ðµç MUST ¹× SHOULD ÇÊ¿ä Á¶°ÇÀ» ÃæÁ·ÇÑ´Ù¸é "¹«Á¶°ÇÀûÀ¸ ·Î ÃæÁ·ÇÑ´Ù"°í ÇÒ ¼ö ÀÖ°í, ¸ðµç MUST ÇÊ¿ä Á¶°ÇÀ» ÃæÁ·ÇÏÁö¸¸ ¸ðµç SHOULD ÇÊ¿ä Á¶°ÇÀ» ÃæÁ·ÇÏÁö ¸øÇÑ´Ù¸é "Á¶°ÇÀûÀ¸·Î ÃæÁ·ÇÑ´Ù"°í ÇÒ ¼ö ÀÖ´Ù. 1.3 ¿ë¾î ÀÌ ±Ô°ÝÀº HTTP Åë½ÅÀÇ Âü¿©ÀÚ ¹× °´Ã¼°¡ ¼öÇàÇÏ´Â ¿ªÇÒÀ» ÁöĪÇÏ´Â ¸î¸î ¿ë¾î¸¦ »ç¿ëÇÏ°í ÀÖ´Ù. connection(¿¬°á) Åë½ÅÀ» ¸ñÀûÀ¸·Î µÎ ÇÁ·Î±×·¥ °£¿¡ ¼³Á¤µÈ Àü¼Û °èÃþÀÇ °¡»óÀû ȸ·Î message(¸Þ½ÃÁö) HTTP Åë½ÅÀÇ ±âº» Àü¼Û ´ÜÀ§. 4 Àå¿¡ ±ÔÁ¤µÈ Àǹ̷ÐÀ» µû¸£´Â ±¸Á¶ÀûÀÎ µ¥ÀÌÅÍ Ç¥Çö ÇüÅ À̸ç, ÀÏ·ÃÀÇ 8 ºñÆ®(octets)·Î ±¸¼ºµÇ¾î ÀÖ°í ¿¬°áÀ» ÅëÇÏ¿© Àü¼ÛµÈ´Ù. request(¿ä±¸) 5 Àå¿¡ ±ÔÁ¤µÈ HTTP ¿ä±¸ ¸Þ½ÃÁö. response(ÀÀ´ä) 5 Àå¿¡ ±ÔÁ¤µÈ HTTP ÀÀ´ä ¸Þ½ÃÁö. resource(ÀÚ¿ø) 3.2Àý¿¡ ±ÔÁ¤µÇ¾î ÀÖ´Â URI¿¡ ÀÇÇÏ¿© ½Äº°µÇ´Â ³×Æ®¿öÅ© µ¥ÀÌÅÍ °´Ã¼ ¶Ç´Â ¼­ºñ½º. ÀÚ¿ø Àº ´Ù¾çÇÑ Ç¥Çö ÇüÅ (¿¹¸¦ µé¾î ¾ð¾î, µ¥ÀÌÅÍ Çü½Ä, Å©±â ¹× ÇØ»óµµ)¸¦ Áö´Ò ¼ö ÀÖÀ¸¸ç ´Ù ¾çÇÑ ¹æ¹ýÀ¸·Î º¯ÇüµÉ ¼ö ÀÖ´Ù. [Page 8] entity(¿£ÅÍƼ) ¿ä±¸³ª ÀÀ´ä ¸Þ½ÃÁöÀÇ ÆäÀ̷εå(payload)·Î¼­ Àü¼ÛµÇ´Â Á¤º¸. ¿£ÅÍƼ´Â 7 Àå¿¡¼­ ¼³¸íµÈ ´ë ·Î Entity-Header Çʵå ÇüÅÂÀÇ ¸ÞŸ Á¤º¸ ¹× Entity-Body ÇüÅÂÀÇ ³»¿ëÀ¸·Î ±¸¼ºµÇ¾î ÀÖ´Ù. representation(Ç¥Çö) 12 Àå¿¡¼­ ±â¼úÇÑ ³»¿ë Çù»óÀÇ ÅëÁ¦¸¦ µû¸£´Â ÀÀ´ä¿¡ Æ÷ÇÔµÈ ¿£ÅÍƼ. ƯÁ¤ÇÑ ÀÀ´ä »óÅÂ¿Í ¿¬°üµÈ ´Ù¼öÀÇ Ç¥Çö ¹æ¹ýÀÌ ÀÖÀ» ¼ö ÀÖ´Ù. content negotiation(³»¿ë Çù»ó) 12 Àå¿¡¼­ ±â¼úÇÑ ´ë·Î ¿ä±¸¸¦ ó¸®ÇÒ ¶§ ÀûÀýÇÑ Ç¥Çö ¹æ¹ýÀ» ¼±ÅÃÇÏ´Â ¸ÞÄ¿´ÏÁò. ¾î¶°ÇÑ ÀÀ´ä¿¡¼­´Â ¿£ÅÍƼÀÇ Ç¥ÇöÀº Çù»óÇÒ ¼ö ÀÖ´Ù.(¿¡·¯ ÀÀ´ä Æ÷ÇÔ) variant(º¯ÇüÀÚ) ÀÚ¿øÀº ƯÁ¤ÇÑ °æ¿ì¿¡ ÀÚ¿ø°ú °ü·ÃµÈ Çϳª ÀÌ»óÀÇ Ç¥Çö ¹æ½ÄÀ» °¡Áú ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ °¢°¢ ÀÇ Ç¥Çö ¹æ½ÄÀ» "º¯ÇüÀÚ"¶ó°í ºÎ¸¥´Ù. "º¯ÇüÀÚ"¶ó´Â ¿ë¾î¸¦ »ç¿ëÇÑ´Ù°í Çؼ­ ÀÚ¿øÀÌ ¹Ýµå ½Ã ³»¿ë Çù»óÀÇ ´ë»óÀÎ °ÍÀº ¾Æ´Ï´Ù. client(Ŭ¶óÀ̾ðÆ®) ¿ä±¸ ¸Þ½ÃÁö¸¦ Àü¼ÛÇÒ ¸ñÀûÀ¸·Î ¿¬°áÀ» ¼³Á¤ÇÏ´Â ÇÁ·Î±×·¥. user agent(»ç¿ëÀÚ ¿¡ÀÌÀüÆ®) ¿ä±¸ ¸Þ½ÃÁö¸¦ ½ÃÀÛÇϴ Ŭ¶óÀ̾ðÆ®. ÀÌ°ÍÀº Á¾Á¾ ºê¶ó¿ìÀú, ÆíÁý±â, ½ºÆÄÀÌ´õ(À¥À» Ž»öÇÏ ´Â ·Îº¿) ¶Ç´Â ´Ù¸¥ »ç¿ëÀÚ Åø(tool)ÀÏ ¼ö ÀÖ´Ù. server(¼­¹ö) ¿ä±¸ ¸Þ½ÃÁö¸¦ ó¸®Çϱâ À§ÇØ Á¢¼ÓÀ» ¼ö½ÅÇÏ´Â ¾ÖÇø®ÄÉÀ̼ÇÀ¸·Î¼­ ÀÀ´ä ¸Þ½ÃÁö¸¦ Àü¼ÛÇÑ ´Ù. ¾î¶² ÇÁ·Î±×·¥ÀÌµç µ¿½Ã¿¡ Ŭ¶óÀ̾ðÆ®¿Í ¼­¹ö°¡ µÉ ¼ö ÀÖ´Ù. ÀÌ ±Ô°Ý¿¡¼­ ÀÌ ¿ë¾î¸¦ »ç¿ëÇÏ´Â °ÍÀº ÇÁ·Î±×·¥ÀÇ ÀϹÝÀûÀÎ ´É·ÂÀ» ÂüÁ¶Çϱ⺸´Ù´Â ƯÁ¤ÇÑ ¿¬°áÀ» À§ÇØ ÇÁ·Î±×·¥ ÀÌ ¼öÇàÇÏ´Â ¿ªÇÒ¸¸À» ÂüÁ¶ÇÏ´Â °ÍÀÌ´Ù. ¸¶Âù°¡Áö·Î ¾î¶°ÇÑ ¼­¹öµµ ¿ø¼­¹ö, ÇÁ¶ô½Ã, °ÔÀÌÆ® ¿þÀÌ, ÅͳΠµî °¢ ¿ä±¸ÀÇ ¼º°Ý¿¡ µû¶ó µ¿ÀÛÀ» ÀüȯÇÏ´Â ¿ªÇÒÀ» ÇÒ ¼ö ÀÖ´Ù. origin server(¿ø¼­¹ö) ÇØ´ç ÀÚ¿øÀÌ º¸°üµÇ¾î Àְųª ÀÚ¿øÀ» »ý¼ºÇÒ ¼ö ÀÖ´Â ¼­¹ö. [Page 9] proxy(ÇÁ¶ô½Ã) ´Ù¸¥ Ŭ¶óÀ̾ðÆ®¸¦ ´ë½ÅÇÏ¿© ¿ä±¸¸¦ ÀÛ¼ºÇÒ ¸ñÀûÀ¸·Î ¼­¹ö¿Í Ŭ¶óÀ̾ðÆ®ÀÇ ¿ªÇÒÀ» ¸ðµÎ ¼öÇàÇÏ´Â Áß°£ ÇÁ·Î±×·¥. ¿ä±¸´Â ³»ºÎÀûÀ¸·Î ó¸®µÇ¾î °¡´ÉÇϸé Çؼ®µÇ¾î ´Ù¸¥ ¼­¹ö·Î Àü ´ÞµÈ´Ù. ÇÁ¶ô½Ã´Â ÀÌ ±Ô°ÝÀÇ Å¬¶óÀ̾ðÆ®¿Í ¼­¹öÀÇ ÇÊ¿ä Á¶°ÇÀ» ¸ðµÎ ±¸ÇöÇؾ߸¸ ÇÑ´Ù. gateway(°ÔÀÌÆ®¿þÀÌ) ´Ù¸¥ ¼­¹ö¸¦ À§ÇØ Áß°£ ¿ªÇÒÀ» ÇÏ´Â ¼­¹ö. ÇÁ¶ô½Ã¿Í´Â ´Þ¸® °ÔÀÌÆ®¿þÀÌ´Â ¿ä±¸ ¸Þ½ÃÁö¸¦, ¿äû¹ÞÀº ÀÚ¿øÀ» ¼­ºñ½ºÇÏ´Â ÃÖÁ¾ÀûÀÎ ¿ø¼­¹öó·³ ¼ö½ÅÇÑ´Ù. ¿ä±¸ÇÑ Å¬¶óÀ̾ðÆ®´Â ÀÚ½ÅÀÌ °ÔÀÌÆ®¿þÀÌ¿Í Åë½ÅÇÏ°í ÀÖ´Ù´Â °ÍÀ» ¾ËÁö ¸øÇÒ ¼ö ÀÖ´Ù. tunnel(ÅͳÎ) µÎ ¿¬°á »çÀ̸¦ ¹«Á¶°Ç Áß°èÇÏ´Â ¿ªÇÒÀ» ÇÏ´Â Áß°£ ÇÁ·Î±×·¥. È°¼ºÈ­µÇ¸é ºñ·Ï HTTP ¿ä±¸ ¿¡ ÀÇÇÏ¿© ½ÃÀÛµÇÁö¸¸ ÅͳÎÀº HTTP Åë½ÅÀÇ Âü¿©ÀÚ·Î °£ÁÖµÇÁö ¾Ê´Â´Ù. ÅͳÎÀº Áß°èÇÏ°í ÀÖ´Â ¾ç ÂÊÀÇ ¿¬°áÀÌ Á¾°áµÇ¸é »ç¶óÁø´Ù. cache(ij½Ã) ÇÁ·Î±×·¥ÀÌ ÀÀ´ä ¸Þ½ÃÁö¸¦ ÀúÀåÇÏ´Â ·ÎÄà ÀúÀå¼Ò. ¸Þ½ÃÁö º¸°ü, Á¶È¸ ¹× »èÁ¦¸¦ Á¦¾îÇÏ´Â ÇϺΠ½Ã½ºÅÛÀ̱⵵ ÇÏ´Ù. ij½Ã´Â ÀÀ´ä ½Ã°£, ÇâÈÄ ³×Æ®¿öÅ© ´ë¿ªÆø ¼Ò¸ð ¹× µ¿ÀÏÇÑ ¿ä±¸¸¦ °¨¼Ò½Ãų ¸ñÀûÀ¸·Î ij½ÃÇÒ ¼ö ÀÖ´Â ÀÀ´äÀ» ÀúÀåÇÑ´Ù. ¾î¶² Ŭ¶óÀ̾ðÆ®³ª ¼­¹öµµ ij½Ã¸¦ Æ÷ ÇÔÇÒ ¼ö ÀÖ´Ù. ´ÜÁö ÅͳΠ¿ªÇÒÀ» ÇÏ´Â ¼­¹ö´Â ij½Ã¸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù. cachable(ij½ÃÇÒ ¼ö ÀÖ´Â) ÀÀ´ä ¸Þ½ÃÁöÀÇ »çº»À» ÀúÀåÇÏ¿© °è¼ÓÀûÀÎ ¿ä±¸ ÀÀ´ä¿¡ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸é ÀÀ´äÀ» ij½ÃÇÒ ¼ö ÀÖ´Ù°í ÇÑ´Ù. HTTP ÀÀ´äÀÇ Ä³½Ã °¡´É ¿©ºÎ¸¦ °áÁ¤ÇÏ´Â ¿øÄ¢Àº 13 Àå¿¡ Á¤ÀǵǾî ÀÖ´Ù. ÀÚ¿øÀ» ij½ÃÇÒ ¼ö ÀÖ´Ù ÇÏ´õ¶óµµ ij½Ã°¡ ƯÁ¤ ¿ä±¸¿¡ ´ëÇÏ¿© ij½Ã µÈ »çº»À» »ç¿ëÇÒ ¼ö ÀÖ´ÂÁö ¿©ºÎ¿¡ ´ëÇÑ Ãß°¡ÀûÀÎ Á¦ÇÑ »çÇ×ÀÌ ÀÖÀ» ¼ö ÀÖ´Ù. first-hand(Á÷Á¢) ÀÀ´äÀÌ Á÷Á¢ÀûÀ¸·Î ¿À¸ç ¿ø¼­¹ö·ÎºÎÅÍ Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ ÇÁ¶ô½Ã¸¦ °ÅÃÄ¿ÈÀ¸·Î½á ¹ß»ý ÇÏ´Â ºÒÇÊ¿äÇÑ Áö¿¬ÀÌ ¾øÀ» °æ¿ì ÀÀ´äÀÌ Á÷Á¢ ¿Â´Ù°í ÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ °ËÁõÀÌ ¿ø¼­¹ö¿¡¼­ Á÷Á¢ ÀÌ·ç¾îÁø´Ù¸é ÀÀ´äÀÌ Á÷Á¢ ¿Â´Ù°í ÇÒ ¼ö ÀÖ´Ù. explicit expiration time(¸í¹éÇÑ À¯È¿ ½Ã°£) ¿ø¼­¹ö°¡ Ãß°¡ÀûÀÎ °ËÁõ ¾øÀ̴ ij½Ã¿¡ ÀÇÇØ ¿£ÅÍƼ¸¦ ´õ ÀÌ»ó µÇµ¹·Á ÁÖÁö ¾Ê±â·Î ÇÑ ½Ã °£. Áï, ¿ø¼­¹ö°¡ ij½ÃµÈ µ¥ÀÌÅÍÀÇ À¯È¿¼ºÀ» º¸ÀåÇÒ ¼ö ÀÖ´Â ½Ã°£. [Page 10] heuristic expiration time(ÀÚµ¿À¸·Î ¼³Á¤µÇ´Â À¯È¿ ½Ã°£) ºÐ¸íÇÑ À¯È¿ ½Ã°£ÀÌ ¼³Á¤µÇ¾î ÀÖÁö ¾ÊÀ» ¶§ ij½Ã°¡ ÇÒ´çÇÏ´Â À¯È¿ ½Ã°£ age(°æ°ú ½Ã°£) ÀÀ´ä ¸Þ½ÃÁöÀÇ °æ°ú ½Ã°£Àº ¿ø¼­¹ö·ÎºÎÅÍ Àü¼ÛµÈ ÈÄ, ¶Ç´Â ¼º°øÀûÀ¸·Î °ËÁõµÈ ÈÄÀÇ ½Ã°£. freshness lifetime(½Å¼±ÇÑ ±â°£) ÀÀ´äÀÇ »ý¼º ½ÃÁ¡°ú À¯È¿½Ã°£ ¸¸±â ½ÃÁ¡ »çÀÌÀÇ ½Ã°£ ±æÀÌ fresh(½Å¼±ÇÑ) ÀÀ´äÀÇ °æ°ú ½Ã°£ÀÌ ½Å¼±ÇÑ ±â°£À» ³Ñ¾î¼­Áö ¾Ê¾ÒÀ» ¶§ ÀÀ´äÀÌ ½Å¼±ÇÏ´Ù°í ÇÒ ¼ö ÀÖ´Ù. stale(³°Àº) ÀÀ´äÀÇ °æ°ú ½Ã°£ÀÌ ½Å¼±ÇÑ ±â°£À» ³Ñ¾î¼¹´Ù¸é ÀÀ´äÀÌ ³°¾Ò´Ù°í ÇÒ ¼ö ÀÖ´Ù. semantically transparent(Àǹ̻óÀ¸·Î ºÐ¸íÇÑ) ¼º´ÉÀ» Çâ»ó½ÃÅ°°íÀÚ ÇÏ´Â ¸ñÀûÀ» Á¦¿ÜÇÏ°í ij½ÃÀÇ »ç¿ëÀÌ ¿ä±¸Çϴ Ŭ¶óÀ̾ðÆ®³ª ¿ø¼­¹ö ¿¡ ¿µÇâÀ» ¹ÌÄ¡Áö ¾ÊÀ» ¶§ ƯÁ¤ÇÑ ¿ä±¸¿¡ ´ëÇÏ¿© ij½Ã°¡ "Àǹ̻óÀ¸·Î ºÐ¸íÇÏ°Ô" ÀÛµ¿ÇÑ´Ù °í ÇÒ ¼ö ÀÖ´Ù. ij½Ã°¡ Àǹ̻óÀ¸·Î ºÐ¸íÇÒ ¶§ Ŭ¶óÀ̾ðÆ®´Â ¿ø¼­¹ö°¡ Á÷Á¢ ó¸®ÇßÀ» ¶§¿Í ¿ÏÀüÈ÷ µ¿ÀÏÇÒ ÀÀ´äÀ» ¼ö½ÅÇÏ°Ô µÈ´Ù.( hop-by-hop Çì´õ´Â Á¦¿Ü). validator(°ËÁõÀÚ) ij½Ã ¿£Æ®¸®°¡ ¿£ÅÍƼÀÇ º¹»çº»°ú µ¿ÀÏÇÑÁö ¾Ë¾Æ³»´Â µ¥ »ç¿ëÇÏ´Â ±Ô¾à ¿ä¼Ò(¿¹¸¦ µé¸é ¿£ÅÍƼ ű׳ª Last-Modified ½Ã°£) 1.4 Overall Operation HTTP ±Ô¾àÀº ¿ä±¸/ÀÀ´ä ±Ô¾àÀÌ´Ù. Ŭ¶óÀ̾ðÆ®´Â ¿ä±¸ method, URI, ±Ô¾à ¹öÀüÀÇ ÇüÅ·Π¼­ ¹ö¿¡ ¿ä±¸ ¸Þ½ÃÁö¸¦ Àü¼ÛÇÑ´Ù. ¿ä±¸ º¯°æÀÚ, Ŭ¶óÀ̾ðÆ® Á¤º¸, ¼­¹ö¿ÍÀÇ Á¢¼Ó¿¡ »ç¿ëµÇ´Â º»¹® ³»¿ëÀ» Æ÷ÇÔÇÏ´Â MIME À¯ÇüÀÇ ¸Þ½ÃÁö°¡ µÚµû¸¥´Ù. ¼­¹ö´Â ¸Þ½ÃÁöÀÇ ±Ô¾à ¹öÀü ¹× ¼º°ø ¶Ç´Â ½ÇÆÐ Äڵ带 Æ÷ÇÔÇÏ´Â »óÅ Á¤º¸·Î¼­ ÀÀ´äÇÑ´Ù. ¼­¹ö Á¤º¸, ¿£ÅÍƼ ¸ÞŸ Á¤º¸, Entity-Body ³»¿ëÀ» Æ÷ÇÔÇÏ´Â MIME À¯ÇüÀÇ ¸Þ½ÃÁöµµ µÚµû¸¥´Ù. [Page 11] ´ëºÎºÐÀÇ Åë½ÅÀº »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ ±¸µ¿Çϸç ƯÁ¤ ¿ø¼­¹ö¿¡ Àû¿ëÇÒ ¿ä±¸·Î ±¸¼ºµÇ¾î ÀÖ´Ù. °¡Àå ´Ü¼øÇÑ °æ¿ì ÀÌ°ÍÀº »ç¿ëÀÚ ¿¡ÀÌÀüÆ®(UA)¿Í ¿ø¼­¹ö(O) »çÀÌÀÇ ´ÜÀÏ Á¢¼Ó(v)¿¡ ÀÇÇØ ¼ºÃë ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. request chain ----------------------> UA ---------------- v ------------------- O <--------------------- response chain Á» ´õ º¹ÀâÇÑ »óȲÀº Request/Response chain¿¡ Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ Áß°£ ¸Å°³ÀÚ°¡ ÀÖ´Â °æ¿ì ÀÌ´Ù. ÇÁ¶ô½Ã, °ÔÀÌÆ®¿þÀÌ ¹× ÅͳÎÀÇ ¼¼ °¡Áö ÀϹÝÀûÀÎ Áß°£ ¸Å°³ ÇüÅ°¡ ÀÖ´Ù. ÇÁ¶ô½Ã´Â Àü¼Û ¿¡ÀÌÀüÆ®·Î Àý´ë Ç¥Çö ÇüÅÂÀÇ URI ¿ä±¸¸¦ ¼ö½ÅÇÏ¿© ¸Þ½ÃÁöÀÇ Àüü ȤÀº ºÎºÐÀ» ÀçÀÛ¼ºÇÑ ÈÄ URI°¡ Ç¥½ÃÇÏ´Â ¼­¹ö·Î À籸¼ºµÈ ¿ä±¸ ¸Þ½ÃÁö¸¦ Àü´ÞÇÑ´Ù. °ÔÀÌÆ®¿þÀÌ´Â ¼ö½Å ¿¡ÀÌÀüÆ®·Î ´Ù ¸¥ ¼­¹ö À§ÀÇ °èÃþ ¿ªÇÒÀ» ¼öÇàÇϸç ÇÊ¿äÇÏ´Ù¸é ¿ø¼­¹öÀÇ ±Ô¾à¿¡ ¸Âµµ·Ï ¿ä±¸¸¦ Çؼ®Çϱ⵵ ÇÑ´Ù. ÅͳÎÀº ¸Þ½ÃÁö¸¦ º¯°æÇÏÁö ¾Ê°í µÎ ¿¬°á ÁöÁ¡À» ¿¬°áÇÏ´Â Á߰迪ÇÒÀ» ¼öÇàÇÑ´Ù. ÅͳÎÀº Åë½Å(communication)ÀÌ Áß°£ ¸Å°³ÀÚ°¡ ¸Þ½ÃÁöÀÇ ³»¿ëÀ» ÀÌÇØÇÒ ¼ö ¾øÀ» ¶§¶óµµ ¹æÈ­º®°ú °°Àº Áß°£ ¸Å°³ÀÚ¸¦ Åë°úÇÒ ÇÊ¿ä°¡ ÀÖÀ» ¶§ »ç¿ëÇÑ´Ù. request chain -------------------------------------> UA -----v----- A -----v----- B -----v----- C -----v----- O <------------------------------------ response chain À§ÀÇ µµÇ¥´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ®¿Í ¿ø¼­¹ö »çÀÌÀÇ ¼¼ Áß°£ ¸Å°³ÀÚ(A, B ¹× C)¸¦ º¸¿© ÁØ´Ù. Àüü °í¸®¸¦ Åë°úÇÏ´Â ¿ä±¸ ¶Ç´Â ÀÀ´ä ¸Þ½ÃÁö´Â ³× °³ÀÇ º°µµ ¿¬°áÀ» Åë°úÇÏ°Ô µÈ´Ù. ¸î¸î HTTP Åë½Å ¼±Åà »çÇ×Àº ÃÖ°í ±ÙÁ¢ °Å¸®ÀÇ ºñÅͳΠÀÌ¿ô°úÀÇ Åë½Å, ¿¬¼âÀû ¿¬°á °í¸®ÀÇ ¸¶Áö¸· ºÎºÐ ¿¡¸¸ ¶Ç´Â ¿¬°á °í¸®¿¡ µû¸£´Â ¸ðµç ¿¬°á¿¡ Àû¿ëµÇ±â ¶§¹®¿¡ ÀÌ·¯ÇÑ ±¸ºÐÀº Áß¿äÇÏ´Ù. ±×¸²ÀÌ ¼±ÇüÀÌÁö¸¸ °¢ Âü¿©ÀÚ´Â º¹¼öÀÇ µ¿½Ã Åë½Å¿¡ Âü¿©ÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î B´Â AÀÇ ¿ä±¸¸¦ ó ¸®ÇÔ°ú µ¿½Ã¿¡ A¸¦ Á¦¿ÜÇÑ º¹¼öÀÇ Å¬¶óÀ̾ðÆ® ¿ä±¸¸¦ ¼ö½ÅÇÏ°í/¼ö½ÅÇϰųª C ÀÌ¿ÜÀÇ ¼­¹ö¿¡ °Ô ¿ä±¸¸¦ Àü¼ÛÇÒ ¼ö ÀÖ´Ù. ÅͳΠ¿ªÇÒÀ» ¼öÇàÇÏ´Â °ÍÀÌ ¾Æ´Ñ Åë½Å¿¡ Âü¿©ÇÏ´Â ¾î¶² °ÍÀÌ¶óµµ ¿ä±¸¸¦ ó¸®ÇÒ ¶§ ³»ºÎ ij½Ã ¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ij½ÃÀÇ È¿°ú´Â ¿¬°á °í¸®¸¦ µû¶ó Âü°¡ÀÚ Áß Çϳª°¡ ÇØ´çµÇ´Â ¿ä±¸¿¡ Àû¿ë ÇÒ ¼ö Àִ ij½ÃµÈ ÀÀ´äÀ» °®°í ÀÖ´Ù¸é Request/Response chainÀÌ Âª¾ÆÁø´Ù. ´ÙÀ½Àº UA ¶Ç´Â A °¡ ij½ÃÇÏÁö ¾ÊÀº ¿ä±¸¿¡ ´ëÇÑ O (C¸¦ °æÀ¯) Ãʱâ ÀÀ´äÀÇ »çº»À» B°¡ °¡Áö°í ÀÖÀ» ¶§ÀÇ °á°ú °í¸®¸¦ ¼³¸íÇÏ°í ÀÖ´Ù. [Page 12] request chain ---------> UA -----v----- A -----v----- B - - - - - - C - - - - - - O <-------- response chain º¸Åë ¸ðµç ÀÀ´äÀ» ij½ÃÇÒ ¼ö ÀÖ´Â °ÍÀº ¾Æ´Ï¸ç ¾î¶² ¿ä±¸´Â ij½Ã ¹æ½Ä¿¡ Ưº° ¿ä±¸¸¦ ÇÏ´Â º¯ °æÀÚ¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. 13 Àå¿¡ ij½Ã ¹æ½Ä°ú ij½ÃÇÒ ¼ö ÀÖ´Â ÀÀ´ä¿¡ ´ëÇÑ ÇÊ¿ä Á¶°ÇÀÌ ±â·ÏµÇ ¾î ÀÖ´Ù. »ç½Ç»ó World Wide Web¿¡´Â ÇöÀç ½ÇÇèµÇ°í Àְųª ¹èÆ÷µÇ°í Àִ ij½Ã¿Í ÇÁ¶ô½ÃÀÇ ´Ù¾çÇÑ ¾Æ Å°ÅØÃÄ¿Í È¯°æ¼³Á¤ ¹æ¹ýÀÌ ÀÖ´Ù. ÀÌ·¯ÇÑ °Í Áß¿¡´Â ´ë·ú°£ ´ë¿ªÆøÀ» Àý¾àÇϱâ À§ÇÑ ÇÁ¶ô½Ã ij ½ÃÀÇ ±¹°¡Àû °èÃþ, ij½Ã ¿£Æ®¸®¸¦ ¹èÆ÷Çϰųª º¹¼ö·Î ¹èÆ÷ÇÏ´Â ½Ã½ºÅÛ, CD-ROM µîÀ» ÅëÇÏ¿© ij½Ã µÈ µ¥ÀÌÅÍÀÇ ÇϺΠ¼¼Æ®¸¦ ¹èÆ÷ÇÏ´Â Á¶Á÷ µîÀÌ ÀÖ´Ù. HTTP ½Ã½ºÅÛÀº ±¤´ë¿ª ¿¬°áÀ» ÅëÇÑ ±â¾÷ ÀÎÆ®¶ó³Ý, Àúµ¿·Â ¹«¼± ¿¬°áÀÇ PDA¸¦ ÅëÇÑ ¿¬°á ¹× °£ÇæÀûÀÎ ¿¬°á¿¡ »ç¿ëµÈ´Ù. HTTP/1.1 ÀÇ ¸ñÀûÀº °íµµÀÇ ½Å·Ú¼º°ú ½Å·Ú¼ºÀ» È®º¸ÇÒ ¼ö ¾ø´Ù¸é ½Å·ÚÇÒ ¼ö ÀÖ´Â ½ÇÆÐÀÇ Ç¥½Ã ±â´ÉÀ» Áö´Ñ À¥ ÀÀ¿ëÇÁ·Î±×·¥À» °³¹ßÇÏ´Â °³¹ßÀÚÀÇ ¿ä±¸¸¦ ÃæÁ·ÇÏ´Â ±Ô¾à ±¸Á¶¹°À» »õ·Î ¼Ò°³Çϸ鼭 µµ ÀÌ¹Ì ¹èÆ÷µÈ ´Ù¾çÇÑ È¯°æÀ» Áö¿øÇÏ´Â °ÍÀÌ´Ù. HTTP Åë½ÅÀº ´ë°³ TCP/IP ¿¬°áÀ» ÅëÇÏ¿© ÀÌ·ç¾îÁø´Ù. ±âº» Æ÷Æ®´Â TCP 80 ÀÌÁö¸¸ ´Ù¸¥ Æ÷Æ® ¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. ±×·¯³ª ÀÌ°ÍÀº HTTP°¡ ÀÎÅÍ³Ý »óÀÇ ´Ù¸¥ ±Ô¾àÀ̳ª ´Ù¸¥ ³×Æ®¿öÅ© À§¿¡ ¼­ ±¸ÇöµÉ ¼ö ¾ø°Ô ÇÏ´Â °ÍÀº ¾Æ´Ï´Ù. HTTP´Â ´Ü¼øÈ÷ ½Å·ÚÇÒ ¼ö ÀÖ´Â Àü¼Û ¼ö´ÜÀ» °¡Á¤ÇÒ »Ó À̸ç ÀÌ·¯ÇÑ º¸ÀåÀ» ÇØ ÁÙ ¼ö ÀÖ´Â ¾î¶°ÇÑ ±Ô¾àÀ» »ç¿ëÇصµ µÈ´Ù. HTTP/1.1ÀÇ ¿ä±¸ ÀÀ´ä ±¸Á¶ ¸¦ Àû¿ëÇÏ°íÀÚ ÇÏ´Â ±Ô¾àÀÇ Àü¼Û µ¥ÀÌÅÍ ´ÜÀ§·Î ¹èÄ¡(mapping)ÇÏ´Â °ÍÀº ÀÌ ±Ô°ÝÀÇ ¹üÀ§ ¹ÛÀÇ °ÍÀÌ´Ù. HTTP/1.0¿¡¼­ ´ëºÎºÐÀÇ ±¸Çö ¹æ½ÄÀº °¢°¢ÀÇ ¿ä±¸/ÀÀ´ä ±³È¯¿¡ »õ·Î¿î Á¢¼ÓÀ» »ç¿ëÇÏ´Â °ÍÀÌ ´Ù. ¶ÇÇÑ HTTP/1.1¿¡¼­´Â ÇϳªÀÇ Á¢¼ÓÀ» Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ ¿ä±¸/ÀÀ´ä ±³È¯¿¡ »ç¿ëÇÒ ¼ö ÀÖ À¸³ª ¿¬°áÀÌ ¿©·¯ °¡Áö ÀÌÀ¯·Î ´ÜÀýµÉ ¼ö ÀÖ´Ù.( 8.1 Àý ÂüÁ¶) 2 ±âÈ£ °ü·Ê ¹× ÀϹÝÀûÀÎ ¹®¹ý 2.1 Ãß°¡µÈ BNF ÀÌ ¹®¼­¿¡¼­ ¸í½ÃµÈ ¸ðµç ¸ÞÄ¿´ÏÁòÀº ¼³¸íÇü ¹®±¸·Î¼­ RFC 822 [9]¿¡¼­ »ç¿ëÇÑ °Í°ú À¯»çÇÑ Ãß°¡µÈ Backus-Naur Form (BNF)À¸·Î ¼³¸íµÇ¾î ÀÖ´Ù. ±¸ÇöÀÚ´Â ÀÌ ±Ô°ÝÀ» ÀÌÇØÇϱâ À§ÇÏ¿© ÀÌ·¯ ÇÑ ±âÈ£¿¡ Àͼ÷ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. Ãß°¡µÈ BNF´Â ´ÙÀ½ÀÇ ±¸¼º ¿ä¼Ò¸¦ Æ÷ÇÔÇÑ´Ù. [Page 13] name = definition ±ÔÄ¢ÀÇ À̸§ÀÌ À̸§ ±× ÀÚü(µÑ·¯½Î´Â "<" ¹× ">"ÀÌ ¾ø´Â)À̸ç Á¤ÀÇ ºÎºÐ°ú´Â µîÈ£ ¹®ÀÚ("=") ·Î ±¸º°µÈ´Ù. °è¼ÓµÇ´Â °ø¹é ¹®ÀÚ´Â ±ÔÄ¢¿¡ ´ëÇÑ ±ÔÁ¤ÀÌ ÇÑ ÁÙ ÀÌ»ó¿¡ °ÉÃÄ ÀÖÀ½À» Ç¥½ÃÇÏ ´Â µé¿©¾²±âÀÇ °æ¿ì¿¡¸¸ Àǹ̰¡ ÀÖ´Ù. SP, LWS, HT, CRLF, DIGIT, ALPHA µî°ú °°Àº ¸î¸î ±âº» ±ÔÄ¢Àº ´ë¹®Àڷθ¸ »ç¿ëÇÑ´Ù. Á¤Àǹ® ³»¿¡¼­ ¼Ò°ýÈ£´Â ±ÔÄ¢ À̸§ÀÇ »ç¿ë ±¸º°À» ¿ëÀÌÇÏ°Ô ÇØÁÙ °æ¿ì¿¡´Â ¾ðÁ¦µçÁö »ç¿ëÇÑ´Ù. "literal" ÀÎ¿ë ºÎÈ£·Î ¹®ÀÚ ÅؽºÆ® ÁÖÀ§¸¦ °¨½Ñ´Ù. º°µµÀÇ ¾ð±ÞÀÌ ¾øÀ¸¸é ¹®ÀÚ´Â ´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÑ ´Ù. rule1 | rule2 ¸·´ë ("|")·Î ±¸ºÐµÈ ¿ä¼Ò´Â ¼±Åà »çÇ×ÀÌ´Ù. ¿¹¸¦ µé¾î "yes |no" ´Â yes ³ª no¾î´À °ÍÀÌµç °¡ ´ÉÇÏ´Ù. (rule1 rule2) °ýÈ£·Î µÑ·¯½Ñ ¿ä¼Ò´Â ´ÜÀÏ ¿ä¼Ò·Î Ãë±ÞÇÑ´Ù. µû¶ó¼­ "(elem (foo | bar) elem)"´Â "elem foo elem" ¹× "elem bar elem"ÀÇ ÅäÅ« ¼ø¼­¸¦ Çã¿ëÇÑ´Ù. *rule ÀÌ°ÍÀº ¹Ýº¹À» ÀǹÌÇÏ´Â °ÍÀ¸·Î¼­ µÚÀ̾ ³ª¿Ã #rule°ú È¥µ¿À» ÀÏÀ¸Å°´Â Ç¥Çö ¹æ½ÄÀÌ¹Ç ·Î À¯ÀÇÇØ¾ß ÇÑ´Ù. ¹Ýº¹À» ÅëÇØ ÀÌ·ç¾îÁö´Â °á°ú´Â ÇϳªÀÇ ´Ü¾î³ª ¼ö¿Í °°ÀÌ ÇÑ °³ ¿ä¼ÒÀÇ Ç¥Çö ÇüÅ·ΠµÇ´Â °ÍÀ̸ç, #rule¿¡¼­´Â ¶È°°Àº ¹Ýº¹ÀÌÁö¸¸ ¿©·¯ °³ ´Ü¾î³ª ¼öÀÇ ¿­ ÇüÅ ¿Í °°ÀÌ ¿©·¯ °³ ¿ä¼ÒÀÇ ³ª¿­ ÇüÅ·ΠǥÇöµÇ´Â °ÍÀÌ´Ù. *element¿Í °°Àº Ç¥±â ¹æ ¹ýÀ¸·Î ¾²ÀδÙ. ÀÌ°ÍÀº Àû¾îµµ n°³¿Í ÃÖ´ë m°³ÀÇ ¿ä¼Ò·Î ±¸¼ºµÇ´Â ÇÑ °¡Áö °á°ú¸¦ ÀǹÌÇÑ ´Ù. Áï, 1*2DIGIT ¶ó´Â Ç¥ÇöÀº ¼ýÀÚ°¡ Àû¾îµµ ÇÑ °³ ÃÖ´ë µÎ °³·Î ±¸¼ºµÇ¾î ÇÑ °³ÀÇ ¼ö¸¦ ³ªÅ¸³½´Ù´Â ¶æÀÌ´Ù. 4´Â ÇÑ °¡Áö ¿¹À̸ç, 45µµ ÇÑ °¡Áö ¿¹°¡ µÈ´Ù. ±×·¯³ª 345ÀÇ °æ¿ì ¿¡´Â ¼ýÀÚ ¼¼ °³·Î ±¸¼ºµÈ ÇÑ °³ ¿ä¼ÒÀ̹ǷΠÃÖ´ë °¹¼ö¿¡ À§¹èµÇ¾î ÀûÇÕÇÏÁö ¾Ê´Ù. n°ú mÀº »ý·«µÉ ¼ö ÀÖÀ¸¸ç, ÀÌ °æ¿ì¿¡ nÀÇ ±âº»°ªÀº 0ÀÌ°í mÀÇ ±âº»°ªÀº ¹«ÇÑ´ëÀÌ´Ù. ±×·¯¹Ç·Î "*(element)"´Â 0°³¸¦ Æ÷ÇÔÇؼ­ ¾î¶² °³¼ö¶óµµ °¡´ÉÇÏ°í, "1*element"ÀÇ °æ ¿ì´Â ÇÑ ¿ä¼ÒÀÇ Ç¥Çö¿¡ ÀÖ¾î Àû¾îµµ ÇÑ °³´Â ÀÖ¾î¾ß Çϸç ÃÖ´ë °¹¼ö¿¡´Â Á¦ÇÑÀÌ ¾ø´Ù. [rule] ´ë°ýÈ£´Â ¼±Åà ¿ä¼Ò¸¦ µÑ·¯ ½Ñ´Ù. "[foo bar]" ´Â "*1(foo bar)"¿Í µ¿ÀÏÇÏ´Ù. N rule ƯÁ¤ Ƚ¼öÀÇ ¹Ýº¹À» ³ªÅ¸³½´Ù. "(element)" Àº "*(element)"¿Í µ¿ÀÏÇÏ´Ù. Áï ¿ä¼Ò(element)°¡ Á¤È®ÇÏ°Ô ¹ø Ç¥½ÃµÈ´Ù. µû¶ó¼­ 2 DIGIT ´Â 2 ÀÚ¸® ¼ýÀÚ, 3 ALPHA ´Â ¼¼ °³ÀÇ ¾ËÆĺª ¹®ÀÚ·Î ±¸¼ºµÈ ¹®ÀÚ¿­ÀÌ´Ù. #rule ¾Õ¼­ ¼³¸íÇÑ °Íó·³ ¹Ýº¹À» ³ªÅ¸³»±ä ÇÏÁö¸¸ ¿ä¼ÒµéÀÇ ³ª¿­·Î¼­ Ç¥ÇöµÇ´Â °ÍÀÌ´Ù. Áï, 1#DIGIT ¶ó°í ÇÏ¸é ¿©·¯ °³ÀÇ ¼ö·Î ±¸¼ºµÈ ¼ö¿­·Î¼­ Ç¥ÇöµÇ´Âµ¥, ÃÖ¼Ò ÇÑ °³ÀÇ ¼ö´Â ÀÖ¾î ¾ß ÇÏ°í ÃÖ´ë °¹¼ö´Â Á¦ÇÑÀÌ ¾ø´Â ¼ö¿­ÀÌ µÈ´Ù. °¢ ¿ä¼Òµé »çÀÌÀÇ ±¸ºÐÀº ","¿Í LWS¸¦ ÀÌ ¿ëÇϴµ¥, ¿©·¯ °³ÀÇ ³ª¿­ ÇüŸ¦ ½±°Ô Ç¥ÇöÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù. ¿¹¸¦ µé¾î, (*LWS element *(*LWS "," *LWS element)) ÀÌ°ÍÀ» °£´ÜÇÏ°Ô 1#element ÀÌ¿Í °°ÀÌ Ç¥ÇöÇÒ ¼ö ÀÖ´Ù. ¶Ç ´Ù¸¥ ¿¹¸¦ µéÀÚ¸é, 1#2(2DIGIT)ÀÌ°ÍÀº ¼ýÀÚ µÎ °³·Î ±¸¼ºµÈ ¼ö°¡ Àû¾îµµ ÇÑ °³°¡ ÀÖ¾î¾ß Çϸç ÃÖ´ë µÎ °³±îÁö °¡´ÉÇÏ´Ù´Â °ÍÀÌ´Ù. Áï, 23 ÀÌ·¸°Ô Ç¥ÇöµÉ ¼öµµ ÀÖ°í, 23, 56 ÀÌ·¸°Ô µÎ °³·Î Ç¥ÇöµÉ ¼öµµ ÀÖ´Ù. ÀÌ°ÍÀÌ *rule°úÀÇ Â÷ÀÌÁ¡ÀÌ°í, #rule ¿¡¼­µµ "#element" ÀÇ ±¸¼ºÀÌ ±×´ë·Î ¼º¸³ÇÑ´Ù. ÀÌ¿¡ ´ëÇÑ ¼³¸íÀº *rule ÀÇ °æ¿ì¿Í °°´Ù. "," ¸¦ ÀÌ¿ëÇÏ¿© ³ª¿­ÇÔ¿¡ ÀÖ¾î, null element°¡ Çã¿ëµÈ´Ù. ¿¹¸¦ µé¾î, 1#3(2DIGIT)°ú °° Àº Ç¥Çö½Ä¿¡ ´ëÇØ23, , 56, 34 ÀÌ·¸°Ô null element Ç¥½Ã°¡ °¡´ÉÇÏÁö¸¸, ½ÇÁ¦ °¹¼ö´Â ¼¼ °³·Î¼­ °£ÁֵȴÙ. µû¶ó¼­ ÃÖ¼Ò ÇÑ °³ ÃÖ´ë ¼¼ °³ÀÇ Á¦ÇÑ¿¡ À§¹èµÇÁö ¾Ê´Â´Ù. [Page 14] ; comment ±ÔÄ¢ ¹®Àå¿¡¼­ ¿À¸¥ÂÊÀ¸·Î ¾à°£ ¶³¾îÁ® ÀÖ´Â ¼¼¹ÌÄÝ·ÐÀº ÇØ´ç ¶óÀÎÀÇ ³¡¿¡±îÁö °è¼ÓµÇ´Â ÁÖ ¼®ÀÇ ½ÃÀÛÀ» ÀǹÌÇÑ´Ù. ÀÌ°ÍÀº ±Ô°Ý°ú º´ÇàÇÏ¿© ÀûÀýÇÑ ¼³¸íÀ» Æ÷ÇÔ½ÃÅ°±â À§ÇÑ ¹æ¹ýÀÌ´Ù. implied *LWS µÎ °³ÀÇ ÀÎÁ¢ÇÑ ´Ü¾î (token or quoted-string) ¶Ç´Â ÀÎÁ¢ÇÑ ÅäÅ«(tokens)°ú ½Äº°ÀÚ (tspecials) »çÀÌ¿¡ LWS (linear whitespace)°¡ Æ÷Ç﵃ ¼ö ÀÖ´Ù. ¿©±â¼­ µÎ °³ÀÇ ÅäÅ« »çÀÌ¿¡ ´Â ¹Ýµå½Ã Àû¾îµµ ÇϳªÀÇ ½Äº°ÀÚ°¡ Á¸ÀçÇÏ¿© °¢±â ÇϳªÀÇ ÅäÅ«À¸·Î °£ÁÖµÇÁö ¾Ê°Ô²û ±¸º°µÇ ¾î¾ß ÇÑ´Ù. 2.2 ±âº» ±ÔÄ¢ ´ÙÀ½ÀÇ ±ÔÄ¢Àº ±âº»ÀûÀÎ ºÐ¼® ±¸Á¶¸¦ ¼³¸íÇϱâ À§ÇØ ÀÌ ±Ô°Ý Àü¹Ý¿¡ °ÉÃÄ »ç¿ëµÇ°í ÀÖ´Ù. US- ASCII·Î ÄÚµåÈ­ µÈ ¹®ÀÚ ÁýÇÕÀº ANSI X3.4-1986 [21]¿¡ ÀÇÇÏ¿© ±ÔÁ¤µÇ¾ú´Ù. OCTET = <¸ðµç 8-bit ¿¬¼Ó µ¥ÀÌÅÍ> CHAR = <¸ðµç US-ASCII ¹®ÀÚ (octets 0 - 127)> UPALPHA = <¸ðµçUS-ASCII ´ë¹®ÀÚ "A".."Z"> LOALPHA = <¸ðµç US-ASCII ¼Ò¹®ÀÚ "a".."z"> ALPHA = UPALPHA | LOALPHA DIGIT = <¸ðµç US-ASCII ¼ýÀÚ "0".."9"> CTL = <¸ðµç US-ASCII Á¦¾î ¹®ÀÚ (octets 0 - 31) ¹× DEL (127)> CR = LF = SP = HT = <"> = [Page 15] HTTP/1.1Àº ¿¬¼ÓÀûÀÎ CR LF¸¦ Entity-Body¸¦ (ºÎ·Ï 19.3 ÂüÁ¶) Á¦¿ÜÇÑ ¸ðµç ±Ô¾à ¿ä¼ÒÀÇ ¶óÀÎ ¸¶°¨ ºÎÈ£·Î Á¤ÀÇÇÑ´Ù. Entity-Body ³»¿¡¼­ÀÇ ¶óÀÎ ¸¶°¨ ºÎÈ£´Â 3.7 Àý¿¡¼­ ¼³¸íµÈ °Í ó·³ ¿¬°üµÈ media type¿¡ ÀÇÇÏ¿© Á¤ÀÇÇÑ´Ù. CRLF = CR LF HTTP/1.1 Çì´õ´Â °è¼ÓµÇ´Â ¶óÀÎÀÌ ½ºÆäÀ̽º³ª ¼öÆò ÅÇÀ¸·Î ½ÃÀÛÇÑ´Ù¸é º¹¼öÀÇ ¶óÀο¡ °ÉÃÄ °è ¼Ó ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù. Æúµù(folding)À» Æ÷ÇÔÇÑ ¸ðµç ¼±Çü °ø¹é ½ºÆäÀ̽º´Â SP¿Í µ¿ÀÏÇÑ Àǹ̸¦ °¡Áø´Ù. LWS = [CRLF] 1*( SP | HT ) TEXT ±ÔÄ¢Àº ¸Þ½ÃÁö ºÐ¼®±â°¡ Çؼ®ÇÏÁö ¾Êµµ·Ï Á¤ÀÇÇÑ ¼³¸í ÇÊµå ³»¿ëÀ̳ª °ª¿¡ »ç¿ëÇÑ´Ù. *TEXTÀÇ ´Ü¾î´Â RFC 1522 [14]ÀÇ ±ÔÄ¢¿¡ µû¶ó ÀÎÄÚµùµÇ¾úÀ» °æ¿ì¿¡¸¸ ISO 8859-1 [22] ÀÌ¿Ü ¹® ÀÚ¼¼Æ®ÀÇ ¹®ÀÚ¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. TEXT = < CTLsÀ» Á¦¿ÜÇÑ (±×·¯³ª LWS´Â Æ÷ÇÔ) ¸ðµç OCTET> 16 Áø¼ö ¼ýÀÚ´Â ¸î¸î ±Ô¾à ¿ä¼Ò¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Ù. HEX = "A" | "B" | "C" | "D" | "E" | "F" | "a" | "b" | "c" | "d" | "e" | "f" | DIGIT ¸¹Àº HTTP/1.1 Çì´õ ÇÊµå °ªÀº LWS³ª Ư¼ö ¹®ÀÚ·Î ±¸º°µÇ´Â ´Ü¾î·Î ±¸¼ºµÇ¾î ÀÖ´Ù. ÆĶó¹Ì ÅÍ °ª ³»¿¡¼­ »ç¿ëÇÒ ÀÌ·¯ÇÑ Æ¯º° ¹®ÀÚ´Â ¹Ýµå½Ã ÀÎ¿ë ¹®ÀÚ¿­ ³»¿¡ ÀÖ¾î¾ß ÇÑ´Ù. token = 1* tspecials = "(" | ")" | "<" | ">" | "@" | "," | ";" | ":" | "\" | <"> | "/" | "[" | "]" | "?" | "=" | "{" | "}" | SP | HT ÁÖ¼®Àº ÁÖ¼®¹®À» °ýÈ£·Î µÑ·¯½Î¼­ ¸î¸î HTTP Çì´õ Çʵ忡 Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. ÁÖ¼®Àº "comment"¸¦ ÇÊµå °ª Á¤ÀÇÀÇ ÇÑ ºÎºÐÀ¸·Î Æ÷ÇÔÇÏ´Â Çʵ忡¼­¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ´Ù¸¥ ÇÊµå ¿¡¼­ °ýÈ£´Â ÇÊµå °ªÀÇ ÀϺηΠ°£ÁֵȴÙ. comment = "(" *( ctext | comment ) ")" ctext = < "(" and ")"À» Á¦¿ÜÇÑ ¸ðµç TEXT > [Page 16] ÅؽºÆ® ¹®ÀÚ¿­ÀÌ ÀÌÁß ÀÎ¿ë ºÎÈ£¸¦ »ç¿ëÇÏ¿© ÀοëµÇ¾úÀ¸¸é ´ÜÀÏ ´Ü¾î·Î °£ÁÖÇÑ´Ù. quoted-string = ( <"> *(qdtext) <"> ) qdtext = <<">À» Á¦¿ÜÇÑ ¸ðµç TEXT> ¹é½½·¡½Ã ¹®ÀÚ("\")´Â ÀοëµÈ ¹®ÀÚ¿­À̳ª ÁÖ¼® ³»¿¡¼­¸¸ ´ÜÀϹ®ÀÚ ÀÎ¿ë ¸ÞÄ¿´ÏÁòÀ¸·Î¼­ »ç¿ëÇÒ ¼ö ÀÖ´Ù. quoted-pair = "\" CHAR 3 ±Ô¾à ÆĶó¹ÌÅÍ 3.1 HTTP ¹öÀü HTTP´Â "<ÁÖ¿äÇÑ º¯°æ>.<»ç¼ÒÇÑ º¯°æ>" ¹øÈ£ ü°è¸¦ ±Ô¾àÀÇ ¹öÀüÀ» Ç¥½ÃÇÒ ¶§ »ç¿ëÇÑ´Ù. ±Ô ¾à ¹öÀü ºÎ¿© Á¤Ã¥Àº ¹ß¼ÛÀÚ°¡ Åë½ÅÀ» ÅëÇÏ¿© ȹµæÇÑ ±â´Éº¸´Ù´Â ¸Þ½ÃÁöÀÇ Çü½Ä ¹× °è¼ÓÀûÀÎ HTTP Åë½ÅÀ» ÀÌÇØÇÒ ´É·ÂÀÌ ÀÖÀ½À» Ç¥½ÃÇÒ ¼ö ÀÖµµ·Ï Çϱâ À§ÇØ Á¤ÀǵǾú´Ù. ´Ü¼øÈ÷ È®ÀåÇÒ ¼ö ÀÖ´Â ÇÊµå °ªÀ» Ãß°¡Çϰųª Åë½Å ¹æ½Ä¿¡ ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê´Â ¸Þ½ÃÁö ±¸¼º ¿ä¼Ò¸¦ Ãß°¡ÇßÀ» °æ¿ì¿¡´Â ¹öÀü ¼ýÀÚ¿¡ º¯È­°¡ ¾ø´Ù. <»ç¼ÒÇÑ º¯°æ> ¼ýÀÚ´Â ÀϹÝÀûÀÎ ¸Þ½ÃÁö ºÐ¼® ¾Ë°í¸®Áò¿¡ ´ëÇÑ º¯È­´Â ¾øÁö¸¸ ¸Þ½ÃÁö Àǹ̿¡ ´ëÇÑ Ãß°¡ »çÇ×À̳ª ¹ß¼ÛÀÚÀÇ Ãß°¡ÀûÀÎ ´É·ÂÀ» ÀǹÌÇÏ´Â ±Ô¾à Ãß°¡ ±â´É¿¡ ´ëÇÑ º¯°æÀÌ ÀÖÀ» °æ¿ì Áõ°¡µÈ´Ù. <ÁÖ¿äÇÑ º¯°æ> ¼ýÀÚ´Â ±Ô¾à ³»ºÎÀÇ ¸Þ½Ã Áö Çü½ÄÀÌ º¯°æµÇ¾úÀ» ¶§ Áõ°¡ÇÑ´Ù. HTTP ¸Þ½ÃÁöÀÇ ¹öÀüÀº ¸Þ½ÃÁö ù ¶óÀÎÀÇ HTTP-Version Çʵ忡 Ç¥½ÃµÈ´Ù. HTTP-Version = "HTTP" "/" 1*DIGIT "." 1*DIGIT ÁÖ¿ä ¹× »ç¼ÒÇÑ ºÎºÐÀ» Ç¥½ÃÇÏ´Â ¼ýÀÚ´Â ¹Ýµå½Ã º°µµÀÇ Á¤¼ö °ªÀ¸·Î ±¸ºÐµÇ¾î¾ß Çϸç 10 ´ÜÀ§ ÀÌ»óÀ¸·Î Áõ°¡ÇÒ ¼ö ÀÖÀ½À» ÁÖÀÇÇØ¾ß ÇÑ´Ù. µû¶ó¼­ HTTP/2.4 Àº HTTP/2.13º¸´Ù ÀÌÀü ¹öÀüÀÌ ¸ç ¶ÇÇÑ HTTP/12.3º¸´Ù ÀÌÀü ¹öÀüÀÌ´Ù. ¼ö½ÅÃø¿¡¼­´Â ¾Õ ºÎºÐ¿¡ ³ª¿À´Â 0À» ¹Ýµå½Ã ¹«½ÃÇØ¾ß Çϸç Àü¼ÛÇؼ­´Â ¾È µÈ´Ù. ÀÌ ±Ô°ÝÀÌ ±ÔÁ¤ÇÏ´Â ´ë·Î ¿ä±¸³ª ÀÀ´ä ¸Þ½ÃÁö¸¦ Àü¼ÛÇÏ´Â ¾ÖÇø®ÄÉÀ̼ÇÀº ¹Ýµå½Ã HTTP- VersionÀ» "HTTP/1.1"·Î ¼³Á¤ÇØ¾ß ÇÑ´Ù. ÀÌ ¹öÀü ¹øÈ£¸¦ »ç¿ëÇÏ´Â °ÍÀº ¹ß¼ÛÇÏ´Â ¾ÖÇø®ÄÉ À̼ÇÀÌ ÃÖ¼ÒÇÑ ºÎºÐÀûÀ¸·Î´Â ÀÌ ±Ô°ÝÀ» µû¸£°í ÀÖÀ½À» Ç¥½ÃÇÑ´Ù. ¾ÖÇø®ÄÉÀ̼ÇÀÇ HTTP ¹öÀüÀº ÇØ´ç ÇÁ·Î±×·¥ÀÌ ÃÖ¼ÒÇÑÀÇ Á¶°ÇÀ¸·Î »óÈ£ µ¿ÀÛÀ» Áö¿øÇÒ ¼ö ÀÖ ´Â ÃÖ°í HTTP ¹öÀü °ªÀÌ´Ù. [Page 17] ÇÁ¶ô½Ã ¹× °ÔÀÌÆ®¿þÀÌ ÇÁ·Î±×·¥ÀÇ ±Ô¾à ¹öÀüÀÌ ¾ÖÇø®ÄÉÀ̼ǰú »óÀÌÇÒ °æ¿ì ¸Þ½ÃÁö¸¦ Àü´ÞÇÒ ¶§ ÁÖÀÇÇØ¾ß ÇÑ´Ù. ±Ô¾à ¹öÀüÀº ¹ß¼ÛÀÚÀÇ ±Ô¾à ´É·ÂÀ» Ç¥½ÃÇϱ⠶§¹®¿¡ ÇÁ¶ô½Ã/°ÔÀÌÆ®¿þÀÌ´Â ½ÇÁ¦ ÀÚ½ÅÀÇ ¹öÀüº¸´Ù ³ôÀº ¹öÀü Ç¥½Ã¸¦ »ç¿ëÇÏ¿© ¸Þ½ÃÁö¸¦ ¹ß¼ÛÇؼ­´Â Àý´ë·Î ¾È µÈ´Ù. »óÀ§ ¹öÀüÀÇ ¿ä±¸°¡ ¼ö½ÅµÇ¾úÀ¸¸é ÇÁ¶ô½Ã/°ÔÀÌÆ®¿þÀÌ´Â ¹Ýµå½Ã ¿ä±¸ ¹öÀüÀ» ³»¸®°Å³ª, ¿¡·¯¸¦ ¹ß¼Û Çϰųª ÅͳηΠÀüȯÇؾ߸¸ ÇÑ´Ù. ÇÁ¶ô½Ã/°ÔÀÌÆ®¿þÀÌ ¹öÀüº¸´Ù ³·Àº ¿ä±¸´Â »óÀ§ ¹öÀüÀ¸·Î ¾÷±× ·¹À̵å ÇÒ ¼ö´Â ÀÖÀ¸³ª ¿ä±¸ ¹ÞÀº ¹öÀüÀÇ ÁÖ¿ä ¹öÀüÀº ¹Ýµå½Ã µ¿ÀÏÇØ¾ß ÇÑ´Ù. ÁÖÀÇ: HTTP ¹öÀü °£ÀÇ º¯È¯Àº °ü·ÃµÈ ¹öÀüÀÌ ¿ä±¸Çϰųª ±ÝÁöÇÑ Çì´õ ÇʵåÀÇ º¯°æÀ» ¼ö¹ÝÇÒ ¼öµµ ÀÖ´Ù. 3.2 º¸ÆíÀû ÀÚ¿ø ½Äº°ÀÚ(Uniform Resource Identifier - URI) URI´Â WWW ÁÖ¼Ò, º¸ÆíÀûÀÎ ¹®¼­ ½Äº°ÀÚ, º¸ÆíÀû ÀÚ¿ø ½Äº°ÀÚ ¶Ç´Â º¸ÆíÀû ÀÚ¿ø À§Ä¡ ÁöÁ¤ ÀÚ(URL)¿Í À̸§(URN)ÀÇ °áÇÕ¿¡ À̸£±â±îÁö ¸¹Àº À̸§À¸·Î ºÒ¸®¿ì°í ÀÖ´Ù. HTTP·Î¼­´Â º¸Æí Àû ÀÚ¿ø ½Äº°ÀÚ¶õ À̸§, À§Ä¡ ¶Ç´Â ´Ù¸¥ ¾î¶² Ư¡À» ÀÌ¿ëÇÏ¿© ÀÚ¿øÀ» ½Äº°ÇØ ÁÖ´Â Á¤ÇüÈ­ µÈ ¹®ÀÚ¿­ÀÏ »ÓÀÌ´Ù. 3.2.1 ÀϹÝÀû Çü½Ä HTTP ±Ô¾à¿¡¼­ URI´Â »ç¿ëµÇ´Â »óȲ¿¡ µû¶ó Àý´ëÀûÀÎ ÇüÅ·ΠǥÇöÇÒ ¼öµµ ÀÖ°í ¾Ë·ÁÁø ±âº» URIÀÇ »ó´ëÀûÀÎ ÇüÅ·ΠǥÇöÇÒ ¼öµµ ÀÖ´Ù. ÀÌ µÎ ÇüÅ´ Àý´ëÀû URI´Â Ç×»ó ÄÝ·ÐÀÌ µÚ µû¸£ ´Â schemeÀ¸·Î ½ÃÀÛÇÑ´Ù´Â »ç½Ç·Î ±¸ºÐÇÒ ¼ö ÀÖ´Ù. URI = ( absoluteURI | relativeURI ) [ "#" fragment ] AbsoluteURI = scheme ":" *( uchar | reserved ) RelativeURI = net_path | abs_path | rel_path net_path = "//" net_loc [ abs_path ] abs_path = "/" rel_path rel_path = [ path ] [ ";" params ] [ "?" query ] path = fsegment *( "/" segment ) fsegment = 1*pchar segment = *pchar params = param *( ";" param ) param = *( pchar | "/" ) [Page 18] scheme = 1*( ALPHA | DIGIT | "+" | "-" | "." ) net_loc = *( pchar | ";" | "?" ) query = *( uchar | reserved ) fragment = *( uchar | reserved ) pchar = uchar | ":" | "@" | "&" | "=" | "+" uchar = unreserved | escape unreserved = ALPHA | DIGIT | safe | extra | national escape = "%" HEX HEX reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" extra = "!" | "*" | "'" | "(" | ")" | "," safe = "$" | "-" | "_" | "." unsafe = CTL | SP | <"> | "#" | "%" | "<" | ">" national = < ALPHA, DIGIT, reserved, extra, safe ¹×unsafeÀ» Á¦¿ÜÇÑ ¸ðµç OCTET> URL Çü½Ä°ú ÀÇ¹Ì ±ÔÁ¤¿¡ °üÇÑ Á¤º¸´Â RFC 1738 [4] ¹× RFC 1808 [11]À» µû¸£°í ÀÖ´Ù. »ó±â BNF ´Â RFC 1738¿¡ ¸í½ÃµÇ¾î ÀÖ´Â À¯È¿ÇÑ URLÀÇ ÇüÅ¿¡¼­ Çã¿ëÇÏÁö ¾Ê°í ÀÖ´Â ±¹°¡ ¹®ÀÚ ¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù. ÀÌ´Â HTTP ¼­¹ö°¡ ÁÖ¼Ò¿¡¼­ rel_path ºÎºÐÀ» Ç¥½ÃÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ ´Â ¿¹¾àµÇ¾î ÀÖÁö ¾Ê´Â ¹®ÀÚ ÁýÇÕ¿¡ Á¦ÇÑÀ» ¹ÞÁö ¾Ê°í, HTTP ÇÁ¶ô½Ã°¡ RFC 1738¿¡ ±ÔÁ¤µÇÁö ¾ÊÀº URI ¿ä±¸¸¦ ¼ö½ÅÇÒ ¼öµµ Àֱ⠶§¹®ÀÌ´Ù. HTTP ±Ô¾àÀº URIÀÇ ±æÀÌ¿¡ ´ëÇÑ ¾î¶°ÇÑ »çÀü Á¦Çѵµ µÎÁö ¾Ê´Â´Ù. ¼­¹ö´Â ¹Ýµå½Ã ÀÚ½ÅÀÌ Á¦ °øÇÏ´Â ¾î¶°ÇÑ ÀÚ¿øÀÇ URIµµ ó¸®ÇÒ ¼ö ÀÖ¾î¾ß Çϸç ÀÌ·¯ÇÑ URI¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Â GET¿¡ ±âÃÊÇÑ ÆûÀ» (GET-based forms) Á¦°øÇÑ´Ù¸é ¹«Á¦ÇÑ ±æÀÌÀÇ URI¸¦ ó¸®ÇÒ ¼ö ÀÖ¾î¾ß¸¸ ÇÑ´Ù. ¼­ ¹ö´Â URIÀÇ ±æÀÌ°¡ ÀÚ½ÅÀÇ Ã³¸®ÇÒ ¼ö ÀÖ´Â (10.4.15 Àý ÂüÁ¶) °Íº¸´Ù ±ä °æ¿ì 414 (Request-URI Too Long)¸¦ ÀÀ´äÀ¸·Î¼­ µ¹·ÁÁÖ¾î¾ß ÇÑ´Ù. ÁÖÀÇ: ¼­¹ö´Â 255 ¹ÙÀÌÆ® ÀÌ»óÀÇ URI ±æÀ̸¦ »ç¿ëÇÒ ¶§ ¸î¸î ÀÌÀü Ŭ¶óÀ̾ðÆ®³ª ÇÁ¶ô½Ã ±¸ Çö ¹æ½ÄÀÌ ÀÌ·¯ÇÑ ±æÀ̸¦ ÀûÀýÈ÷ Áö¿øÇÒ ¼ö ¾ø´Â °æ¿ì°¡ Àֱ⠶§¹®¿¡ ÁÖÀÇÇØ¾ß ÇÑ´Ù. 3.2.2 http URL "http" schemeÀº HTTP ±Ô¾àÀ» ÅëÇÏ¿© ³×Æ®¿öÅ© ÀÚ¿øÀÇ À§Ä¡¸¦ ÆľÇÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. ÀÌ ÀýÀº http URL¿¡ »ç¿ëµÇ´Â scheme ƯÀ¯ÀÇ Çü½Ä°ú Àǹ̸¦ ±ÔÁ¤ÇÑ´Ù. [Page 19] http_URL = "http:" "//" host [ ":" port ] [ abs_path ] host = <ÇÕ¹ýÀûÀÎ ÀÎÅÍ³Ý È£½ºÆ® µµ¸ÅÀÎ À̸§ ¶Ç´Â RFC 1123ÀÇ 2.1 Àý¿¡¼­ Á¤ ÀÇÇÑ ¹æ½ÄÀÇ IP ÁÖ¼Ò(Á¡À¸·Î ±¸ºÐµÈ Çü½Ä)> port = *DIGIT Æ÷Æ® Ç׸ñÀÌ ºñ¾î Àְųª ¸í½ÃµÇÁö ¾Ê¾ÒÀ¸¸é Æ÷Æ®´Â 80À¸·Î °£ÁÖÇÑ´Ù. TCP ¿¬°á ¿ä±¸¸¦ ±â´Ù ¸®°í ÀÖ´Â ÇØ´ç È£½ºÆ® ¼­¹öÀÇ ÇØ´ç Æ÷Æ®¿¡ ½Äº°µÈ ÀÚ¿øÀÌ À§Ä¡ÇÏ°í ÀÖÀ¸¸ç ÀÚ¿øÀÇ Request-URI´Â abs_path¶ó´Â °ÍÀÌ ÀǹÌÇÑ´Ù´Â ³»¿ëÀÌ´Ù. URLÀÇ IP ÁÖ¼ÒÀÇ »ç¿ëÀº °¡´ÉÇÑ ÇÑ ÇÇÇؾ߸¸ ÇÑ´Ù (RFC 1900 [24] ÂüÁ¶). URL¿¡ abs_path°¡ ¸í½ÃµÇ¾î ÀÖÁö ¾ÊÀ¸¸é ÀÚ¿ø(5.1.2 Àý)À» À§ÇÑ Request-URI·Î¼­ »ç¿ëÇÒ ¶§ ¹Ýµå½Ã "/"°¡ ÁÖ¾îÁ®¾ß ÇÑ´Ù. 3.2.3 URI ºñ±³ URI°¡ ¼­·Î ÀÏÄ¡ÇÏ´ÂÁö ¿©ºÎ¸¦ °áÁ¤Çϱâ À§ÇØ URI¸¦ ºñ±³ÇÒ ¶§ Ŭ¶óÀ̾ðÆ®´Â ÀüüURI¿¡ ´ëÇÏ¿© ´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏ´Â 8Áø¼ö ´ë 8Áø¼ö ºñ±³ ¹æ¹ý(octet-by-octet comparison)À» »ç¿ëÇØ¾ß ¸¸ ÇÏ¸ç ´ÙÀ½ÀÇ ¿¹¿Ü »çÇ×ÀÌ ÀÖ´Ù. ? ºñ¾î Àְųª ¸í½ÃµÇÁö ¾ÊÀº Æ÷Æ®´Â ±âº» Æ÷Æ® 80¹øÀ¸·Î Á¤ÀÇÇÑ´Ù; ? È£½ºÆ® À̸§ÀÇ ºñ±³¿¡´Â ¹Ýµå½Ã ´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â´Ù; ? scheme À̸§ÀÇ ºñ±³´Â ¹Ýµå½Ã ´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â´Ù; ? ºñ¾î ÀÖ´Â abs_path´Â "/"ÀÎ abs_path¿Í µ¿ÀÏÇÏ´Ù. "¿¹¾àµÇ°Å³ª(reserved)" "¾ÈÀüÇÏÁö ¾Ê´Â(unsafe)" ¹®ÀÚ ÁýÇÕ (3.2 Àý ÂüÁ¶) ÀÌ¿ÜÀÇ ¹®ÀÚ´Â ""%" HEX HEX" ÀÎÄÚµù°ú µ¿ÀÏÇÏ´Ù. ¿¹¸¦ µé¾î ´ÙÀ½ÀÇ ¼¼ URI´Â µ¿ÀÏÇÏ´Ù. http://abc.com:80/~smith/home.html http://ABC.com/%7Esmith/home.html http://ABC.com:/%7esmith/home.html [Page 20] 3.3 ³¯Â¥/½Ã°£ Çü½Ä 3.3.1 ¿ÏÀüÇÑ ³¯Â¥ HTTP ÇÁ·Î±×·¥Àº ¿ª»çÀûÀ¸·Î ¼¼ °¡Áö ¹æ¹ýÀ¸·Î ½Ã°£/³¯Â¥¸¦ Ç¥½ÃÇØ ¿Ô´Ù. Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, RFC 1123¿¡¼­ °»½Å Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, RFC 1036¿¡¼­ Æó±â Sun Nov 6 08:49:37 1994 ; ANSI CÀÇ asctime() Çü½Ä ù¹ø°ÀÇ Çü½ÄÀÌ ÀÎÅÍ³Ý Ç¥ÁØÀ¸·Î ¿ì¼±±ÇÀ» °¡Áö°í ÀÖÀ¸¸ç RFC 1123 (RFC 822ÀÇ °³Á¤ÆÇ)¿¡¼­ ±ÔÁ¤ÇÑ °íÁ¤ ±æÀÌÀÇ ÇϺΠ¼¼Æ®¸¦ Ç¥½ÃÇÑ´Ù. µÎ ¹ø° Çü½ÄÀº ÀϹÝÀûÀ¸·Î »ç¿ëµÇ±â´Â ÇÏÁö¸¸ Æó ±âµÈ RFC 850 [12] ³¯Â¥ Çü½Ä¿¡ ±âÃÊÇÏ°í ÀÖÀ¸¸ç 4 ´ÜÀ§ ³âµµ Ç¥½Ã°¡ °á¿©µÇ¾î ÀÖ´Ù. ³¯Â¥¸¦ ºÐ¼®ÇÏ´Â HTTP/1.1 Ŭ¶óÀ̾ðÆ® ¹× ¼­¹ö´Â ¹Ýµå½Ã »ó±â ¼¼ Çü½ÄÀ» ¸ðµÎ ¼ö¿ëÇØ¾ß ÇÑ´Ù. ±×·¯³ª Çì´õ ÇʵåÀÇ HTTP-³¯Â¥ °ªÀ» Ç¥½ÃÇÒ ¶§´Â ¹Ýµå½Ã RFC 1123 Çü½Ä¸¸À» »ý»êÇØ¾ß ÇÑ´Ù. ÁÖÀÇ : ³¯Â¥ °ª ¼ö½Åó´Â ¸Þ½ÃÁö¸¦ ÇÁ¶ô½Ã/°ÔÀÌÆ®¿þÀ̸¦ ÅëÇÏ¿© SMTP³ª NNTP·Î Á¶È¸ ¶Ç ´Â ¹ß¼ÛÇÏ´Â °æ¿ìó·³ ºñ HTTP ¾ÖÇø®ÄÉÀ̼ÇÀÌ ¹ß¼ÛÇÑ ³¯Â¥ °ªÀ» ¼ö½ÅÇÏ´Â µ¥ Àû±ØÀûÀÎ Á¶ Ä¡¸¦ ÃëÇÒ °ÍÀ» Àå·ÁÇÑ´Ù. ¸ðµç HTTP ³¯Â¥/½Ã°£ Ç¥½Ã´Â ¿¹¿Ü ¾øÀÌ ¹Ýµå½Ã ±×¸°ÀÌÄ¡ Ç¥ÁØ ½Ã°£(GMT))À» µû¶ó¾ß ÇÑ´Ù. ÀÌ ´Â óÀ½ µÎ Çü½Ä¿¡¼­ ½Ã°£´ë¸¦ Ç¥½ÃÇÏ´Â 3 ¹®ÀÚÀÇ Ãà¾à¾îÀÎ "GMT"¸¦ Æ÷ÇÔÇÔÀ¸·Î½á Ç¥½ÃµÇ¾î ÀÖ´Ù. ¶ÇÇÑ asctime Çü½ÄÀÇ ³¯Â¥¸¦ ÀÐÀ» ¶§µµ "GMT"¶ó°í ¹Ýµå½Ã °¡Á¤ÇØ¾ß ÇÑ´Ù. 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" [Page 21] 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 Seconds ¸î¸î HTTP Çì´õ´Â ¸Þ½ÃÁö°¡ ¼ö½ÅµÈ ÀÌÈÄÀÇ ½Ã°£À» 10Áø¹ýÀÇ Á¤¼ö·Î Ãʸ¦ ¸í½ÃÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. delta-seconds = 1*DIGIT 3.4 ¹®ÀÚ ÁýÇÕ HTTP´Â MIME¿¡¼­ ¼³¸íµÈ "¹®ÀÚ ÁýÇÕ"À̶ó´Â ¿ë¾î¸¦ µ¿ÀÏÇÏ°Ô »ç¿ëÇÑ´Ù. ÀÏ·ÃÀÇ 8bit µ¥ÀÌÅ͸¦ ÀûÀýÇÑ ´ëÀÀ °ü°è¿¡ ÀÖ´Â ÀÏ·ÃÀÇ ±ÛÀÚ·Î º¯È¯½Ãų ¼ö ÀÖµµ·Ï ÇÑ °³ ¶Ç ´Â ±× ÀÌ»óÀÇ Ç¥·Î¼­ ¸¸µé¾î¼­ ÂüÁ¶ÇÏ°Ô ÇÏ´Â ¼ö´ÜÀÌ´Ù. ±×·¯¹Ç·Î ¹«Á¶°Ç º¯È¯½ÃÄѼ­´Â ¾È µÇ°í, ¸ðµç ±ÛÀÚ°¡ ¹®ÀÚ ÁýÇÕ¿¡ Á¤ÀǵǾî ÀÖÁö ¾ÊÀ» ¼ö ÀÖ°í, ƯÁ¤ÇÑ ±ÛÀÚ¸¦ Ç¥ÇöÇϱâ À§ÇØ Çϳª ÀÌ»óÀÇ 8bit µ¥ÀÌÅÍ¿­ÀÌ Á¸ÀçÇÒ ¼öµµ ÀÖ´Ù. ÀÌ Á¤ÀÇ¿¡ µû¸£¸é, US-ASCII¿Í °°Àº ´Ü¼øÇÑ º¯È¯Ç¥·ÎºÎÅÍ ISO 2022ÀÇ °æ¿ì¿¡¼­¿Í °°ÀÌ º¹ÀâÇÑ º¯È¯Ç¥¿¡ À̸£±â±îÁö ´Ù¾çÇÑ Á¾·ùÀÇ ¹®ÀÚ ÀÎÄÚµùµéÀ» Çã¿ëÇÑ´Ù. ÇÏÁö¸¸ MIME ¹®ÀÚ ÁýÇÕ À̸§°ú °ü·ÃµÈ Á¤ÀÇ´Â 8bit µ¥ÀÌÅͷκÎÅÍ ±Û ÀÚ·ÎÀÇ º¯È¯¿¡ °üÇÑ »çÇ×À» ¿ÏÀüÇÏ°Ô ¸í½ÃÇÏ¿©¾ß ÇÑ´Ù. ¿ÏÀüÇÑ º¯È¯ °ü°è¸¦ Á¤ÀÇÇϱâ À§ÇØ ´Ù¸¥ ¼ö´ÜÀ» ÅëÇÑ ¿ÜºÎ Á¤º¸¸¦ È°¿ëÇؼ­´Â ¾È µÈ´Ù. ÁÖÀÇ : ÀÌ·¯ÇÑ "¹®ÀÚ ÁýÇÕ"À̶ó´Â ¿ë¾îÀÇ »ç¿ëÀº º¸Åë "¹®ÀÚ ÀÎÄÚµù"À¸·Î ÁöĪµÈ´Ù. ±×·¯³ª HTTP¿Í MIMEÀº µ¿ÀÏÇÑ µî·ÏÇ¥¸¦ »ç¿ëÇϱ⠶§¹®¿¡ ¿ë¾î¸¦ °øÀ¯ÇÏ´Â °Í ¶ÇÇÑ Áß¿äÇÏ´Ù. [Page 22] HTTP ¹®ÀÚ ÁýÇÕÀº ÅäÅ«¿¡ ÀÇÇØ ½Äº°µÇ¸ç ´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â´Ù. ¿ÏÀüÇÑ ÅäÅ« ¼¼Æ®´Â IATA ¹®ÀÚ ÁýÇÕ µî·ÏÇ¥(IANA Character Set registry [19])¿¡ ±ÔÁ¤µÇ¾î ÀÖ´Ù. charset = token HTTP°¡ charset °ªÀ¸·Î ÀÓÀÇÀÇ ÅäÅ«À» »ç¿ëÇϵµ·Ï Çã¿ëÇÏÁö¸¸ IATA ¹®ÀÚ ÁýÇÕ µî·Ï¿¡ »çÀü Á¤ÀÇµÈ ¸ðµç ÅäÅ«Àº ¹Ýµå½Ã ÀÌ µî·ÏÇ¥¿¡ µî·ÏµÈ ¹®ÀÚ ÁýÇÕÀ» Ç¥½ÃÇØ¾ß ÇÑ´Ù. ¾ÖÇø®ÄÉÀ̼ÇÀº »ç¿ëÇÏ´Â ¹®ÀÚ ÁýÇÕÀ» IATA µî·Ï Ç¥¿¡¼­ ±ÔÁ¤µÈ °ÍÀ¸·Î Á¦ÇÑÇؾ߸¸ ÇÑ´Ù. 3.5 ³»¿ë ÄÚµù(Content Codings) ³»¿ë ÄÚµù °ªÀº ¿£ÅÍƼ¿¡ Àû¿ëÇÏ¿´°Å³ª Àû¿ëÇÒ ¼ö ÀÖ´Â ÀÎÄÚµù º¯È¯À» Ç¥½ÃÇÑ´Ù. ³»¿ë ÄÚµùÀº ¹®¼­¸¦ ¾ÐÃàÇϰųª, ±×·¸Áö ¾Ê´Ù¸é ³»¿ëÀÇ media typeÀÇ Á¤Ã¼¸¦ »ó½ÇÇϰųª Á¤º¸¸¦ ¼Õ½ÇÇÏÁö ¾Ê°í À¯¿ëÇÏ°Ô º¯ÇüÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. Á¾Á¾ ¿£ÅÍƼ´Â ÄÚµåÈ­ µÈ Æû¿¡ ÀúÀåµÇ°í Á÷Á¢ Àü¼ÛµÇ¾î ¼ö½ÅÃø¸¸ÀÌ À̸¦ Çص¶ÇÑ´Ù. content-coding = token ¸ðµç ³»¿ë ÄÚµùÀÇ °ªÀº ´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â´Ù. HTTP/1.1Àº Accept-Encoding (14.3 Àý) ¹× Content-Encoding (14.12 Àý) Çì´õ ÆÄÀÏ¿¡ ³»¿ë ÄÚµù °ªÀ» »ç¿ëÇÑ´Ù. ±× °ªÀÌ Content- CodingÀ» ¼³¸íÇÏ´Â °ÍÀÌÁö¸¸ ´õ¿í Áß¿äÇÑ °ÍÀº ÀÎÄÚµùÀ» Á¦°ÅÇϱâ À§ÇØ ÇÊ¿äÇÑ Çص¶ ¸ÞÄ¿´Ï ÁòÀ» Ç¥½ÃÇÑ´Ù´Â °ÍÀÌ´Ù. ÀÎÅͳݿ¡¼­ ÇÒ´çµÈ ¼ýÀÚ Ã¼°è(Internet Assigned Numbers Authority (IANA))´Â Content-Coding °ª ÅäÅ«ÀÇ µî·ÏÇ¥ ¿ªÇÒÀ» ¼öÇàÇÑ´Ù. óÀ½¿¡ ÀÌ µî·ÏÇ¥¿¡´Â ´ÙÀ½ÀÇ ÅäÅ«ÀÌ Æ÷ÇԵǾî ÀÖ´Ù. gzip RFC 1952 [25]¿¡ ¼³¸íµÈ ´ë·Î ÆÄÀÏ ¾ÐÃà ÇÁ·Î±×·¥ÀÎ "gzip"¿¡ ÀÇÇÏ¿© »ý¼ºµÈ ÀÎÄÚµù Æ÷ ¸Ë. ÀÌ Æ÷¸ËÀº 32 bit CRC¸¦ °¡Áø Lempel-Ziv coding (LZ77)ÀÌ´Ù. compress ÀϹÝÀûÀÎ UNIX ÆÄÀÏ ¾ÐÃà ÇÁ·Î±×·¥ÀÎ "compress"¿¡ ÀÇÇÏ¿© »ý¼ºµÈ ÀÎÄÚµù Æ÷¸Ë. ÀÌ Æ÷¸ËÀº Lempel-Ziv-Welch ÄÚµù(LZW)À» ¼öÁ¤ÇÑ °ÍÀÌ´Ù. [Page 23] ÁÖÀÇ: ÀÎÄÚµù Æ÷¸ËÀ» ½Äº°ÇÏ´Â ÇÁ·Î±×·¥ À̸§ÀÇ »ç¿ëÀº ¹Ù¶÷Á÷ÇÏÁö ¾ÊÀ¸¸ç ÇâÈÄ ÀÎÄÚµùÀ» À§Çؼ­ »ç¿ëÇÏÁö ¸»µµ·Ï ±Ç°íÇÑ´Ù. ÇÁ·Î±×·¥ À̸§À» ¿©±â¿¡¼­ »ç¿ëÇÑ °ÍÀº ¿ª»çÀûÀÎ °ü·ÊÀÌ ¸ç ÈǸ¢ÇÑ µðÀÚÀÎÀº ¾Æ´Ï´Ù. HTTPÀÇ ÀÌÀü ±¸Çö¹ý°ú ȣȯ¼ºÀ» À¯ÁöÇϱâ À§ÇØ ¾ÖÇø®ÄÉÀÌ¼Ç Àº "x-gzip" ¹× "x-compress" À» "gzip" °ú "compress" °¢°¢ µ¿ÀÏÇÑ °ÍÀ¸·Î °£ÁÖÇØ¾ß ÇÑ´Ù. deflate RFC 1951[29]¿¡ ¼³¸íµÈ "deflate" ¾ÐÃà ¸ÞÄ¿´ÏÁò°ú °áÇÕÇÏ¿© RFC 1950[31]¿¡ Á¤ÀÇµÈ "zlib" Æ÷¸Ë. »õ·Î¿î Content-Coding °ª ÅäÅ«Àº µî·ÏÇØ¾ß ÇÑ´Ù. Ŭ¶óÀ̾ðÆ®¿Í ¼­¹ö°¡ »óÈ£ ¿î¿ë¼ºÀ» °¡ Áöµµ·Ï Çϱâ À§ÇØ »õ·Î¿î °ªÀ» ±¸ÇöÇÏ´Â µ¥ ÇÊ¿äÇÑ ³»¿ë ÄÚµù ¾Ë°í¸®Áò¿¡ ´ëÇÑ ±Ô°ÝÀº ÀϹÝÀÎ ÀÌ »ç¿ëÇÒ ¼ö ÀÖ¾î¾ß ÇÏ°í µ¶¸³ÀûÀ¸·Î ±¸ÇöÇϱ⿡ ÀûÇÕÇØ¾ß Çϸç ÀÌ Àý¿¡ ±ÔÁ¤µÈ ³»¿ë ÄÚµùÀÇ ¸ñÀû¿¡ µû¶ó¾ß ÇÑ´Ù. 3.6 Àü¼Û ÄÚµù (Transfer Codings) Àü¼Û ÄÚµù °ªÀº ³×Æ®¿öÅ©¸¦ ÅëÇÑ "¾ÈÀü Àü¼Û"À» È®º¸Çϱâ À§ÇØ Entity-Body¿¡ Àû¿ëÇÏ¿´°Å ³ª, Àû¿ëÇÒ ¼ö Àְųª ¶Ç´Â Àû¿ëÇÒ ÇÊ¿ä°¡ ÀÖ´Â ÀÎÄÚµù º¯È¯À» Ç¥½ÃÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. Àü¼Û ÄÚ µùÀº ¸Þ½ÃÁöÀÇ Æ¯¼º ÁßÀÇ ÇϳªÀÌ¸ç ¿ø·¡ ¿£ÅÍƼÀÇ Æ¯¼ºÀÌ ¾Æ´Ï¶ó´Â Á¡ÀÌ ³»¿ë ÄÚµù°ú ´Ù¸¥ Á¡ ÀÌ´Ù. transfer-coding = "chunked" | transfer-extension transfer-extension = token ¸ðµç transfer-coding °ªÀº ´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â´Ù. HTTP/1.1Àº Transfer- Encoding Çì´õ Çʵå (14.40 Àý)ÀÇ Àü¼Û ÄÚµù °ªÀ» »ç¿ëÇÑ´Ù. Àü¼Û ÄÚµùÀº 7 ºñÆ® Àü¼Û ¼­ºñ½º·Î ¹ÙÀ̳ʸ® µ¥ÀÌÅ͸¦ ¾ÈÀüÇÏ°Ô Àü¼ÛÇÒ ¼ö ÀÖµµ·Ï µðÀÚÀÎ µÈ MIMEÀÇ Content-Transfer-Encoding °ª°ú À¯»çÇÏ´Ù. ±×·¯³ª 8 ºñÆ® Àü¼Û ±Ô¾à¿¡¼­ ¾ÈÀü Àü¼ÛÀÇ ÁßÁ¡Àº ´Ù¸¥ °÷¿¡ ÀÖ´Ù. HTTP¿¡¼­ À¯ÀÏÇÑ Message-BodyÀÇ ºÒ¾ÈÀüÇÑ Æ¯Â¡Àº Á¤È®ÇÑ º»¹® ±æÀÌ(7.2.2 Àý)¸¦ °áÁ¤Çϱ⠾î·Æ´Ù´Â °Í°ú °øÀ¯ÇÏ´Â Àü¼Ûü°è¿¡¼­ µ¥ÀÌÅ͸¦ ¾ÏȣȭÇϱ⠾î·Æ´Ù´Â °ÍÀÌ´Ù. µ¢¾î¸® ÀÎÄÚµù(chunked encoding)Àº ¸Þ½ÃÁö¸¦ ÀÏ·ÃÀÇ µ¢¾î¸®·Î Àü¼ÛÇϱâ À§ÇÏ¿© ¸Þ½ÃÁö º»¹®À» º¯°æÇÑ´Ù. ÀÌ µ¢¾î¸®´Â °¢°¢ ÀÚ½ÅÀÇ Å©±â Ç¥½ÃÀÚ¸¦ °¡Áö°í ÀÖÀ¸¸ç Entity-Header Çʵ带 Æ÷ ÇÔÇÏ°í ÀÖ´Â ¼±ÅÃÀûÀÎ °¢ÁÖ(footer)°¡ µÚµû¸¥´Ù. À̸¦ ÅëÇÏ¿© ¿ªµ¿ÀûÀ¸·Î »ý»êµÈ ³»¿ë¹°ÀÌ ¼ö½Å ÀÎÀÌ ¸Þ½ÃÁö Àüü¸¦ ¼ö½ÅÇÏ¿´´Ù´Â °ÍÀº Áõ¸íÇÏ´Â µ¥ ÇÊ¿äÇÑ Á¤º¸¿Í ÇÔ²² Àü¼ÛµÉ ¼ö ÀÖµµ·Ï ÇÑ ´Ù. [Page 24] Chunked-Body = *chunk "0" CRLF footer CRLF chunk = chunk-size [ chunk-ext ] CRLF chunk-data CRLF hex-no-zero = < "0"À» Á¦¿ÜÇÑ HEX > chunk-size = hex-no-zero *HEX chunk-ext = *( ";" chunk-ext-name [ "=" chunk-ext-value ] ) chunk-ext-name = token chunk-ext-val = token | quoted-string chunk-data = chunk-size(OCTET) footer = *Entity-Header µ¢¾î¸® ÀÎÄÚµùÀº Å©±â 0ÀÇ µ¢¾î¸®·Î Á¾°áµÇ¸ç ºó ¶óÀÎÀ¸·Î Á¾·áµÇ´Â °¢ÁÖ°¡ µÚµû¸¥´Ù. °¢ÁÖÀÇ ¸ñÀûÀº ¿ªµ¿ÀûÀ¸·Î »ý¼ºµÈ ¿£ÅÍƼ¿¡ ´ëÇÑ Á¤º¸¸¦ È¿°úÀûÀ¸·Î Á¦°øÇϵµ·Ï ÇÏ´Â °ÍÀÌ´Ù. ¾ÖÇø® ÄÉÀ̼ÇÀº Content-MD5, µðÁöÅÐ ¼­¸íÀ̳ª ´Ù¸¥ ±â´ÉÀ» À§ÇÑ HTTP ÇâÈÄ È®ÀåÀ¸·Î ¸í¹éÇÏ°Ô ±ÔÁ¤µÇÁö ¾ÊÀº Çì´õ Çʵ带 °áÄÚ °¢ÁÖ¿¡ ³Ö¾î¼­ Àü¼ÛÇؼ­´Â ¾È µÈ´Ù. Chunked-Body¸¦ Çص¶ÇÏ´Â ¿¹°¡ ºÎ·Ï 19.4.6¿¡ Á¦½ÃµÇ¾î ÀÖ´Ù. ¸ðµç HTTP/1.1 ¾ÖÇø®ÄÉÀ̼ÇÀº ¹Ýµå½Ã µ¢¾î¸® Àü¼Û ÄÚµùÀ» Çص¶ÇÏ°í ¼ö½ÅÇÒ ¼ö ÀÖ¾î¾ß Çϸç Çص¶ÇÒ ¼ö ¾ø´Â Àü¼Û ÄÚµù È®ÀåÀº ¹Ýµå½Ã ¹«½ÃÇØ¾ß ÇÑ´Ù. Çص¶ÇÒ ¼ö ¾ø´Â Transfer-Coding °ú ÇÔ²² Entity-Body¸¦ ¼ö½ÅÇÏ´Â ¼­¹ö´Â 501 (Unimplemented)À» ÀÀ´äÀ¸·Î µ¹·ÁÁÖ°í ¿¬°áÀ» Á¾·áÇØ¾ß ÇÑ´Ù. ¼­¹ö´Â °áÄÚ Transfer-CodingÀ» HTTP/1.0 Ŭ¶óÀ̾ðÆ®¿¡ º¸³»¼­´Â ¾È µÈ´Ù. 3.7 ¹Ìµð¾î Çü½Ä(Media type) HTTP´Â °ø°³ÀûÀÌ°í È®Àå °¡´ÉÇÑ µ¥ÀÌÅÍ À¯Çü ¼³Á¤ ¹× À¯Çü Çù»ó ±â´ÉÀ» Á¦°øÇϱâ À§ÇØ Content-Type (14.18 Àý) ¹× Accept (14.1 Àý) Çì´õ ÇʵåÀÇ ÀÎÅÍ³Ý ¹Ìµð¾î Çü½ÄÀ» »ç¿ëÇÑ´Ù. media-type = type "/" subtype *( ";" parameter ) type = token subtype = token attribute/value(¼Ó¼º/°ª) ½Ö ÇüÅÂÀÇ ÆĶó¹ÌÅÍ°¡ type/subtype À¯ÇüÀ» µÚµû¸¥´Ù. [Page 25] parameter = attribute "=" value attribute = token value = token | quoted-string À¯Çü, ÇϺΠÀ¯Çü ¹× ÆĶó¹ÌÅÍ ¼Ó¼º À̸§Àº ¸ðµÎ ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇÏÁö ¾Ê´Â´Ù. ÆĶó¹ÌÅÍ °ªÀº ÆĶó¹ÌÅÍ À̸§ÀÇ Àǹ̿¡ µû¶ó ´ë¼Ò ¹®ÀÚ¸¦ ±¸º°ÇÒ ¼öµµ ÀÖ°í ¾ÊÀ» ¼öµµ ÀÖ´Ù. ¼±Çü °ø¹é ½ºÆä À̽º(LWS)´Â À¯Çü°ú ÇϺΠÀ¯Çü, ¼Ó¼º°ú ¼Ó¼º °ª »çÀÌ¿¡ Àý´ë »ç¿ëÇؼ­´Â ¾È µÈ´Ù. ¹Ìµð¾î Çü ½ÄÀ» ÀÎÁöÇÏ´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â ¹Ýµå½Ã ÇØ´ç MIME À¯ÇüÀÇ ÆĶó¹ÌÅ͸¦ ÇØ´ç type/subtype Á¤ÀÇ°¡ ¼³Á¤ÇÑ ¹æ½ÄÀ¸·Î ó¸®ÇØ¾ß ÇÑ´Ù. (¶Ç´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ ÇØ´ç type/subtypeÀ» ó¸®ÇÏ´Â µ¥ »ç¿ëÇÏ´Â ¿ÜºÎ ¾ÖÇø®ÄÉÀ̼ÇÀÌ Ã³¸®Çϵµ·Ï ÁÖ¼±ÇØ¾ß ÇÑ´Ù.) ¶Ç ÇÑ ¹ß°ßµÈ ¸ðµç ¹®Á¦¸¦ »ç¿ëÀÚ¿¡°Ô ¾Ë·Á ÁÖ¾î¾ß ÇÑ´Ù. ÁÖÀÇ : ÀÌÀü HTTP ¾ÖÇø®ÄÉÀ̼ÇÀº ¹Ìµð¾î Çü½Ä ÆĶó¹ÌÅ͸¦ ÀÎÁöÇÏÁö ¸øÇÑ´Ù. ÀÌÀü HTTP ¾Ö Çø®ÄÉÀ̼ÇÀ¸·Î µ¥ÀÌÅ͸¦ Àü¼ÛÇÒ ¶§ ±¸Çö ¹æ½ÄÀº ÇØ´ç type/subtype Á¤ÀÇ°¡ ¿ä±¸ÇÒ ¶§¸¸ ¹Ìµð¾î Çü½Ä ÆĶó¹ÌÅ͸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. ¹Ìµð¾î À¯Çü °ªÀº ÀÎÅÍ³Ý ÇÒ´ç ¼ýÀÚ Ã¼°è(IANA)¿¡ µî·ÏµÈ´Ù. ¹Ìµð¾î À¯ÇüÀ» µî·ÏÇÏ´Â ÀýÂ÷´Â RFC 2048 [17]¿¡ À±°ûÀÌ ¼³¸íµÇ¾î ÀÖ´Ù. µî·ÏµÇÁö ¾ÊÀº ¹Ìµð¾î À¯ÇüÀ» »ç¿ëÇÏ´Â °ÍÀº ±ÇÇÏÁö ¾Ê´Â´Ù. 3.7.1 Á¤ÇüÈ­(Canonicalization) ¹× ÅؽºÆ® ±âº»°ª ÀÎÅͳݿ¡¼­ÀÇ ¹Ìµð¾î Çü½ÄÀº Á¤ÇüÈ­µÈ Çü½ÄÀ¸·Î¼­ µî·ÏµÇ¾î ÀÖ´Ù. º¸Åë HTTP ¸Þ½ÃÁö¸¦ ÅëÇÏ ¿© Àü¼ÛµÇ´Â Entity-Body´Â ¹Ýµå½Ã Àü¼ÛµÇ±â ÀÌÀü¿¡ ÀûÀýÇÑ Á¤ÇüÈ­µÈ Çü½ÄÀ¸·Î Ç¥½ÃµÇ¾î¾ß ÇÑ´Ù. ÀÌÀÇ ¿¹¿Ü´Â ´ÙÀ½ ¹®±¸¿¡¼­ Á¤ÀÇµÈ "text" À¯ÇüÀÌ´Ù. Á¤ÇüÈ­µÈ Çü½ÄÀ¸·Î¼­ text Çü½ÄÀÇ ¹Ìµð¾î subtypeÀº CRLF¸¦ ÅؽºÆ® ¶óÀÎ ÁÙ ¹Ù²ÞÀ¸·Î »ç ¿ëÇÑ´Ù. HTTP´Â ÀÌ·¯ÇÑ ÇÊ¿ä Á¶°ÇÀ» ¿ÏÈ­ÇÏ¿© Entity-Body Àü¹Ý¿¡ °ÉÃÄ ÀÏ°ü¼º ÀÖ°Ô µ¿ÀÏ ÇÑ ¹æ¹ýÀ» »ç¿ëÇÏ¿´À» °æ¿ì ´Ü¼øÈ÷ CR ¶Ç´Â LF Çϳª¸¦ ÁÙ ¹Ù²ÞÀ¸·Î Ç¥ÇöÇÏ´Â ÅؽºÆ® ¹Ìµð¾î Àü¼ÛÀ» Çã¿ëÇÑ´Ù. HTTP ¾ÖÇø®ÄÉÀ̼ÇÀº CRLF, ´ÜÆíÀûÀÎCR ¶Ç´Â LF¸¦ HTTP¸¦ ÅëÇÏ¿© ¼ö½Å ÇÑ ÅؽºÆ® ¹Ìµð¾î¿¡¼­ ÁÙ ¹Ù²ÞÀ» Ç¥½ÃÇÏ´Â °ÍÀ¸·Î ÀÎÁ¤Çؾ߸¸ ÇÑ´Ù. ¶ÇÇÑ ÅؽºÆ®°¡ ¸î¸î ¸ÖƼ ¹ÙÀÌÆ® ¹®ÀÚ ÁýÇÕÀÇ °æ¿ìó·³ 8Áø¼ö 13°ú 10À» CR °ú LF·Î »ç¿ëÇÏÁö ¾Ê´Â ¹®ÀÚ ÁýÇÕÀ» »ç ¿ëÇÏ°í ÀÖÀ» °æ¿ì HTTP´Â ¾î¶°ÇÑ ÀÏ·ÃÀÇ octets°¡ ÇØ´ç ¹®ÀÚ ÁýÇÕ¿¡¼­ ÁٹٲÞÀ» À§ÇÑ CR ¹× LF¸¦ ´ëÇ¥ÇÏ´Â °ÍÀ¸·Î ±ÔÁ¤Çϵç À̸¦ Çã¿ëÇÑ´Ù. ÀÌ·¯ÇÑ Áٹٲ޿¡ ´ëÇÑ À¯¿¬¼ºÀº Entity- BodyÀÇ ÅؽºÆ® ¹Ìµð¾î¿¡¸¸ Àû¿ëµÇ¸ç ´ÜÆíÀûÀÎ CR ¶Ç´Â LF´Â ¾î¶°ÇÑ HTTP Á¦¾î ±¸Á¶(Çì´õ ÇÊµå ¹× multipart °æ°è¿Í °°Àº)¿¡¼­µµ CRLF¸¦ ´ëüÇؼ­´Â ¾È µÈ´Ù. Entity-Body°¡ Content-EncodingÀ¸·Î ÀÎÄÚµù µÇ¾ú´Ù¸é ³»ºÎ µ¥ÀÌÅÍ´Â ÀÎÄÚµù µÇ±â ÀÌ Àü¿¡ À§¿¡¼­ ±ÔÁ¤ÇÑ Çü½ÄÀ¸·Î Ç¥ÇöµÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. [Page 26] "charset" ÆĶó¹ÌÅÍ´Â ¸î¸î ¹Ìµð¾î Çü½Ä¿¡¼­ µ¥ÀÌÅÍÀÇ ¹®ÀÚ ÁýÇÕ(3.4 Àý)À» ±ÔÁ¤ÇÏ´Â µ¥ »ç¿ë ÇÑ´Ù. ¼Û½ÅÀÚ°¡ ¸í¹éÇÑ charset ÆĶó¹ÌÅ͸¦ Á¦°øÇÏÁö ¾Ê¾Ò´Ù¸é "text" À¯ÇüÀÇ ¹Ìµð¾î subtype Çü½ÄÀº HTTP¸¦ ÅëÇÏ¿© ¼ö½ÅÇßÀ» ¶§ "ISO-8859-1"ÀÇ charset ±âº»°ªÀ» °®µµ·Ï ±ÔÁ¤µÇ¾î ÀÖ´Ù. "ISO-8859-1" ÀÌ¿Ü ¹®ÀÚ ÁýÇÕÀÇ µ¥ÀÌÅͳª ±× ÇϺΠ¼¼Æ®´Â ÀûÀýÇÑ charset °ªÀ¸·Î ¸í¸íµÇ¾î¾ß ÇÑ´Ù. ¸î¸î HTTP/1.0 ¼ÒÇÁÆ®¿þ¾î´Â charset ÆĶó¹ÌÅÍ ¾ø´ÂContent-Type Çì´õ¸¦ "¼ö½ÅÃøÀÌ ÁüÀÛ ÇØ¾ß ÇÑ´Ù"¶ó°í À߸ø Çؼ®ÇÏ¿´´Ù. ÀÌ·¯ÇÑ ¹æ½ÄÀ» ¹æÁöÇÏ°íÀÚ ÇÏ´Â ¼Û½ÅÀÚ´Â charset°¡ ISO- 8859-1ÀÏ ¶§µµ charset ÆĶó¹ÌÅ͸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ ¼ö½ÅÃø¿¡°Ô È¥¼±À» ÁÖÁö ¾Ê´Â´Ù ´Â °ÍÀ» ¾Ë ¼ö ÀÖÀ» ¶§µµ ±×·¸°Ô ÇØ¾ß ÇÑ´Ù. ºÒÇàÇÏ°Ôµµ ¸î¸î ÀÌÀü HTTP/1.0 Ŭ¶óÀ̾ðÆ®´Â ¸íÈ®ÇÑ charset ÆĶó¹ÌÅ͸¦ ÀûÀýÈ÷ ó¸®ÇÏÁö ¸øÇß´Ù. HTTP/1.1 ¼ö½ÅÃøÀº ¼Û½ÅÃøÀÌ Á¦°øÇÏ´Â charset ¶óº§À» ¹Ýµå½Ã °¨¾ÈÇØ¾ß ÇÑ´Ù. ¶ÇÇÑ charsetÀ» ÃßÃøÇÏ´Â Á¶Ç×À» °¡Áø »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â Content-Type ÇʵåÀÇ charset¸¦ Áö¿øÇÑ´Ù¸é óÀ½ ¹®¼­ÀÇ ³»¿ëÀ» Ç¥½ÃÇÒ ¶§ ¼ö½ÅÃøÀÇ ¼±È£µµ¿¡ µû¸£±âº¸´Ù´Â ¹Ýµå½Ã ÀÌ charset¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. 3.7.2 Multipart Type MIMEÀº ¸¹Àº "multipart" Çü½ÄÀ» Á¦°øÇÏ°í Àִµ¥ ? Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ ¿£ÅÍƼ¸¦ ´ÜÀÏ ¸Þ½ÃÁö º»¹® ³»¿¡ Æ÷ÇÔ½Ãų ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀÌ´Ù. ¸ðµç multipart Çü½ÄÀº MIME [7]¿¡ ±Ô Á¤µÇ¾î ÀÖ´Â °øÅëÀû Ç¥±â¹ý¿¡ µû¸£¸ç ¹Ìµð¾î Çü½Ä Ç¥½Ã°ªÀÇ ÀϺημ­ °æ°è ÆĶó¹ÌÅ͸¦ Æ÷ÇÔÇØ ¾ß ÇÑ´Ù. ¸Þ½ÃÁö º»¹® ÀÚü´Â ±Ô¾àÀÇ ÇÑ ¿ä¼ÒÀ̸ç, Body-Part °£ÀÇ ÁÙ ¹Ù²ÞÀ» Ç¥½ÃÇÒ ¶§ ¹Ýµå½Ã CRLF¸¸À» »ç¿ëÇØ¾ß ÇÑ´Ù. MIME°ú´Â ´Þ¸® ¸ðµç multipart ¸Þ½ÃÁöÀÇ ¸ÎÀ½¸»Àº ¹Ýµå½Ã ºñ¾î ÀÖ¾î¾ß ÇÑ´Ù. HTTP ¾ÖÇø®ÄÉÀ̼ÇÀº ¸ÎÀ½¸»À» Àý´ë·Î Àü¼ÛÇؼ­´Â ¾È µÈ´Ù (ºñ·Ï ¿ø·¡ÀÇ multipart°¡ ¸ÎÀ½¸»À» Æ÷ÇÔÇÏ°í ÀÖ´Ù ÇÏ¿©µµ). HTTP¿¡¼­ multipartÀÇ Body-Part´Â ÇØ´ç ºÎºÐÀÇ Àǹ̿¡ Áß´ëÇÑ ¿µÇâÀ» ³¢Ä¡´Â Çì´õÇʵ带 Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. Content-Location Çì´õ Çʵå(14.15 Àý)´Â URL·Î È®ÀÎÇÒ ¼ö ÀÖ´Â ¿£ÅÍƼÀÇ Body-Part¿¡ Æ÷ÇԵǾî¾ß ÇÑ´Ù. ÀϹÝÀûÀ¸·Î HTTP »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â MIME »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ multipart À¯ÇüÀ» ¼ö½ÅÇßÀ» ¶§ ó¸®ÇÏ´Â ¹æ½Ä°ú µ¿ÀÏÇϰųª À¯»çÇÑ ¹æ½Ä¿¡ µû¶ó¾ß ÇÑ´Ù. ÁÖÀÇ: RFC 1867 [15]¿¡¼­ ¼³¸íµÈ °Íó·³ "multipart/form-data" À¯ÇüÀÌ POST ¿ä±¸ methodÀ¸·Î ó¸®Çϱ⿡ ÀûÇÕÇÑ Æû µ¥ÀÌÅ͸¦ Àü¼ÛÇϱâ À§ÇØ Æ¯º°È÷ ±ÔÁ¤µÇ¾ú´Ù. [Page 27] 3.8 Á¦Ç° ÅäÅ« Á¦Ç° ÅäÅ«Àº Åë½Å ¾ÖÇø®ÄÉÀ̼ÇÀÌ ÀÚ½ÅÀÇ ¼ÒÇÁÆ®¿þ¾î À̸§ ¹× ¹öÀüÀ» È®ÀÎÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. Á¦Ç° ÅäÅ«À» »ç¿ëÇÏ´Â ´ëºÎºÐÀÇ Çʵå´Â °ø¹é ¹®ÀÚ·Î ±¸ºÐµÇ´Â ¸ñ·Ï¿¡ ¿­°ÅÇÒ ¾ÖÇø®ÄÉÀ̼ÇÀÇ Áß¿äÇÑ ºÎºÐÀ» Çü¼ºÇÏ´Â ºÎ¼öÀû Á¦Ç°¸íÀÇ Ç¥½Ã¸¦ Çã¿ëÇÑ´Ù. °ü·Ê»ó Á¦Ç°Àº ¾ÖÇø®ÄÉÀ̼ÇÀ» ½Ä º°ÇØ ÁÖ´Â Á¦Ç°ÀÇ Áß¿äµµ¿¡ µû¶ó ¿­°ÅµÈ´Ù. product = token ["/" product-version] product-version = token ¿¹: User-Agent: CERN-LineMode/2.15 libwww/2.17b3 Server: Apache/0.8.4 Á¦Ç° ÅäÅ«Àº °£·«ÇØ¾ß ÇÏ¸ç ¿äÁ¡ÀÌ ÀÖ¾î¾ß ÇÑ´Ù. ±¤°í³ª ÇʼöÀûÀÌÁö ¾ÊÀº ´Ù¸¥ Á¤º¸¸¦ À§ÇØ »ç¿ëÇÏ´Â °ÍÀº ºÐ¸íÇÏ°Ô ±ÝÁöµÇ¾î ÀÖ´Ù. ¾î¶°ÇÑ ÅäÅ« ¹®ÀÚ¶óµµ Á¦Ç° Á¤º¸¿¡ Ç¥½ÃÇÒ ¼ö ÀÖÁö¸¸ ÀÌ ÅäÅ«Àº ¹öÀü ½Äº°ÀÚ¿¡¸¸ »ç¿ëÇØ¾ß ÇÑ´Ù.(µ¿ÀÏÇÑ Á¦Ç°ÀÇ °è¼ÓÀûÀÎ ¹öÀüÀº Á¦Ç° °ª(value)ÀÇ product-version ºÎºÐ¸¸ ´Þ¶ó¾ß ÇÑ´Ù.) 3.9 Ç°Áú µî±Þ °ª HTTP ³»¿ë Çù»ó(12 Àå)Àº ©¸·ÇÑ "ºÎµ¿¼Ò¼öÁ¡" ¼ýÀÚ¸¦ »ç¿ëÇÏ¿© ´Ù¾çÇÑ Çù»ó °¡´É ÆĶó¹ÌÅÍ ÀÇ »ó´ëÀû Á߿伺("°¡ÁßÄ¡")À» Ç¥½ÃÇÑ´Ù. °¡ÁßÄ¡´Â ÃÖ¼Ò°ª 0ºÎÅÍ ÃÖ´ë°ª 1±îÁö ¹üÀ§ÀÇ ½Ç¼ö·Î Á¤ÇüÈ­ÇÒ ¼ö ÀÖ´Ù. HTTP/1.1 ¾ÖÇø®ÄÉÀ̼ÇÀº ºÎµ¿¼Ò¼öÁ¡ ÀÌÈÄÀÇ ÀÚ¸®¿¡ ¼¼ ÀÚ¸® ÀÌ»óÀÇ ¼ýÀÚ¸¦ Àý´ë »ç¿ëÇؼ­´Â ¾È µÈ´Ù. ÀÌ·¯ÇÑ °ªµé¿¡ ´ëÇÑ »ç¿ëÀÚÀÇ °ª ¼³Á¤Àº ¶ÇÇÑ ´ÙÀ½ÀÇ ¹æ½ÄÀ¸·Î ÇÑ Á¤µÇ¾î¾ß ÇÑ´Ù. qvalue = ( "0" [ "." 0*3DIGIT ] ) | ( "1" [ "." 0*3("0") ] ) "Ç°Áúµî±Þ °ª"Àº ÀÌ °ªÀÌ ´Ü¼øÈ÷ ¿øÇÏ´Â Ç°Áú¿¡ ´ëÇÑ »ó´ëÀûÀÎ Áú ÀúÇϸ¦ Ç¥ÇöÇÏ´Â °ÍÀ̱⠶§ ¹®¿¡ À߸øµÈ ¸íĪÀÌ´Ù. 3.10 ¾ð¾î ÅÂ±× ¾ð¾î ű״ Àΰ£ÀÌ ´Ù¸¥ Àΰ£°ú Á¤º¸¸¦ ±³È¯Çϱâ À§ÇÏ¿© ¸»Çϰųª, ¾²°Å³ª ȤÀº Àü´ÞÇÏ´Â ÀÚ ¿¬ÀûÀÎ ¾ð¾î¸¦ Ç¥½ÃÇÑ´Ù. ÄÄÇ»ÅÍ ¾ð¾î´Â ºÐ¸íÈ÷ Á¦¿ÜµÈ´Ù. HTTP´Â Accept-Language ¹× Content-Language Çʵ带 ÀÌ¿ëÇÏ¿© ¾ð¾î ű׸¦ Ç¥½ÃÇÑ´Ù. [Page 28] HTTP ¾ð¾î ű×ÀÇ ÀÇ¹Ì ¹× µî·ÏÇ¥´Â RFC 1766 [1]¿¡¼­ ±ÔÁ¤ÇÑ °Í°ú µ¿ÀÏÇÑ °ÍÀ» »ç¿ëÇÑ´Ù. ¿ä ¾àÇÏ¸é ¾ð¾î ű״ Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ ºÎºÐÀ¸·Î ±¸¼ºµÇ¾î ÀÖ´Ù. ÁÖ¿ä ¾ð¾î ÅÂ±× ¹× ºñ¾î ÀÖÀ» ¼öµµ ÀÖ´Â ÀÏ·ÃÀÇ ÇϺΠű״ ´ÙÀ½°ú °°´Ù. language-tag = primary-tag *( "-" subtag ) primary-tag = 1*8ALPHA subtag = 1*8ALPHA ÅÂ±× ³»¿¡¼­´Â °ø¹é ¹®ÀÚ¸¦ »ç¿ëÇÒ ¼ö ¾ø°í ¸ðµç ű״ ´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â´Ù. ¾ð¾î ű×ÀÇ À̸§ ¿µ¿ªÀº IANA¿¡¼­ °ü¸®ÇÑ´Ù. ÅÂ±× ¿¹Á¦´Â: en, en-US, en-cockney, i-cherokee, x-pig-latin ¿©±â¼­ µÎ ÀÚ¸® ¹®ÀÚ·Î µÇ¾î ÀÖ´Â Á¦ÀÏ ¾Õ ű״ ISO 639 ¾ð¾î Ãà¾à¾î ÇüÅÂÀ̸ç, µÎ ÀÚ¸® ¹® ÀÚ·Î µÇ¾î Àִ ù ÇϺΠű״ ISO 3166 ±¹°¡ ÄÚµåÀÌ´Ù.(À§¿¡¼­ ¸¶Áö¸· ¼¼ °¡Áö ű״ µî·Ï µÇÁö ¾ÊÀº ű×ÀÌ´Ù. ¸¶Áö¸· ű׸¸ ÇâÈÄ µî·ÏµÉ ¼ö ÀÖ´Ù.) 3.11 ¿£ÅÍƼ ÅÂ±× ¿£ÅÍƼ ű״ µ¿ÀÏÇÏ°Ô ¿ä±¸µÈ ÀÚ¿ø¿¡¼­ µÑ ¶Ç´Â ±× ÀÌ»óÀÇ ¿£ÅÍƼ¸¦ ºñ±³ÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. HTTP/1.1 Àº ¿£ÅÍƼ ű׸¦ ETag (14.20 Àý), If-Match (14.25 Àý), If-None-Match (14.26 Àý) ¹× If-Range (14.27 Àý) Çì´õ Çʵ忡¼­ »ç¿ëÇÑ´Ù. »ç¿ë ¹æ¹ý ¹× ij½Ã °ËÁõÀÚ¿ÍÀÇ ºñ±³¿¡ °üÇÑ Á¤ÀÇ´Â 13.3.3 Àý¿¡ ÀÖ´Ù. ¿£ÅÍƼ ű״ ¸íÄèÇÏÁö ¾ÊÀº ÀÎ¿ë ¹®ÀÚ¿­·Î (an opaque quoted string) ±¸¼ºµÇ¾î ÀÖÀ¸¸ç ¾àÇÔ(weakness) Ç¥½ÃÀÚ°¡ Á¢µÎ»ç·Î ºÙÀ» ¼ö ÀÖ´Ù. entity-tag = [ weak ] opaque-tag weak = "W/" opaque-tag = quoted-string "°­ÇÑ ¿£ÅÍƼ ű×(strong entity tag)"´Â 8Áø¼öÀÇ ÁúÀÌ (octet equality) µ¿ÀÏÇÒ °æ¿ì¿¡¸¸ µÎ ¿£ÅÍƼ °¡ ÀÚ¿øÀ» °øÀ¯ÇÒ ¼ö ÀÖ´Ù. "W/" Á¢µÎ»ç·Î Ç¥½ÃµÇ´Â "¾àÇÑ ¿£ÅÍƼ ű×(weak entity tag)"´Â ¿£ÅÍƼ°¡ µ¿ÀÏÇÏ°í Àǹ̻ó ½É°¢ ÇÑ º¯È­ ¾øÀ̵µ ¼­·Î ´ëüÇÒ ¼ö ÀÖÀ» °æ¿ì¿¡¸¸ µÎ ¿£ÅÍƼ°¡ ÀÚ¿øÀ» °øÀ¯ÇÒ ¼ö ÀÖ´Ù. ¾àÇÑ ¿£ ÅÍƼ ű״ ¾àÇÑ ºñ±³¿¡¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¿£ÅÍƼ ű״ ¹Ýµå½Ã ƯÁ¤ ÀÚ¿ø°ú ¿¬°üµÈ ¸ðµç ¿£ÅÍƼÀÇ ¸ðµç ¹öÀüÀ» ÅëƲ¾î À¯ÀÏÇØ¾ß ÇÑ´Ù. ƯÁ¤ ¿£ÅÍƼ űװªÀ» »óÀÌÇÑ URI¿¡ ´ëÇÑ ¿ä±¸·ÎºÎÅÍ È¹µæÇÑ ¿£ÅÍƼ¿¡ µ¿ÀÏÇÏ´Ù´Â ¾Æ¹«·± Ç¥ ½Ã ¾øÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù. [Page 29] 3.12¿µ¿ª ´ÜÀ§ HTTP/1.1 ´Â Ŭ¶óÀ̾ðÆ®°¡ ¿£ÅÍƼÀÇ ÀϺκÐ(ƯÁ¤ ¿µ¿ª)¸¸ ÀÀ´äÀ¸·Î Àü¼ÛÇØ ´Þ¶ó°í ¿ä±¸ÇÒ ¼ö ÀÖ´Ù. HTTP/1.1Àº Range (14.36 Àý) ¹× Content-Range (14.17 Àý) Çì´õ ÇʵåÀÇ ¿µ¿ª ´ÜÀ§¸¦ »ç¿ëÇÑ´Ù. ¿£ÅÍƼ´Â ¿©·¯ °¡Áö ±¸Á¶Àû ´ÜÀ§ Å©±â¿¡ µû¶ó ¿©·¯ ÇϺΠ¿µ¿ªÀ¸·Î ºÐ¸®ÇÒ ¼ö ÀÖ´Ù. range-unit = bytes-unit | other-range-unit bytes-unit = "bytes" other-range-unit = token HTTP/1.1¿¡¼­ Á¤ÀÇÇÑ À¯ÀÏÇÑ ¿µ¿ª ´ÜÀ§´Â "¹ÙÀÌÆ®(bytes)"ÀÌ´Ù. HTTP/1.1ÀÇ ±¸Çö ¹æ½ÄÀº ´Ù¸¥ ´ÜÀ§¸¦ »ç¿ëÇÏ¿© ¸í½ÃÇÑ ¿µ¿ªÀ» ¹«½ÃÇÒ ¼ö ÀÖ´Ù. HTTP/1.1Àº ¿µ¿ª¿¡ ´ëÇÑ ÀÎ½Ä ¿©ºÎ¿¡ »ó°ü¾ø ÀÌ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ±¸ÇöÀ» Çã¿ëÇÏ°í ÀÖ´Ù. 4 HTTP ¸Þ½ÃÁö 4.1 ¸Þ½ÃÁö À¯Çü HTTP ¸Þ½ÃÁö´Â Ŭ¶óÀ̾ðÆ®·ÎºÎÅÍ ¼­¹ö·ÎÀÇ ¿ä±¸ ¹× ¼­¹ö·ÎºÎÅÍ Å¬¶óÀ̾ðÆ®·ÎÀÇ ÀÀ´äÀ¸·Î ±¸ ¼ºµÇ¾î ÀÖ´Ù. HTTP-message = Request | Response ; HTTP/1.1 messages ¿ä±¸(5 Àå) ¹× ÀÀ´ä(6 Àå) ¸Þ½ÃÁö´Â ¿£ÅÍƼ¸¦ Àü¼Û(message payload)Çϱâ À§ÇØ RFC 822 [9]ÀÇ ÀÏ ¹ÝÀû ¸Þ½ÃÁö Çü½ÄÀ» »ç¿ëÇÑ´Ù. µÎ ¸Þ½ÃÁö Çü½Ä ¸ðµÎ´Â ½ÃÀÛ ¶óÀÎ, Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ Çì´õ Çʵå("Çì´õ"¶ó°íµµ ¾Ë·ÁÁ³´Ù.), Çì´õ ÇʵåÀÇ ³¡À» Ç¥½ÃÇÏ´Â ºó ¶óÀÎ(¿¹¸¦ µé¾î CRLF ÀÌÀü¿¡ ¾Æ ¹« °Íµµ ¾ø´Â ¶óÀÎ) ¹× ¼±Åà »çÇ×ÀÎ Message-BodyÀ¸·Î ±¸¼ºµÇ¾î ÀÖ´Ù. generic-message = start-line *message-header CRLF [ message-body ] start-line = Request-Line | Status-Line ¾ÈÁ¤ÀûÀÎ µ¿ÀÛ(robustness)À» À§ÇØ ¼­¹ö´Â Request-LineÀÌ ÀÖ¾î¾ß ÇÒ °÷¿¡ ºó ¶óÀÎÀ» ¼ö½ÅÇÏ ¸é À̸¦ ¹«½ÃÇØ¾ß ÇÑ´Ù. ´Ù¸¥ ¸»·Î Ç¥Çö ÇÑ´Ù¸é, ¸¸¾à ¼­¹ö°¡ ±Ô¾à ½ºÆ®¸²À» Àд µµÁß ¸Þ½ÃÁö óÀ½¿¡ CRLF¸¦ ¼ö½ÅÇÏ°Ô µÇ¸é À̸¦ ¹«½ÃÇØ¾ß ÇÑ´Ù. [Page 30] ÁÖÀÇ: HTTP/1.0 Ŭ¶óÀ̾ðÆ®·Î¼­ À߸ø ±¸ÇöÇÑ ¹æ¹ýÀº POST ¿ä±¸ ÈÄ Ãß°¡ÀûÀÎ CRLF¸¦ »ý¼ºÇÑ ´Ù´Â °ÍÀÌ´Ù. BNF°¡ ºÐ¸íÇÏ°Ô ±ÝÁöÇÏ°í ÀÖ´Â °ÍÀ» ´Ù½Ã ¾ð±ÞÇÑ´Ù¸é HTTP/1.1 Ŭ¶óÀ̾ðÆ®´Â ¿©ºÐÀÇ CRLF·Î ¿ä±¸¸¦ ½ÃÀÛÇϰųª µû¶ó¼­´Â ¾È µÈ´Ù. 4.2 ¸Þ½ÃÁö Çì´õ Request-Header(5.3 Àý), Response-Header(6.2 Àý) ¹× Entity-Header(7.1 Àý) Çʵ带 Æ÷ ÇÔÇÏ´Â HTTP Çì´õ Çʵå´Â RFC 822 [9] 3.1 Àý¿¡¼­ ±ÔÁ¤ÇÑ ÀϹÝÀû Çü½ÄÀ» µ¿ÀÏÇÏ°Ô µû¸£°í ÀÖ ´Ù. °¢°¢ÀÇ Çì´õ Çʵå´Â ÄÝ·Ð (":") ¹× Çʵ尪ÀÌ µÚ µû¸£´Â À̸§À¸·Î ±¸¼ºµÇ¾î ÀÖ´Ù. Çʵå ÀÌ ¸§Àº ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇÏÁö ¾Ê´Â´Ù. ÇÊµå °ªÀº ´ÜÀÏ SP°¡ ¿ì¼±ÀûÀÌÁö¸¸ ¹«ÇÑÁ¤ÇÑ LWS°¡ ¼±Çà µÉ ¼ö ÀÖ´Ù. Çì´õ Çʵå´Â ÃÖ¼ÒÇÑ ÇϳªÀÇ SP ¹× HT°¡ ¼±ÇàµÇ´Â ¿©ºÐÀÇ ¶óÀÎÀÌ ¼±ÇàµÇ´Â º¹¼ö ÀÇ Çà¿¡ °ÉÃÄ È®ÀåµÉ ¼ö ÀÖ´Ù. ¾ÖÇø®ÄÉÀ̼ÇÀº °øÅëÀûÀÎ ±¸¼º ÇüŸ¦ ¹þ¾î³­ °ÍÀ» ó¸®ÇÏÁö ¸ø ÇÏ´Â ±¸Çö °á°úµµ ÀÖÀ» ¼ö Àֱ⠶§¹®¿¡ HTTP ±¸Á¶¸¦ »ý¼ºÇÒ ¶§ "ÀϹÝÀûÀÎ Çü½Ä"À» µû¶ó¾ß ÇÑ´Ù. message-header = field-name ":" [ field-value ] CRLF field-name = token field-value = *( field-content | LWS ) field-content = <ÇÊµå °ªÀ» ±¸¼ºÇÏ´Â OCTET À̸ç *TEXT ¶Ç´Â ÅäÅ«, tspecials, ÀÎ¿ë ½ºÆ®¸µÀÇ °áÇÕÀ¸·Î ±¸¼ºµÈ´Ù.> ´Ù¸¥ Çʵå À̸§À¸·Î ¼ö½ÅµÈ Çì´õ ÇʵåÀÇ Á¤·Ä ¼ø¼­´Â Áß¿äÇÏÁö ¾Ê´Ù. ±×·¯³ª General- Header Çʵ带 ¸Ç óÀ½ ³ª¿À°í Request-HeaderÀ̳ª Response-Header Çʵ尡 µÚ¸¦ µû ¸£°í ¸¶Áö¸·¿¡ Entity-Header Çʵ尡 ³ª¿À´Â °ÍÀÌ "¹Ù¶÷Á÷ÇÑ °üÇà" ÀÌ´Ù. µ¿ÀÏÇÑ Çʵå À̸§À» °¡Áø º¹¼öÀÇ Message-Header Çʵ尡 ÇØ´çµÇ´Â Çì´õ ÇʵåÀÇ Àüü field-value°¡ ÄÞ¸¶·Î ±¸ºÐµÈ ¸ñ·Ï[¿¹¸¦ µé¸é #(values)]À¸·Î ±ÔÁ¤µÇ¾î ÀÖÀ» °æ¿ì¿¡¸¸ ¸Þ ½ÃÁö¿¡ Á¸ÀçÇÒ ¼ö ÀÖ´Ù. º¹¼öÀÇ Çì´õ Çʵ带 µÚ µû¸£´Â field-value¸¦ óÀ½¿¡ Ãß°¡ÇÏ¿©(°¢ °¢ÀÇ °ªÀº ÄÞ¸¶·Î ±¸ºÐµÈ´Ù) ¸Þ½ÃÁöÀÇ Àǹ̸¦ º¯È­ ½ÃÅ°Áö ¾Ê°í ´ÜÀÏ "field-name: field- value" ½ÖÀ¸·Î °áÇÕÇÒ ¼ö À־´Â ¾È µÈ´Ù. µû¶ó¼­ µ¿ÀÏÇÑ field-nameÀÇ Çì´õ Çʵ带 ¼ö ½ÅÇÏ´Â ¼ø¼­´Â °áÇÕµÈ ÇÊµå °ªÀ» Çؼ®ÇÏ´Â µ¥ Áß¿äÇÏ°Ô µÈ´Ù. ±×·¯¹Ç·Î ÇÁ¶ô½Ã´Â ¸Þ½ÃÁö¸¦ Àü ¼ÛÇÒ ¶§ ÀÌ·¯ÇÑ ÇÊµå °ªÀÇ ¼ø¼­¸¦ Àý´ë º¯°æÇؼ­´Â ¾È µÈ´Ù. [Page 31] 4.3 ¸Þ½ÃÁö º»¹® HTTP ¸Þ½ÃÁöÀÇ Message-Body´Â (¸¸¾à ÀÖ´Ù¸é) ¿ä±¸ ¶Ç´Â ÀÀ´ä°ú °ü·ÃµÈ Entity-Body¸¦ Àü¼ÛÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. Message-Body´Â Transfer-Encoding Çì´õ Çʵå(14.40 Àý)¿¡ ¼³¸í µÈ Àü¼Û ÄÚµùÀÌ Àû¿ëµÇ¾úÀ» ¶§¿¡¸¸ Entity-Body¿Í ´Ù¸£´Ù. message-body = Entity-Body | ¾ÈÀüÇÏ°íµµ ÀûÀýÇÑ ¸Þ½ÃÁö Àü¼ÛÀ» °¡´ÉÇÏ°Ô Çϱâ À§ÇØ ¾ÖÇø®ÄÉÀ̼ÇÀÌ Àû¿ëÇÑ Àü¼Û ÄÚµù ¹æ½Ä À» Ç¥½ÃÇϱâ À§ÇØ ¹Ýµå½Ã Transfer-EncodingÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. Transfer-EncodingÀº ¸Þ½ÃÁöÀÇ Æ¯¼ºÀÌÁö ¿£ÅÍƼÀÇ Æ¯¼ºÀÌ ¾Æ´Ï±â ¶§¹®¿¡ ¿ä±¸/ÀÀ´ä¿¡ µû¶ó¼­ ¾ÖÇø®ÄÉÀ̼ÇÀÌ Ãß°¡ ¶Ç´Â »èÁ¦ÇÒ ¼ö ÀÖ´Ù. Message-Body¸¦ ¾ðÁ¦ ¸Þ½ÃÁö¿¡¼­ »ç¿ëÇÒ ¼ö Àִ°¡¿¡ ´ëÇÑ ±ÔÄ¢Àº ¿ä±¸¿Í ÀÀ´ä¿¡ ´ëÇØ °¢ °¢ ´Ù¸£´Ù. ¿ä±¸ ¸Þ½ÃÁö¿¡ ÀÖ¾î Message-BodyÀÇ Á¸Àç´Â ¿ä±¸ Message-Header¿¡ Content-Length ¶Ç´Â Transfer-Encoding Çì´õ Çʵ带 Æ÷ÇÔÇÔÀ¸·Î½á Ç¥½ÃÇÒ ¼ö ÀÖ´Ù. Message-Body´Â ¿ä ±¸ method(5.1.1 Àý)°¡ Entity-Body¸¦ Çã¿ëÇÒ ¶§¸¸ ¿ä±¸ ¸Þ½ÃÁö¿¡ Æ÷ÇÔÇÒ ¼öµµ ÀÖ´Ù. ÀÀ´ä ¸Þ½ÃÁöÀÇ °æ¿ì Message-Body°¡ ¸Þ½ÃÁö¿¡ Æ÷ÇԵǾî Àִ°¡ÀÇ ¿©ºÎ´Â ¿ä±¸ method ¹× ÀÀ´ä»óÅ ÄÚµå(6.1.1 Àý) ¸ðµÎ¿¡ ´Þ·Á ÀÖ´Ù. HEAD ¿ä±¸ method¿¡ ´ëÇÑ ¸ðµç ÀÀ´äÀº Entity- Header Çʵ尡 Æ÷ÇÔÇÑ °Íó·³ ¹Ï°Ô ÇÏ¿©µµ Message-Body¸¦ Æ÷ÇÔÇؼ­´Â Àý´ë ¾È µÈ´Ù. ¸ð µç 1xx (Informational), 204 (No Content) ¹× 304 (Not Modified) ÀÀ´äÀº Message-Body¸¦ Àý´ë Æ÷ÇÔÇؼ­´Â ¾È µÈ´Ù. ´Ù¸¥ ¸ðµç ÀÀ´äÀº ºñ·Ï ±æÀÌ°¡ Á¦·Î¶ó ÇÒÁö¶óµµ Message-Body¸¦ Æ÷ÇÔÇÑ´Ù. 4.4 ¸Þ½ÃÁö ±æÀÌ Message-Body°¡ ¸Þ½ÃÁö¿¡ Æ÷ÇԵǾî ÀÖÀ» ¶§ ±× º»¹®ÀÇ ±æÀÌ´Â ´ÙÀ½ ÁßÀÇ Çϳª¿¡ ÀÇÇØ °áÁ¤ µÈ´Ù.(¿ì¼± ¼øÀ§¿¡ µû¶ó) 1. Message-Body¸¦ Àý´ë Æ÷ÇÔÇؼ­´Â ¾È µÇ´Â ¸ðµç ÀÀ´ä ¸Þ½ÃÁö´Â (1xx, 204 ¹× 304 ÀÀ´ä ¸Þ½ÃÁö¿Í HEAD ¿ä±¸¿¡ ´ëÇÑ ¸ðµç ÀÀ´ä) Entity-Header ÇʵåÀÇ Á¸Àç À¯¹«¿¡ °ü°è¾øÀÌ Çì´õ ÇÊµå ´ÙÀ½ÀÇ Ã¹ ºó ¶óÀÎÀ¸·Î Ç×»ó Á¾·áµÈ´Ù. 2. Transfer-Encoding Çì´õ Çʵ尡 (14.40 Àý) Á¸ÀçÇÏ°í "chunked" Àü¼Û ÄÚµùÀÌ Àû¿ëµÇ ¾úÀ½À» Ç¥½ÃÇÏ°í ÀÖÀ¸¸é ±æÀÌ´Â chunked ÀÎÄÚµù¿¡ (3.6 Àý) ÀÇÇØ ±ÔÁ¤µÈ´Ù. [Page 32] 3. Content-Length Çì´õ Çʵ尡 (14.14 Àý) Á¸ÀçÇÏ°í ±× ¹ÙÀÌÆ® ´ÜÀ§ÀÇ °ªÀÌ Message- BodyÀÇ ±æÀ̸¦ Ç¥½ÃÇÑ´Ù. 4. ¸Þ½ÃÁö°¡ ÀڽŠ½º½º·ÎÀÇ °æ°è ¼³Á¤ ¿ä¼Ò·Î¼­ ¹Ìµð¾î Çü½Ä "multipart/byteranges"¸¦ »ç¿ëÇÏ°í ÀÖ´Ù¸é ¹Ù·Î ÀÌ°ÍÀÌ ±æÀ̸¦ ±ÔÁ¤ÇÑ´Ù. ÀÌ ¹Ìµð¾î Çü½ÄÀº ¼Û½ÅÀÚ°¡ ¼ö½ÅÃøÀÌ ±× °ÍÀ» ºÐ¼®ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» ¾Ë ¼ö ¾øÀ» ¶§¿¡´Â Àý´ë »ç¿ëÇؼ­´Â ¾È µÈ´Ù. ¾î¶² ¿ä±¸ ¸Þ ½ÃÁö°¡ º¹¼öÀÇ Byte-Range ¸í½ÃÀÚ¸¦ °¡Áø Range Çì´õ¸¦ °®°í ÀÖÀ¸¸é Ŭ¶óÀ̾ðÆ®°¡ multipart/byteranges ÀÀ´äÀ» ºÐ¼®ÇÒ ¼ö ÀÖÀ½À» ÀǹÌÇÑ´Ù. 5. ¿¬°áÀ» ´ÜÀýÇÏ´Â ¼­¹ö¿¡ ÀÇÇÏ¿©. (¿¬°á ´ÜÀýÀº ¼­¹ö°¡ ÀÀ´äÀ» µÇµ¹·Á ÁÙ °¡´É¼ºÀ» ÀüÇô ³²°Ü µÎÁö ¾Ê±â ¶§¹®¿¡ ÀÀ´ä º»¹®ÀÇ Á¾·á¸¦ Ç¥½ÃÇÏ´Â µ¥ »ç¿ëÇؼ­´Â ¾È µÈ´Ù.) HTTP/1.0 ¾ÖÇø®ÄÉÀ̼ǰúÀÇ È£È¯¼º À¯Áö¸¦ À§ÇØ Message-Body¸¦ °¡Áö°í ÀÖ´Â HTTP/1.1 ¿ä ±¸´Â ¼­¹ö°¡ HTTP/1.1À» µû¸¥´Ù´Â °ÍÀ» ¾Ë±â Àü¿¡´Â ¹Ýµå½Ã À¯È¿ÇÑ Content-Length Çì´õ Çʵ带 Æ÷ÇÔÇØ¾ß ÇÑ´Ù. ¿ä±¸°¡ Message-Body¸¦ Æ÷ÇÔÇÏ°í ÀÖ°í Content-Length°¡ ÁÖ¾îÁö Áö ¾Ê¾ÒÀ¸¸é ¼­¹ö´Â ¸Þ½ÃÁöÀÇ ±æÀ̸¦ °áÁ¤ÇÒ ¼ö ¾øÀ» ¶§´Â 400(Bad Request)À» ÀÀ´äÀ¸·Î º¸³»°í, °è¼ÓÇÏ¿© À¯È¿ÇÑ Content-Length ¼ö½ÅÀ» ±â´Ù¸®°íÀÚ ÇÒ ¶§´Â 411(Length Required) ¸Þ½ÃÁö¸¦ ¹Ý¼ÛÇÏ¿©¾ß ÇÑ´Ù. ¿£ÅÍƼ¸¦ ¼ö½ÅÇÏ´Â ¸ðµç HTTP/1.1 ¾ÖÇø®ÄÉÀ̼ÇÀº ¹Ýµå½Ã "chunked" Àü¼Û ÄÚµù(3.6 Àý)À» Çã ¿ëÇؾ߸¸ ÇÑ´Ù. ÀÌ·¸°Ô ÇÔÀ¸·Î¼­ ¸Þ½ÃÁöÀÇ ±æÀ̸¦ ¹Ì¸® °áÁ¤ÇÒ ¼ö ¾øÀ» ¶§ ÀÌ ¸ÞÄ¿´ÏÁòÀÌ »ç ¿ëµÉ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ¸Þ½ÃÁö´Â Content-Length Çì´õ ÇÊµå ¹× "chunked" Àü¼Û ÄÚµùÀ» ¸ðµÎ Æ÷ÇÔÇؼ­´Â ¾È µÈ´Ù. ¸¸¾à µÑ ´Ù¸¦ ¼ö½ÅÇÏ¿´À¸¸é Content-Length´Â ¹Ýµå½Ã ¹«½ÃÇØ¾ß ÇÑ´Ù. Message-Body°¡ Çã¿ëµÈ ¸Þ½ÃÁö¿¡ Content-Length°¡ ÁÖ¾îÁ³À» ¶§ ±× ÇÊµå °ªÀº ¹Ýµå½Ã Message-BodyÀÇ OCTET ¼ýÀÚ¿Í Á¤È®ÇÏ°Ô ÀÏÄ¡ÇØ¾ß ÇÑ´Ù. HTTP/1.1 »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â À¯È¿ ÇÏÁö ¾ÊÀº ±æÀ̸¦ ¼ö½ÅÇ߰ųª ŽÁöÇßÀ» ¶§ ¹Ýµå½Ã »ç¿ëÀÚ¿¡°Ô À̸¦ ¾Ë·Á¾ß ÇÑ´Ù. [Page 33] 4.5 ÀÏ¹Ý Çì´õ ÇÊµå ¿ä±¸¿Í ÀÀ´ä ¸Þ½ÃÁö ¸ðµÎ¿¡ ÀϹÝÀûÀ¸·Î Àû¿ëÇÒ ¼ö ÀÖÁö¸¸ Àü¼ÛµÇ´Â ¿£ÅÍƼ¿¡´Â Àû¿ëµÇÁö ¾Ê´Â Çì´õ Çʵ尡 ¸î °¡Áö ÀÖ´Ù. ÀÌ·¯ÇÑ Çì´õ Çʵå´Â Àü¼ÛµÇ´Â ¸Þ½ÃÁö¿¡¸¸ Àû¿ëµÈ´Ù. general-header = Cache-Control ; 14.9 Àý | Connection ; 14.10 Àý | Date ; 14.19 Àý | Pragma ; 14.32 Àý | Transfer-Encoding ; 14.40 Àý | Upgrade ; 14.41 Àý | Via ; 14.44 Àý General-Header Çʵå À̸§À» Ãß°¡ÇÏ°íÀÚ ÇÑ´Ù¸é HTTP ±Ô¾à ¹öÀüÀÌ º¯°æµÇ¾î¾ß ÇÑ´Ù. ±×·¯ ³ª Åë½Å¿¡ Âü¿©ÇÏ´Â ¸ðµç ´ë»óÀÌ »õ·Î¿î ¶Ç´Â ½ÇÇèÀûÀÎ Çì´õ Çʵ带 General-Header ÇÊµå ·Î ÀÎÁöÇÑ´Ù¸é À̵é Çì´õ Çʵ带 ÀÏ¹Ý Çì´õÀÇ Àǹ̷ΠÀû¿ëÇÒ ¼ö ÀÖ´Ù. ÀνĵÇÁö ¾ÊÀº Çì´õ ÇÊ µå´Â Entity-Header Çʵå·Î 󸮵ȴÙ. 5 ¿ä±¸(Request) Ŭ¶óÀ̾ðÆ®·ÎºÎÅÍ ¼­¹ö·ÎÀÇ ¿ä±¸ ¸Þ½ÃÁö´Â ÇØ´ç ¸Þ½ÃÁöÀÇ Ã¹ ¶óÀÎ ³»¿¡ ÀÚ¿ø, ÀÚ¿øÀÇ ½Äº°ÀÚ ¹× »ç¿ë ÁßÀÎ ±Ô¾à ¹öÀü¿¡ Àû¿ëÇÒ method¸¦ Æ÷ÇÔÇÑ´Ù. Request = Request-Line ; 5.1 Àý *( general-header ; 4.5 Àý | request-header ; 5.3 Àý | Entity-Header ) ; 7.1 Àý CRLF [ message-body ] ; 7.2 Àý 5.1 Request-Line Request-LineÀº method ÅäÅ«À¸·Î ½ÃÀÛÇϸç Request-URI ¹× ±Ô¾à ¹öÀüÀÌ µÚ µû¸£¸ç CRLF ·Î Á¾°áµÈ´Ù. °¢ ¿ä¼Ò´Â SP ¹®ÀÚ·Î ±¸ºÐµÈ´Ù. CR ¶Ç´Â LF´Â ¸¶Áö¸· CRLF ¼ø¼­ ÀÌ¿Ü¿¡´Â Çã¿ë µÇÁö ¾Ê´Â´Ù. Request-Line = Method SP Request-URI SP HTTP-Version CRLF [Page 34] 5.1.1 Method Method ÅäÅ«Àº Request-URI·Î ½Äº°µÇ´Â ÀÚ¿ø¿¡¼­ ¼öÇàÇÒ method¸¦ Ç¥½ÃÇÑ´Ù. method´Â ´ë ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÑ´Ù. Method = "OPTIONS" ; 9.2 Àý | "GET" ; 9.3 Àý | "HEAD" ; 9.4 Àý | "POST" ; 9.5 Àý | "PUT" ; 9.6 Àý | "DELETE" ; 9.7 Àý | "TRACE" ; 9.8 Àý | extension-method extension-method = token ÀÚ¿øÀÌ Çã¿ëÇÏ´Â methodÀÇ ¸ñ·ÏÀº Allow Çì´õ Çʵå(14.7 Àý)¿¡ ¸í½ÃÇÒ ¼ö ÀÖ´Ù. ÀÀ´äÀÇ ¸®ÅÏ ÄÚµå´Â Çã¿ëµÈ method ¼¼Æ®°¡ ¿ªµ¿ÀûÀ¸·Î º¯ÇÒ ¼ö Àֱ⠶§¹®¿¡ Ç×»ó method°¡ ÇöÀç ÀÚ¿ø¿¡¼­ Çã¿ëµÇ´ÂÁö ¿©ºÎ¸¦ Ŭ¶óÀ̾ðÆ®¿¡°Ô ¾Ë·Á ÁØ´Ù. ¼­¹ö´Â ¼­¹ö°¡ method¸¦ ¾Ë°í´Â ÀÖÀ¸³ª ¿ä±¸µÈ ÀÚ¿ø¿¡¼­´Â »ç¿ëÇÒ ¼ö ¾øÀ» ¶§ »óÅ ÄÚµå 405(Method Not Allowed)¸¦, ¼­¹ö°¡ method¸¦ ÀÎÁöÇÏÁö ¸øÇϰųª ±¸ÇöÇÏÁö ¾Ê¾ÒÀ» ¶§´Â »óÅ ÄÚµå 501(Not Implemented)À» ¸®ÅÏÇؾ߸¸ ÇÑ´Ù. ¼­¹ö°¡ ¾Ë°í ÀÖ´Â methodÀÇ ¸ñ·ÏÀº Public Response-Header Çʵå(14.35 Àý)¿¡ ³ª¿­ ÇÒ ¼ö ÀÖ´Ù. GET ¹× HEAD method´Â ¸ðµç ÀϹÝÀûÀÎ ¸ñÀûÀÇ ¼­¹ö°¡ ¹Ýµå½Ã Áö¿øÇØ¾ß ÇÑ´Ù. ´Ù¸¥ ¸ðµç method´Â ¼±ÅÃÀûÀÌ´Ù. ÇÏÁö¸¸ GET ¹× HEAD method°¡ ±¸ÇöµÇ¾úÀ¸¸é ¹Ýµå½Ã 9 Àå¿¡ ¸í½ÃµÈ ÀÇ ¹Ì¿Í µ¿ÀÏÇÏ°Ô ±¸ÇöµÇ¾î¾ß ÇÑ´Ù. 5.1.2 Request-URI(Request-URI) Request-URI ´Â º¸ÆíÀûÀÎ ÀÚ¿ø ½Äº°ÀÚ(3.2 Àý)ÀÌ¸ç ¿ä±¸¸¦ Àû¿ëÇÒ ÀÚ¿øÀ» ½Äº°ÇÑ´Ù. Request-URI = "*" | absoluteURI | abs_path Request-URIÀÇ ¼¼ °¡Áö ¼±Åà »çÇ×Àº ¿ä±¸ÀÇ ¼º°Ý¿¡ ´Þ·Á ÀÖ´Ù. º°Ç¥ "*"´Â ¿ä±¸¸¦ Ưº°ÇÑ ÀÚ¿ø¿¡ Àû¿ëÇÏÁö ¾Ê°í ¼­¹ö ÀÚü¿¡ Àû¿ëÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÏ¸ç »ç¿ëµÈ method°¡ ¹Ýµå½Ã ÀÚ¿ø ¿¡ Àû¿ëµÇ´Â °ÍÀº ¾Æ´Ò ¶§ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÇÑ ¿¹¸¦ º¸¸é; OPTIONS * HTTP/1.1 [Page 35] ÇÁ¶ô½Ã¿¡°Ô ¿ä±¸¸¦ ¸¸µé ¶§´Â absoluteURI Çü½ÄÀÌ ÇÊ¿äÇÏ´Ù. ÇÁ¶ô½Ã´Â À¯È¿ÇÑ Ä³½Ã·ÎºÎÅÍ ¿ä±¸¸¦ Àü¼ÛÇϰųª ó¸®ÇÏ¿© ÀÀ´äÀ» µÇµ¹·Á ÁÖ¾î¾ß ÇÑ´Ù. ÇÁ¶ô½Ã´Â absoluteURI¿¡ ¸í½ÃµÈ ´ë·Î ¿ä±¸¸¦ ´Ù¸¥ ÇÁ¶ô½Ã·Î Àü¼ÛÇϰųª ¼­¹ö·Î Á÷Á¢ Àü¼ÛÇÒ ¼ö ÀÖ´Ù´Â Á¡À» ÁÖ¸ñÇØ¾ß ÇÑ´Ù. ¿ä±¸°¡ ¹«ÇÑ ·çÇÁ¸¦ µµ´Â °ÍÀ» ¹æÁöÇϱâ À§ÇÏ¿© ÇÁ¶ô½Ã´Â ¹Ýµå½Ã ¸ðµç º°¸í(aliases), Áö¿ªÀû º¯ÀÌ ¹× IP ÁÖ¼Ò ¼ýÀÚ¸¦ Æ÷ÇÔÇÑ ¸ðµç ¼­¹ö À̸§À» ÀÎÁöÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. Request-LineÀÇ ¿¹´Â ´ÙÀ½°ú °°´Ù. GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.1 ÇâÈÄ ¹öÀü HTTP¿¡¼­ ¸ðµç ¿ä±¸°¡ absoluteURI·Î ÀÌÀüµÉ ¼ö ÀÖµµ·Ï Çϱâ À§ÇØ ¸ðµç HTTP/1.1 ¼­¹ö´Â ºñ·Ï HTTP/1.1 Ŭ¶óÀ̾ðÆ®°¡ ´ÜÁö ÇÁ¶ô½Ã¿¡ ´ëÇÑ ¿ä±¸¿¡¼­¸¸ ±×°ÍÀ» »ý»êÇÑ ´Ù ÇÒÁö¶óµµ ¹Ýµå½Ã ¿ä±¸ÀÇ absoluteURI Çü½ÄÀ» ¼ö¿ëÇØ¾ß ÇÑ´Ù. °¡Àå ÀϹÝÀûÀÎ ÇüÅÂÀÇ Request-URI´Â ¿ø¼­¹ö³ª °ÔÀÌÆ®¿þÀÌÀÇ ÀÚ¿øÀ» ½Äº°ÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. ÀÌ °æ¿ìURIÀÇ Àý´ëÀû °æ·Î´Â ¹Ýµå½Ã Request-URIó·³ Àü¼Û(3.2.1ÀýÀÇ abs_path ÂüÁ¶)µÇ ¾î¾ß Çϸç URIÀÇ ³×Æ®¿öÅ© À§Ä¡´Â ¹Ýµå½Ã Host Çì´õ Çʵ带 ÀÌ¿ëÇÏ¿© Àü¼ÛµÇ¾î¾ß ÇÑ´Ù. ¿¹ ¸¦ µé¾î ¿ø¼­¹ö¿¡¼­ Á÷Á¢ ÀÚ¿øÀ» Á¶È¸ÇÏ°íÀÚ Çϴ Ŭ¶óÀ̾ðÆ®´Â "www.w3.org" È£½ºÆ®ÀÇ Æ÷ Æ® 80À¸·Î TCP Á¢¼ÓÀ» ÇÑ ´ÙÀ½ ¾Æ·¡ÀÇ ¶óÀÎÀ» Àü¼ÛÇÒ °ÍÀÌ´Ù. GET /pub/WWW/TheProject.html HTTP/1.1 Host: www.w3.org À§ ³»¿ë ´ÙÀ½¿¡ ¿ä±¸ ¸Þ½ÃÁöÀÇ ³ª¸ÓÁö ºÎºÐÀÌ µÚµû¸¥´Ù. Àý´ë °æ·Î´Â Àý´ë ºñ¾î¼­´Â ¾È µÈ´Ù. ¿ø·¡ URIÀÇ Àý´ë °æ·Î°¡ ºñ¾îÀÖÀ» ¶§¿¡´Â ¹Ýµå½Ã "/" (¼­¹öÀÇ ·çÆ® µð·ºÅ丮)¸¦ Ãß°¡ÇÑ´Ù. ÇÁ¶ô½Ã°¡ Request-URI¿¡ ¾Æ¹«·± °æ·Î°¡ ¾ø´Â ¿ä±¸¸¦ ¼ö½ÅÇÏ°í ¸í½ÃµÈ method°¡ º°Ç¥ ¸ð¾ç ÀÇ ¿ä±¸¸¦ Áö¿øÇÒ ¼ö ÀÖÀ¸¸é ÀÀ´ä ¸Þ½ÃÁöÀÇ Àü´Þ °æ·Î »óÀÇ (Request chain) ¸¶Áö¸· ÇÁ¶ô½Ã´Â ¹Ýµå½Ã ¿ä±¸ ¸Þ½ÃÁö¿¡ ¸¶Áö¸· Request-URI·Î¼­ "*"¸¦ ÷ºÎÇÏ¿© Àü¼ÛÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î ´ÙÀ½°ú °°Àº ¿ä±¸ ¸Þ½ÃÁö¸¦ OPTIONS http://www.ics.uci.edu:8001 HTTP/1.1 ÇÁ¶ô½Ã´Â "www.ics.uci.edu".È£½ºÆ®ÀÇ Æ÷Æ® 8001°ú ¿¬°áÇÑ ´ÙÀ½ ¾Æ·¡¿Í °°ÀÌ Àü¼ÛÇÒ °ÍÀÌ ´Ù. OPTIONS * HTTP/1.1 Host: www.ics.uci.edu:8001 Request-URI ´Â 3.2.1 Àý¿¡¼­ ¸í½ÃÇÑ Çü½ÄÀ¸·Î Àü¼ÛµÈ´Ù. ¿ø¼­¹ö´Â ¿ä±¸¸¦ ÀûÀýÈ÷ Çؼ®Çϱâ À§ÇÏ¿© ¹Ýµå½Ã Request-URI¸¦ Çص¶ÇØ¾ß ÇÑ´Ù. ¼­¹ö´Â À¯È¿ÇÏÁö ¾Ê´Â Request-URI¸¦ ¼ö ½ÅÇϸé ÀûÇÕÇÑ »óÅ ÄÚµå·Î ÀÀ´äÇØ¾ß ÇÑ´Ù. [Page 36] ¿ä±¸ ¸Þ½ÃÁö¸¦ Àü¼ÛÇÒ ¶§ ÇÁ¶ô½Ã´Â ¾î¶² ¹æ½ÄÀ¸·Îµç À§¿¡¼­ ¼³¸íÇÑ °Íó·³ ºñ¾î ÀÖ´Â Àý´ë °æ ·Î¸¦ "*"·Î ´ëüÇÏ´Â °Í ¿Ü¿¡´Â ÇÁ¶ô½Ã ³»ºÎÀÇ ±¸Çö ¹æ¹ý¿¡ °ü°è¾øÀÌ Àý´ë·Î Request-URI ÀÇ "abs_path" ºÎºÐÀ» ÀçÀÛ¼ºÇؼ­´Â ¾È µÈ´Ù. ÁÖÀÇ : "ÀçÀÛ¼º ±ÝÁö" ±ÔÄ¢Àº ¿ø¼­¹ö°¡ ƯÁ¤ ¸ñÀûÀ» À§Çؼ­ ¿¹¾àµÇÁö ¾ÊÀº URL ¹®ÀÚ¸¦ ÀûÀý ÇÏ°Ô »ç¿ëÇÏÁö ¸øÇÏ°í ÀÖÀ» ¶§ ¿ä±¸ÀÇ Àǹ̸¦ º¯°æÇÏÁö ¸øÇϵµ·Ï ÇÑ´Ù. ±¸ÇöÀÚ´Â ¸î¸î HTTP/1.1 ÀÌÀüÀÇ ÇÁ¶ô½Ã´Â Request-URI¸¦ ÀçÀÛ¼ºÇÏ´Â °ÍÀ¸·Î ¾Ë·ÁÁ® ÀÖÀ½À» ÀνÄÇÏ°í ÀÖ ¾î¾ß¸¸ ÇÑ´Ù. 5.2 ¿ä±¸¿¡ ÀÇÇØ ½Äº°µÇ´Â ÀÚ¿ø HTTP/1.1 ¿ø¼­¹ö´Â ÀÎÅÍ³Ý ¿ä±¸°¡ ½Äº°ÇÏ´Â Á¤È®ÇÑ ÀÚ¿øÀº Request-URI ¹× Host Çì´õ ÇÊµå ¸ðµÎ¸¦ Á¶»çÇÏ¿© °áÁ¤µÈ´Ù´Â °ÍÀ» ÀÎÁöÇÏ°í ÀÖ¾î¾ß ÇÑ´Ù. ¿ä±¸¹ÞÀº È£½ºÆ®¿Í ´Ù¸¥ ÀÚ¿øÀ» Çã¿ëÇÏÁö ¾Ê´Â ¿ø¼­¹ö´Â Host Çì´õ ÇÊµå °ªÀ» ¹«½ÃÇÒ ¼ö ÀÖ ´Ù. (±×·¯³ª HTTP/1.1¿¡¼­ÀÇ Host Áö¿ø¿¡ °üÇÑ ´Ù¸¥ ÇÊ¿ä Á¶°Ç¿¡ °üÇÏ¿©´Â 19.5.1ÀýÀ» ÂüÁ¶ÇÑ ´Ù.) ¿ä±¸¹ÞÀº È£½ºÆ®¿¡ ±âÃÊÇÏ¿© ÀÚ¿øÀ» ±¸º°ÇÏ´Â ¿ø¼­¹ö(¶§·Î °¡»ó È£½ºÆ® ¶Ç´Â Ç㿵 È£½ºÆ® ÀÌ ¸§À̶ó°í ºÒ¸°´Ù)´Â HTTP/1.1 ¿ä±¸¿¡ ´ëÇÑ ÀÚ¿øÀ» °áÁ¤ÇÒ ¶§ ´ÙÀ½ÀÇ ±ÔÄ¢À» ¹Ýµå½Ã µû¶ó¾ß ÇÑ ´Ù. 1. Request-URI °¡ absoluteURIÀ̸é È£½ºÆ®´Â Request-URIÀÇ ÀϺκÐÀÌ´Ù. ¿ä±¸ÀÇ ¾î¶°ÇÑ Host Çì´õ ÇÊµå °ªµµ ¹Ýµå½Ã ¹«½ÃÇØ¾ß ÇÑ´Ù. 2. Request-URI °¡ absoluteURI°¡ ¾Æ´Ï¸é ¿ä±¸´Â Host Çì´õ Çʵ带 Æ÷ÇÔÇÑ´Ù. È£½º Æ®´Â Host Çì´õ ÇÊµå °ªÀ¸·Î °áÁ¤µÈ´Ù. 3. ±ÔÄ¢ 1, 2¿¡ ÀÇÇÏ¿© ÁöÁ¤µÈ È£½ºÆ®°¡ ¼­¹öÀÇ À¯È¿ÇÑ È£½ºÆ®°¡ ¾Æ´Ï¸é ÀÀ´äÀº ¹Ýµå½Ã 400(Bad Request) ¿¡·¯ ¸Þ½ÃÁöÀ̾î¾ß ÇÑ´Ù. Host Çì´õ Çʵ尡 ¾ø´Â HTTP/1.0ÀÇ ¼ö½ÅÃøÀº Á¤È®ÇÏ°Ô ¹«½¼ ÀÚ¿øÀ» ¿ä±¸Çß´ÂÁö °áÁ¤Çϱâ À§ ÇØ ¹ß°ß¹ýÀ» (heuristics - ¿¹¸¦ µé¾î À¯ÀÏÇÑ ¹«¾ùÀΰ¡ÀÇ Æ¯º°ÇÑ È£½ºÆ®·ÎÀÇ URI °æ·Î¸¦ °Ë»ç) »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. 5.3 ¿ä±¸ Çì´õ ÇÊµå ¿ä±¸ Çì´õ Çʵå´Â ¿ä±¸ ¹× Ŭ¶óÀ̾ðÆ® Àڽſ¡ °üÇÑ Ãß°¡ Á¤º¸¸¦ Ŭ¶óÀ̾ðÆ®°¡ ¼­¹ö¿¡°Ô Àü´Þ ÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ÀÌ Çʵå´Â ÇÁ·Î±×·¡¹Ö ¾ð¾î method È£Ãâ½Ã »ç¿ëÇÏ´Â ÆĶó¹ÌÅÍ¿Í µ¿ÀÏÇÑ Àǹ̷Π¿ä±¸ º¯°æÀÚ(request modifiers)ÀÇ ¿ªÇÒÀ» ¼öÇàÇÑ´Ù. [Page 37] request-header = Accept ; 14.1 Àý | Accept-Charset ; 14.2 Àý | Accept-Encoding ; 14.3 Àý | Accept-Language ; 14.4 Àý | Authorization ; 14.8 Àý | From ; 14.22 Àý | Host ; 14.23 Àý | If-Modified-Since ; 14.24 Àý | If-Match ; 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.36 Àý | Referer ; 14.37 Àý | User-Agent ; 14.42 Àý Request-Header Çʵå À̸§Àº ±Ô¾à ¹öÀüÀÇ º¯°æ°ú ÇÔ²² È®ÀåÇßÀ» ¶§¸¸ ½Å·Ú¼º ÀÖ°Ô È®ÀåµÉ ¼ö ÀÖ´Ù. ±×·¯³ª Åë½Å¿¡ Âü¿©ÇÏ´Â ¸ðµç ´ë»óÀÌ ±×°ÍÀ» Request-Header Çʵå·Î ÀÎÁöÇÑ´Ù¸é »õ·Ó°Å³ª ½ÇÇèÀûÀÎ Çì´õ Çʵ忡 ¿ä±¸ Çì´õÀÇ Àǹ̸¦ Àû¿ëÇÒ ¼ö ÀÖ´Ù. ÀÎÁ¤µÇÁö ¾ÊÀº Çì´õ ÇÊ µå´Â Entity-Header Çʵå·Î 󸮵ȴÙ. 6 ÀÀ´ä ¿ä±¸ ¸Þ½ÃÁö¸¦ ¼ö½ÅÇÏ°í Çؼ®ÇÑ ÈÄ ¼­¹ö´Â HTTP ÀÀ´ä ¸Þ½ÃÁö·Î ÀÀ´äÇÑ´Ù. Response = Status-Line ; 6.1 Àý *( general-header ; 4.5 Àý | response-header ; 6.2 Àý | Entity-Header ) ; 7.1 Àý CRLF [ message-body ] ; 7.2 Àý 6.1 »óÅ ¶óÀÎ(Status-Line) ÀÀ´ä ¸Þ½ÃÁöÀÇ Ã¹ ¶óÀÎÀº »óÅ ¶óÀÎÀÌ´Ù. »óÅ ¶óÀÎÀº ±Ô¾à ¹öÀü°ú ÀÌ¿¡ µÚµû¸£´Â ¼ýÀÚ »óÅ ÄÚµå ¹× ¿¬°üµÈ ÅؽºÆ® ¹®±¸·Î ±¸¼ºµÇ¾î ÀÖÀ¸¸ç °¢ ¿ä¼Ò´Â SP ¹®ÀÚ·Î ±¸ºÐµÈ´Ù. CR ¶Ç´Â LF ´Â ¸¶Áö¸· CRLF¿¡¸¸ Çã¿ëµÈ´Ù. [Page 38] Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF 6.1.1 »óÅ ÄÚµå ¹× ÀÌÀ¯ ¹®±¸ Status-Code(»óÅ ÄÚµå) ¿ä¼Ò´Â ¿ä±¸ ¸Þ½ÃÁö¸¦ ÀÌÇØÇÏ°í ÀÌ¿¡ µû¶ó ¼­ºñ½º¸¦ Á¦°øÇÏ·Á´Â µ¥ ¿¡ ´ëÇÑ °á°ú·Î¼­ ¼¼ ÀÚ¸®ÀÇ Á¤¼ö ÄÚµåÀÌ´Ù. ÀÌ ÄÚµå´Â 10Àå¿¡ ¸ðµÎ Á¤ÀǵǾî ÀÖ´Ù. Reason- Phrase(ÀÌÀ¯ ¹®±¸)´Â »óÅ Äڵ忡 ´ëÇØ ÂªÀº ÅؽºÆ® ÇüÅÂÀÇ ¼³¸íÀ» Á¦°øÇϱâ À§ÇØ »ç¿ëÇÑ´Ù. »óÅ ÄÚµå´Â ¿ÀÅ丶Ÿ(automata)°¡ »ç¿ëÇÏ°í ÀÌÀ¯ ¹®±¸´Â Àΰ£ »ç¿ëÀÚ°¡ »ç¿ëÇϱâ À§Çؼ­ÀÌ´Ù. »óÅ ÄÚµåÀÇ Ã¹ ÀÚ¸® ¼ýÀÚ´Â ÀÀ´äÀÇ Å¬·¡½º¸¦ ±ÔÁ¤ÇÏ¸ç ¸¶Áö¸· µÎ ÀÚ¸® ¼ýÀÚ´Â ¾Æ¹«·± ±¸ºÐ ¿ªÇÒÀ» °¡Áö°í ÀÖÁö ¾Ê´Ù. ù ÀÚ¸®¿¡´Â ´Ù¼¸ °¡ÁöÀÇ ¼ýÀÚ°¡ ¿Ã ¼ö ÀÖ´Ù. ? 1xx: ¾Ë¸² Á¤º¸ (Informational) ? ¿ä±¸°¡ ¼ö½ÅµÇ¾î °è¼Ó ó¸® ? 2xx: ¼º°ø (Success) ? ¿ä±¸ ¸Þ½ÃÁö¸¦ ¼º°øÀûÀ¸·Î ¼ö½Å ¹× Çؼ®À» ÇÏ°í À̸¦ Çã¿ë ? 3xx: ¹æÇâ Àç¼³Á¤ (Redirection) ? ¿ä±¸¿¡ ´ëÇÑ Ã³¸®¸¦ ¿Ï·áÇϱâ À§ÇÏ¿© Ãß°¡ Á¶Ä¡°¡ ÇÊ ¿ä ? 4xx: Ŭ¶óÀ̾ðÆ® ¿À·ù (Client Error) ? ¿ä±¸ ¸Þ½ÃÁö°¡ À߸øµÈ Çü½ÄÀ¸·Î ±¸¼ºµÇ¾î Àֱ⳪ Á¦´ë·Î ó¸®ÇÒ ¼ö ¾ø´Â °æ¿ì ? 5xx: ¼­¹ö ¿À·ù (Server Error) ? ¸í¹éÈ÷ À¯È¿ÇÑ ¿ä±¸ ¸Þ½ÃÁö¸¦ ¼­¹ö°¡ ó¸®ÇÒ ¼ö ¾øÀ» ¶§ HTTP/1.1ÀÌ ±ÔÁ¤ÇÑ ¼ýÀÚ »óÅ ÄÚµåÀÇ °³º°ÀûÀÎ °ª ¹× ÀÌ¿¡ »óÀÀÇÏ´Â Reason-PhraseÀÇ ¿¹°¡ ¾Æ ·¡¿¡ Á¦½ÃµÇ¾î ÀÕ´Ù. ¿©±â¿¡ ¿­°ÅµÈ ÀÌÀ¯ ±¸¹®Àº ´ÜÁö ±Ç°í »çÇ×ÀÏ »ÓÀÌ´Ù. - ÀÌÀ¯ ±¸¹®Àº ±Ô ¾à¿¡ ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê°íµµ Áö¿ªÀûÀÎ µî°¡¹°(equivalents)·Î ´ëüÇÒ ¼ö ÀÖ´Ù. Status-Code = "100" ; Continue(°è¼Ó) | "101" ; Switching Protocols(±Ô¾à Àüȯ) | "200" ; OK | "201" ; Created(»ý¼º µÇ¾úÀ½) | "202" ; Accepted(Á¢¼ö µÇ¾úÀ½) | "203" ; Non-Authoritative Information(ºñ ÀÎÁõ Á¤º¸) | "204" ; No Content (³»¿ëÀÌ ¾øÀ½) | "205" ; Reset Content(³»¿ëÀ» Áö¿ò) | "206" ; Partial Content(ºÎºÐ ³»¿ë) | "300" ; Multiple Choices(º¹¼ö ¼±ÅÃ) | "301" ; Moved Permanently(¿µ±¸ À̵¿) | "302" ; Moved Temporarily(Àӽà À̵¿) [Page 39] | "303" ; See Other(´Ù¸¥ °ÍÀ» ÂüÁ¶) | "304" ; Not Modified(º¯°æµÇÁö ¾Ê¾ÒÀ½) | "305" ; Use Proxy(ÇÁ¶ô½Ã¸¦ »ç¿ëÇÒ °Í) | "400" ; Bad Request(À߸øµÈ ¿ä±¸) | "401" ; Unauthorized(ÀÎÁõµÇÁö ¾Ê¾ÒÀ½) | "402" ; Payment Required(¿ä±Ý ÁöºÒ ¿äû) | "403" ; Forbidden(±ÝÁöµÇ¾úÀ½) | "404" ; Not Found(ãÀ» ¼ö ¾øÀ½) | "405" ; Method Not Allowed(method¸¦ »ç¿ëÇÒ ¼ö ¾øÀ½) | "406" ; Not Acceptable (Á¢¼öÇÒ ¼ö ¾øÀ½) | "407" ; Proxy Authentication Required(ÇÁ¶ô½Ã ÀÎÁõ ÇÊ¿ä) | "408" ; Request Time-out(¿ä±¸ ½Ã°£ ÃÊ°ú) | "409" ; Conflict(Ãæµ¹) | "410" ; Gone(³»¿ë¹°ÀÌ »ç¶óÁ³À½) | "411" ; Length Required(±æÀÌ°¡ ÇÊ¿äÇÔ) | "412" ; Precondition Failed(»çÀü Á¶°Ç ÃæÁ· ½ÇÆÐ) | "413" ; Request Entity Too Large (¿ä±¸ ¿£ÅÍƼ°¡ ³Ê¹« Å­) | "414" ; Request-URI Too Large(Request-URI°¡ ³Ê¹« ±è) | "415" ; Unsupported Media Type(Áö¿øµÇÁö ¾Ê´Â ¹Ìµð¾î À¯Çü) | "500" ; Internal Server Error(¼­¹ö ³»ºÎ ¿¡·¯) | "501" ; Not Implemented(±¸ÇöµÇÁö ¾Ê¾ÒÀ½) | "502" ; Bad Gateway(ºÒ·® °ÔÀÌÆ®¿þÀÌ) | "503" ; Service Unavailable(¼­ºñ½º¸¦ »ç¿ëÇÒ ¼ö ¾øÀ½) | "504" ; Gateway Time-out(°ÔÀÌÆ®¿þÀÌ ½Ã°£ ÃÊ°ú). | "505" ; HTTP Version not supported (Áö¿øµÇÁö ¾Ê´Â HTTP ¹ö Àü) | extension-code extension-code = 3DIGIT Reason-Phrase = * HTTP»óÅ ÄÚµå´Â È®ÀåÇÒ ¼ö ÀÖ´Ù. HTTP ¾ÖÇø®ÄÉÀ̼ÇÀÌ ¹Ýµå½Ã ¸ðµç µî·ÏµÈ »óÅ ÄÚµåÀÇ ÀÇ ¹Ì¸¦ ÀÌÇØÇÒ ÇÊ¿ä´Â ¾ø´Ù.(ÀÌ°ÍÀÌ ºÐ¸í ¹Ù¶÷Á÷Çϱâ´Â ÇÏ´Ù.) ±×·¯³ª ¾ÖÇø®ÄÉÀ̼ÇÀº ¹Ýµå½Ã ù ´ÜÀ§°¡ Ç¥½ÃÇÏ´Â »óÅ ÄÚµåÀÇ Å¬·¡½º¸¦ ÀÌÇØÇØ¾ß Çϸç ÀνÄÇÒ ¼ö ¾ø´Â ÀÀ´äÀº ÇØ´ç Ŭ·¡½ºÀÇ x00 »óÅ ÄÚµå¿Í µ¿ÀÏÇÑ °ÍÀ¸·Î ó¸®ÇØ¾ß ÇÑ´Ù. ÀνĵÇÁö ¾ÊÀº ÀÀ´äÀº Àý´ë ij½ÃÇؼ­´Â ¾È µÈ ´Ù. ¿¹¸¦ µé¾î Ŭ¶óÀ̾ðÆ®°¡ ÀνĵÇÁö ¾ÊÀº »óÅ ÄÚµå 431À» ¼ö½ÅÇÏ¿´À¸¸é Ŭ¶óÀ̾ðÆ®´Â ¿ä±¸ ¿¡ ¹«¾ùÀΰ¡ À߸øÀÌ ÀÖ¾úÀ¸¸ç ÀÀ´äÀ» 400 »óÅ ÄÚµå·Î ¼ö½ÅÇÑ °ÍÀ¸·Î ¾ÈÀüÇÏ°Ô °¡Á¤ÇÒ ¼ö ÀÖ ´Ù. ÀÌ·¯ÇÑ °æ¿ì »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â ÀÀ´ä°ú ÇÔ²² ¸®ÅÏ µÈ ¿£ÅÍƼ¸¦ »ç¿ëÀÚ¿¡°Ô Á¦½ÃÇØ¾ß ÇÑ´Ù. ¿£ÅÍƼ´Â ´ë°³ »ç¶÷ÀÌ ÀÐÀ» ¼ö ÀÖ´Â Á¤º¸(ºñ Á¤»óÀûÀÎ »óŸ¦ ¼³¸íÇÏ´Â Á¤º¸)¸¦ Æ÷ÇÔÇÏ°í ÀÖ ±â ¶§¹®ÀÌ´Ù. [Page 40] 6.2 ÀÀ´ä Çì´õ Çʵå ÀÀ´ä Çì´õ Çʵå´Â ¼­¹ö°¡ Status-Line¿¡ Ç¥½ÃÇÒ ¼ö ¾ø´Â ÀÀ´ä¿¡ ´ëÇÑ Ãß°¡ Á¤º¸¸¦ Àü´ÞÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ÀÌ·¯ÇÑ Çì´õ Çʵå´Â ¼­¹ö¿Í Request-URI°¡ ½Äº°ÇÏ´Â ÀÚ¿ø¿¡ Ãß°¡ÀûÀ¸·Î Á¢±ÙÇÏ´Â ¹æ¹ý¿¡ ´ëÇÑ Á¤º¸¸¦ Á¦°øÇÑ´Ù. response-header = Age ; 14.6 Àý | Location ; 14.30 Àý | Proxy-Authenticate ; 14.33 Àý | Public ; 14.35 Àý | Retry-After ; 14.38 Àý | Server ; 14.39 Àý | Vary ; 14.43 Àý | Warning ; 14.45 Àý | WWW-Authenticate ; 14.46 Àý Response-header Çʵå À̸§Àº ±Ô¾à ¹öÀüÀÇ º¯°æ°ú ÇÔ²² È®ÀåÇßÀ» ¶§¸¸ ½Å·Ú¼º ÀÖ°Ô È®ÀåµÉ ¼ö ÀÖ´Ù. ±×·¯³ª »õ·Î¿î ¶Ç´Â ½ÇÇèÀûÀ¸·Î »ç¿ëÇÏ´Â Çì´õ Çʵ忡 ÀÀ´ä Çì´õÀÇ Àǹ̸¦ Àû¿ëÇÒ ¼ö Àִµ¥, ÀÌ °æ¿ì´Â Åë½Å¿¡ Âü¿©ÇÏ´Â ¸ðµç ´ë»óÀÌ ±×°ÍÀ» response-header Çʵå·Î ÀÎ½Ä ÇÒ ¼ö ÀÖÀ» ¶§¸¸ °¡´ÉÇÏ´Ù. ÀνÄÇÒ ¼ö ¾ø´Â Çì´õ Çʵå´Â Entity-Header Çʵå·Î 󸮵ȴÙ. 7 ¿£ÅÍƼ(Entity) ¿ä±¸¿Í ÀÀ´ä ¸Þ½ÃÁö´Â º°µµ·Î ¿ä±¸ method³ª ÀÀ´ä »óÅ Äڵ忡 ÀÇÇÏ¿© Á¦ÇÑÀ» ¹ÞÁö ¾Ê´Â ÇÑ ¿£ÅÍƼ¸¦ Àü¼ÛÇÒ ¼öµµ ÀÖ´Ù. ¾î¶² ÀÀ´äÀº ¿£ÅÍƼ Çì´õ¸¸À» Æ÷ÇÔÇÒ ¼öµµ ÀÖÁö¸¸ ¿£ÅÍƼ´Â Entity-Header Çʵå¿Í Entity-Body·Î ±¸¼ºµÇ¾î ÀÖ´Ù. ÀÌ Àý¿¡¼­ ¼Û½ÅÀÚ¿Í ¼ö½ÅÀÚ´Â ´©°¡ ¿£ÅÍƼ¸¦ ¹ß¼ÛÇÏ°í ´©°¡ ¿£ÅÍƼ¸¦ ¼ö½ÅÇϴ°¡¿¡ µû¶ó Ŭ¶ó À̾ðÆ®¿Í ¼­¹ö ¾î´À ÂÊÀ̵çÁö ÁöĪÇÒ ¼ö ÀÖ´Ù. 7.1 ¿£ÅÍƼ Çì´õ ÇÊµå ¿£ÅÍƼ Çì´õ Çʵå´Â Entity-Body¿¡ ´ëÇÑ ¶Ç´Â º»¹®ÀÌ ¾ø´Ù¸é ¿ä±¸ ¸Þ½ÃÁö¸¦ ÅëÇØ È®ÀÎÇÒ ¼ö ÀÖ´Â ÀÚ¿ø¿¡ ´ëÇÑ ¼±ÅÃÀûÀÎ ¸ÞŸ Á¤º¸¸¦ Á¤ÀÇÇÏ°í ÀÖ´Ù. [Page 41] Entity-Header = Allow ; 14.7 Àý | Content-Base ; 14.11 Àý | Content-Encoding ; 14.12 Àý | Content-Language ; 14.13 Àý | Content-Length ; 14.14 Àý | Content-Location ; 14.15 Àý | Content-MD5 ; 14.16 Àý | Content-Range ; 14.17 Àý | Content-Type ; 14.18 Àý | ETag ; 14.20 Àý | Expires ; 14.21 Àý | Last-Modified ; 14.29 Àý | extension-header extension-header = message-header Extension-Header ¸ÞÄ¿´ÏÁòÀº ±Ô¾àÀ» º¯°æÇÏÁö ¾Ê°íµµ Ãß°¡ÀûÀÎ Entity-Header Çʵ带 Á¤ÀÇÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. ±×·¯³ª ÀÌ·¯ÇÑ Çʵ带 ¼ö½ÅÀÚ°¡ ÀνÄÇÒ ¼ö ÀÖ´Ù°í °¡Á¤ÇÒ ¼ö´Â ¾ø´Ù. ÀÎ ½ÄÇÒ ¼ö ¾ø´Â Çʵå´Â ¼ö½ÅÃøÀÌ ¹«½ÃÇØ¾ß Çϸç ÇÁ¶ô½Ã¸¦ ÅëÇÏ¿© Àü¼ÛÇÑ´Ù. 7.2 ¿£ÅÍƼ º»¹® (Entity Body) HTTP ¿ä±¸³ª ÀÀ´ä°ú ÇÔ²² ¹ß¼ÛµÈ (¸¸¾à ÀÖ´Ù¸é) Entity-Body´Â Entity-Header Çʵ忡¼­ ±ÔÁ¤ÇÑ Æ÷¸Ë ¹× ÀÎÄÚµù¿¡ µû¸¥´Ù. Entity-Body = *OCTET Entity-Body´Â 4.3 Àý¿¡¼­ ¼³¸íÇÑ ´ë·Î Message-Body°¡ ÀÖÀ» ¶§¸¸ ¸Þ½ÃÁö ³»¿¡ Á¸ÀçÇÑ´Ù. ¾ÈÀüÇÏ°í ÀûÀýÇÑ ¸Þ½ÃÁö Àü¼ÛÀ» À§ÇØ Àû¿ëµÇ¾úÀ» ¼öµµ ÀÖ´Â Transfer-EncodingÀ» Çص¶ÇÏ ¿© Message-Body¿¡¼­ Entity-Body¸¦ ¾òÀ» ¼ö ÀÖ´Ù. 7.2.1 À¯Çü (Type) ¸Þ½ÃÁö¿¡ Entity-Body°¡ Æ÷ÇԵǾî ÀÖÀ¸¸é ÇØ´ç º»¹®ÀÇ µ¥ÀÌÅÍ Å¸ÀÔÀº Content-Type ¹× Content-Encoding ÀÇ Çì´õ Çʵ带 ÅëÇÏ¿© °áÁ¤µÈ´Ù. ÀÌ´Â 2 °èÃþÀÇ ¼ø¼­°¡ Á¤ÇØÁø ÀÎÄÚµù ¸ðµ¨À» ±ÔÁ¤ÇÑ´Ù. Entity-Body := Content-Encoding( Content-Type( data ) ) Content-TypeÀº ¸Þ½ÃÁö º»¹® ³»¿ëÀÇ ¹Ìµð¾î Çü½ÄÀ» ¸í½ÃÇÑ´Ù. Content-Encoding Àº ´ë°³ µ¥ÀÌÅ͸¦ ¾ÐÃàÇÒ ¸ñÀûÀ¸·Î µ¥ÀÌÅÍ¿¡ Àû¿ëµÈ Ãß°¡ÀûÀÎ ³»¿ë ÄÚµù(¿ä±¸µÈ ÀÚ¿øÀÇ ¼Ó¼ºÀÌ´Ù)À» Ç¥½ÃÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ´Ù. [Page 42] Entity-Body¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Â ¸ðµç HTTP/1.1 ¸Þ½ÃÁö´Â ÇØ´ç º»¹®ÀÇ ¹Ìµð¾î Çü½ÄÀ» ±ÔÁ¤ÇÏ ´Â Content-Type Çì´õ Çʵ带 Æ÷ÇÔÇÏ¿©¾ß ÇÑ´Ù. Content-Type Çʵ尡 ¹Ìµð¾î Çü½Ä Á¤º¸¸¦ Á¦°øÇÏÁö ¾Ê´Â °æ¿ì¿¡¸¸ ¼ö½ÅÃøÀº ÀÚ¿øÀ» È®ÀÎÇÏ´Â µ¥ »ç¿ëµÇ´Â URL À̸§ È®ÀåÀÚ ¹×/¶Ç´Â ³» ¿ë °Ë»ç¸¦ ÅëÇÏ¿© ¹Ìµð¾î Çü½ÄÀ» ÁüÀÛÇÏ·Á ½ÃµµÇÒ ¼öµµ ÀÖ´Ù. °è¼Ó ¹Ìµð¾î Çü½ÄÀ» ¾Ë ¼ö ¾ø´Ù ¸é ¼ö½ÅÃøÀº ±×°ÍÀ» "application/octet-stream" À¯ÇüÀ¸·Î ó¸®Çؾ߸¸ ÇÑ´Ù. 7.2.2 ±æÀÌ Entity-BodyÀÇ ±æÀÌ´Â ¸ðµç Àü¼Û ÀÎÄÚµù(Transfer-Coding)ÀÌ µðÄÚµùµÈ ÈÄÀÇ Message- BodyÀÇ ±æÀÌÀÌ´Ù. 4.4 ÀýÀº Message-BodyÀÇ ±æÀ̸¦ °áÁ¤ÇÏ´Â ¹æ¹ýÀ» ±ÔÁ¤ÇÏ°í ÀÖ´Ù. 8 Á¢¼Ó(Connections) 8.1 Áö¼ÓÇü ¿¬°á(Persistent Connections) 8.1.1 ¸ñÀû Áö¼ÓÇü ¿¬°á °³³äÀÌ µîÀåÇϱâ ÀÌÀü¿¡´Â °¢ URLÀÇ Á¤º¸¸¦ °¡Á®¿À±â À§ÇØ ¸Å¹ø º°µµÀÇ TCP ¿¬°áÀ» ¼³Á¤ÇÏ¿© HTTP ¼­¹öÀÇ ºÎÇϸ¦ Áõ°¡½ÃÅ°°í ÀÎÅͳÝÀÇ Æ®·¡ÇÈ È¥ÀâÀ» À¯¹ßÇß¾ú´Ù. ÇÏÀÌ ÆÛ¸µÅ©µÇ¾î ÀÖ´Â À̹ÌÁö¿Í ¹× ±âŸ °ü·Ã µ¥ÀÌÅÍÀÇ »ç¿ëÀº Á¾Á¾ Ŭ¶óÀ̾ðÆ®°¡ ¾ÆÁÖ ÂªÀº ½Ã°£ ¿¡ ¿©·¯ °³ÀÇ ¿ä±¸¸¦ µ¿ÀÏÇÑ ¼­¹ö¿¡ Çϵµ·Ï ¸¸µé ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ ¼º´É ¹®Á¦¿¡ ´ëÇÑ ºÐ¼®À» [30][27]¿¡¼­ Âü°íÇÒ ¼ö ÀÖÀ¸¸ç, ÇÁ·ÎÅäŸÀÔ ±¸ÇöÀÇ ºÐ¼® ¹× °á°ú¸¦ [26]¿¡¼­ Âü°íÇÒ ¼ö ÀÖ´Ù. Áö¼ÓÇü HTTP Á¢¼ÓÀº ¿©·¯ °¡Áö ÀÌÁ¡ÀÌ ÀÖ´Ù. ? TCP ¿¬°áÀ» ½ÃÀÛÇÏ°í Á¾·áÇϴ ȸ¼ö¸¦ ÁÙÀÓÀ¸·Î½á CPU ½Ã°£À» ÁÙÀÌ°í TCP ±Ô¾à Á¦¾î ºí·Ï¿¡ »ç¿ëµÇ´Â ¸Þ¸ð¸®¸¦ Àý¾àÇÒ ¼ö ÀÖ´Ù. ? HTTP ¿ä±¸¿Í ÀÀ´äÀÌ ¿¬°á¼± »ó¿¡¼­ ÆÄÀÌÇÁ¶óÀÎ µÉ ¼ö ÀÖ°Ô ÇÑ´Ù. ÆÄÀÌÇÁ¶óÀÎÀ» »ç¿ëÇÏ ¸é Ŭ¶óÀ̾ðÆ®´Â °¢ ÀÀ´äÀ» ±â´Ù¸®Áö ¾Ê°íµµ º¹¼öÀÇ ¿ä±¸¸¦ ÇÒ ¼ö ÀÖ¾î ÇϳªÀÇ TCP ¿¬ °áÀ» È¿°úÀûÀ¸·Î ºü¸¥ ½Ã°£ ³»¿¡ ÀÌ·èÇÒ ¼ö ÀÖ´Ù. ? TCP¸¦ ½ÃÀÛÇÒ ¶§ ¹ß»ýÇÏ´Â ÆÐŶÀÇ ¼ýÀÚ¸¦ °¨¼Ò½ÃÅ°°í ³×Æ®¿öÅ©ÀÇ È¥Àâ »óŸ¦ °áÁ¤ÇÒ ÃæºÐÇÑ ½Ã°£À» TCP¿¡ ÁÖ¾î ³×Æ®¿öÅ© È¥ÀâÀ» ÁÙÀÏ ¼ö ÀÖ´Ù. ? ¿À·ù°¡ ¹ß»ýÇصµ TCP Á¢¼ÓÀ» ´ÜÀýÇÏÁö ¾Ê°íµµ À̸¦ º¸°íÇÒ ¼ö Àֱ⠶§¹®¿¡HTTP°¡ Á» ´õ Àß ÀÛµ¿µÉ ¼ö ÀÖµµ·Ï ÇÑ´Ù. HTTP ÇâÈÄ ¹öÀüÀ» »ç¿ëÇϴ Ŭ¶óÀ̾ðÆ®´Â »õ·Î¿î ±â´ÉÀ» ½ÃµµÇÒ ¼ö ÀÖÀ¸³ª ÀÌÀü ¼­¹ö¿Í Åë½ÅÀ» ÇÒ ¶§ ¿¡·¯°¡ ¹ß»ýÇϸé ÀÌÀü ¹öÀüÀ¸·Î Àç½ÃµµÇÑ ´Ù. HTTP ±¸ÇöÀº Áö¼ÓÇü ¿¬°áÀ» ±¸ÇöÇØ¾ß ÇÑ´Ù. [Page 43] 8.1.2 Àü¹ÝÀûÀÎ ¿î¿µ HTTP/1.1°ú ÀÌÀü ¹öÀüÀÇ HTTPÀÇ Å« Â÷ÀÌÁ¡Àº Áö¼ÓÀûÀÎ Á¢¼ÓÀÌ ¸ðµç HTTP Á¢¼ÓÀÇ ±âº» ¹æ½Ä À̶ó´Â °ÍÀÌ´Ù. º°µµÀÇ Ç¥½Ã°¡ ¾øÀ¸¸é Ŭ¶óÀ̾ðÆ®´Â Áö¼ÓÀûÀÎ Á¢¼ÓÀ» À¯ÁöÇÑ´Ù°í °¡Á¤ÇÑ´Ù. Áö¼ÓÀûÀÎ Á¢¼ÓÀº Ŭ¶óÀ̾ðÆ®¿Í ¼­¹ö°¡ TCP ¿¬°á Á¾°áÀ» ¾Ë¸± ¼ö ÀÖ´Â ¸ÞÄ¿´ÏÁòÀ» Á¦°øÇÑ´Ù. ÀÌ·¯ÇÑ ¾Ë¸²Àº Connection Çì´õ Çʵ带 ÀÌ¿ëÇÑ´Ù. Á¾·á ½ÅÈ£°¡ Å뺸µÇ¸é Ŭ¶óÀ̾ðÆ®´Â ´õ ÀÌ»ó ÇØ´ç ¿¬°á¿¡ ¿ä±¸¸¦ º¸³»¼­´Â ¾È µÈ´Ù. 8.1.2.1 Çù»ó(Negotiation) HTTP/1.1 ¼­¹ö´Â ¿ä±¸ ¸Þ½ÃÁö¿¡ "Á¾·á" Connection-TokenÀÌ Æ÷ÇÔµÈ Connection Çì´õ°¡ ¹ß¼ÛµÇÁö ¾Ê´Â ÇÑ HTTP/1.1 Ŭ¶óÀ̾ðÆ®´Â Áö¼ÓÀûÀÎ Á¢¼ÓÀ» À¯ÁöÇÏ°íÀÚ ÇÑ´Ù°í °¡Á¤ÇÑ´Ù. ¼­¹ö°¡ ÀÀ´äÀ» ¹ß¼ÛÇÑ ÈÄ °ð ¹Ù·Î ¿¬°áÀ» Á¾·áÇÏ°íÀÚ ÇÑ´Ù¸é Á¾·á Connection-TokenÀÌ Æ÷ÇÔµÈ Connection Çì ´õ¸¦ ¹ß¼ÛÇؾ߸¸ ÇÑ´Ù. HTTP/1.1 Ŭ¶óÀ̾ðÆ®´Â Á¢¼ÓÀÌ °è¼Ó À¯ÁöµÇ±â¸¦ ±â´ëÇÏÁö¸¸ ¼­¹ö·ÎºÎÅÍÀÇ ÀÀ´äÀÌ Á¾·á Connection-TokenÀÇ Connection Çì´õ¸¦ Æ÷ÇÔÇÏ°í Àִ°¡ ¿©ºÎ¿¡ µû¶ó Á¢¼Ó À¯Áö ¿©ºÎ¸¦ °áÁ¤ÇÒ ¼öµµ ÀÖ´Ù. Ŭ¶óÀ̾ðÆ®°¡ ÇØ´ç ¿ä±¸ ÀÌ»óÀÇ Á¢¼ÓÀ» À¯ÁöÇϱ⠿øÄ¡ ¾Ê´Â´Ù¸é Ŭ¶óÀ̾ðÆ®´Â Á¾ ·á Connection-TokenÀÌ Æ÷ÇÔµÈ Connection Çì´õ¸¦ ¹ß¼ÛÇØ¾ß ÇÑ´Ù. Ŭ¶óÀ̾ðÆ® ¶Ç´Â ¼­¹ö°¡ Connection Çì´õ¿¡ Á¾·á ÅäÅ«À» ¹ß¼ÛÇϸé ÇØ´ç ¿ä±¸´Â Á¢¼Ó¿¡ ´ëÇÑ ¸¶Áö¸· ¿ä±¸°¡ µÈ´Ù. Ŭ¶óÀ̾ðÆ®³ª ¼­¹ö´Â ¸íÈ®ÇÏ°Ô Ç¥½ÃµÇÁö ¾Ê´Â ÇÑ 1.1 ÀÌÀüÀÇ HTTP ¹öÀü¿¡¼­ Áö¼ÓÀûÀÎ Á¢¼ÓÀÌ À¯ÁöµÈ´Ù°í °¡Á¤Çؼ­´Â ¾È µÈ´Ù. HTTP/1.0 Ŭ¶óÀ̾ðÆ®¿ÍÀÇ È£È¯¼º À¯Áö¿¡ °üÇÑ Á¤º¸´Â 19.7.1 ÀýÀ» ÂüÁ¶ÇÑ´Ù. Áö¼ÓÀûÀ¸·Î À¯ÁöµÇ±â À§Çؼ­ ¿¬°á¼± »óÀÇ ¸ðµç ¸Þ½ÃÁö´Â 4.4 Àý¿¡¼­ ¼³¸íµÈ ½º½º·Î Á¤ÀÇµÈ ¸Þ ½ÃÁö ±æÀÌ(¿¹¸¦ µé¸é Á¢¼Ó Á¾·á¿¡ ÀÇÇØ ±ÔÁ¤µÇÁö ¾Ê´Â)¸¦ Æ÷ÇÔÇÏ°í ÀÖ¾î¾ß ÇÑ´Ù. 8.1.2.2 ÆÄÀÌÇÁ¶óÀÎ »ç¿ë Áö¼ÓÀûÀÎ Á¢¼ÓÀ» Áö¿øÇϴ Ŭ¶óÀ̾ðÆ®´Â ¿ä±¸¸¦ ÆÄÀÌÇÁ¶óÀÎ(º¹¼öÀÇ ¿ä±¸¸¦ °¢°¢ÀÇ ÀÀ´äÀ» ±â ´Ù¸®Áö ¾Ê°í ¹ß¼Û)ÇÒ ¼ö ÀÖ´Ù. ¼­¹ö´Â ¹Ýµå½Ã ÀÌ·¯ÇÑ ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ» ¿ä±¸°¡ ¼ö½ÅµÈ µ¿ÀÏ ÇÑ ¼ø¼­·Î ¹ß¼ÛÇØ¾ß ÇÑ´Ù. [Page 44] Á¢¼ÓµÈ ÈÄ °ð ¹Ù·Î Áö¼ÓÀûÀÎ Á¢¼ÓÀ̳ª ÆÄÀÌÇÁ¶óÀÎ(pipeline)À» ¿¹»óÇϴ Ŭ¶óÀ̾ðÆ®´Â ù ÆÄÀÌ ÇÁ¶óÀÎ ½Ãµµ°¡ ½ÇÆÐÇÒ °æ¿ì Àç½ÃµµÇÒ Áغñ°¡ µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. Ŭ¶óÀ̾ðÆ®°¡ Àç½Ãµµ¸¦ ÇßÀ» ¶§ Á¢¼ÓÀÌ Áö¼ÓÀûÀÎÁö ¾Ë±â Àü¿¡´Â ÆÄÀÌÇÁ¶óÀÎ ±â´ÉÀ» Àý´ë·Î »ç¿ëÇؼ­´Â ¾È µÈ´Ù. Ŭ¶óÀ̾ð Æ®´Â ¼­¹ö°¡ ¸ðµç »óÀÀÇÏ´Â ÀÀ´äÀ» ¹ß¼ÛÇϱâ Àü¿¡ Á¢¼ÓÀÌ Á¾·áµÇ¾úÀ¸¸ç Àç¹ß¼ÛÇÒ Áغñ°¡ µÇ¾î ÀÖ¾î¾ß¸¸ ÇÑ´Ù. 8.1.3 ÇÁ¶ô½Ã ¼­¹ö ÇÁ¶ô½Ã°¡ 14.2.1 Àý¿¡ ¸í½ÃµÈ Connection Çì´õ ÇʵåÀÇ Æ¯¼ºÀ» Á¤È®ÇÏ°Ô ±¸ÇöÇÏ´Â °ÍÀÌ Æ¯È÷ Áß ¿äÇÏ´Ù. ÇÁ¶ô½Ã ¼­¹ö´Â ¿¬°áÇÏ°í Àִ Ŭ¶óÀ̾ðÆ®¿Í ¿ø¼­¹ö(¶Ç´Â ´Ù¸¥ ÇÁ¶ô½Ã ¼­¹ö)ÀÇ Áö¼ÓÀûÀÎ Á¢¼Ó À» ¹Ýµå½Ã ±¸ºÐÇÏ¿© ¾Ë·Á¾ß ÇÑ´Ù. °¢°¢ÀÇ Áö¼ÓÀû Á¢¼ÓÀº ´ÜÁö ÇϳªÀÇ Àü¼Û ¸µÅ©¿¡¸¸ Àû¿ëÇÑ´Ù. ÇÁ¶ô½Ã ¼­¹ö´Â Àý´ë HTTP/1.0°ú Áö¼ÓÀûÀÎ Á¢¼ÓÀ» ¼³Á¤Çؼ­´Â ¾È µÈ´Ù. 8.1.4 ½ÇÁ¦ÀûÀÎ °í·Á »çÇ× ¼­¹ö´Â ´ë°³ ºñÈ°¼º Á¢¼ÓÀ» ´õ ÀÌ»ó À¯ÁöÇÏÁö ¾ÊÀ» ½Ã°£ ÃÊ°ú °ªÀ» °¡Áö°í ÀÖ´Ù. ÇÁ¶ô½Ã ¼­¹ö ´Â Ŭ¶óÀ̾ðÆ®°¡ µ¿ÀÏÇÑ ¼­¹ö¸¦ ÅëÇÏ¿© ´õ ¸¹Àº Á¢¼ÓÀ» ¼³Á¤Çϱ⠽±±â ¶§¹®¿¡ ÀÌ °ªÀ» ´õ ³ô °Ô ÇÒ ¼ö ÀÖ´Ù. Áö¼ÓÀûÀÎ Á¢¼ÓÀÇ »ç¿ëÀº Ŭ¶óÀ̾ðÆ®³ª ¼­¹öÀÇ ½Ã°£ ÃÊ°ú ±æÀÌ¿¡ ¾î¶°ÇÑ ÇÊ¿ä Á¶°ÇÀ» µÎÁö ¾Ê´Â´Ù. Ŭ¶óÀ̾ðÆ® ¶Ç´Â ¼­¹ö°¡ ½Ã°£ ÃÊ°ú ±â´ÉÀ» »ç¿ëÇÏ°íÀÚ ÇÒ ¶§ Àü¼Û Á¢¼Ó »ó¿¡ Á¾·á¸¦ ¾Ë·Á¾ß ÇÑ´Ù. Ŭ¶óÀ̾ðÆ®¿Í ¼­¹ö´Â Àü¼Û ¼±»óÀÇ ´Ù¸¥ ÂÊÀÇ Á¢¼Ó Á¾·á¸¦ Ç×»ó ÁÖ½ÃÇÏ°í ÀÖ´Ù°¡ ÀûÀýÇÏ °Ô ¹ÝÀÀÇÏ¿©¾ß ÇÑ´Ù. Ŭ¶óÀ̾ðÆ® ¶Ç´Â ¼­¹ö°¡ ´Ù¸¥ ÂÊÀÇ Á¾·á¸¦ ½Å¼ÓÇÏ°Ô °¨ÁöÇÏÁö ¸øÇÏ¸é ³× Æ®¿öÅ© »óÀÇ ºÒÇÊ¿äÇÑ ÀÚ¿ø ³¶ºñ¸¦ ÃÊ·¡ÇÏ°Ô µÈ´Ù. Ŭ¶óÀ̾ðÆ®, ¼­¹ö ¶Ç´Â ÇÁ¶ô½Ã´Â ¾ðÁ¦µçÁö Àü¼Û Á¢¼ÓÀ» Á¾·áÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î Ŭ¶óÀ̾ðÆ® ´Â ¼­¹ö°¡ "»ç¿ëÇÏÁö ¾Ê´Â" Á¢¼ÓÀ» Á¾·áÇϱâ·Î °áÁ¤ÇÑ ¹Ù·Î ±× ¼ø°£¿¡ »õ·Î¿î ¿ä±¸ ¹ß¼ÛÀ» ½Ã ÀÛÇßÀ» ¼ö ÀÖ´Ù. ¼­¹ö °üÁ¡¿¡¼­ º¸¸é Á¢¼ÓÀº »ç¿ëÇÏÁö ¾Ê°í ÀÖ´Â µ¿¾ÈÀº Á¾·áµÇ°í ÀÖ´Â °ÍÀÌ ¸ç Ŭ¶óÀ̾ðÆ®ÀÇ °üÁ¡¿¡¼­ º¸¸é ¿ä±¸°¡ 󸮵ǰí ÀÖ´Â °ÍÀÌ´Ù. À̴ Ŭ¶óÀ̾ðÆ®, ¼­¹ö ¹× ÇÁ¶ô½Ã°¡ ¹Ýµå½Ã µ¿½Ã Á¾·á À̺¥Æ®¿¡¼­ ȸº¹ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. Ŭ¶óÀ̾ðÆ® ¼ÒÇÁÆ®¿þ¾î´Â Àü¼Û Á¢¼ÓÀ» Àç°³ÇÒ ¼ö ÀÖ¾î¾ß ÇÏ¸ç ¿ä±¸ method°¡ ¸èµî¿ø(ØñÔõêª) method(9.1.2 Àý ÂüÁ¶)ÀÏ °æ¿ì »ç¿ëÀÚ¿ÍÀÇ »óÈ£ ÀÛ¿ë ¾øÀ̵µ Áß´ÜµÈ ¿ä±¸¸¦ Àç Àü¼ÛÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ´Ù¸¥ method´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ Àΰ£ ¿î¿µÀÚ¿¡°Ô ¿ä±¸¸¦ Àç½ÃµµÇÒ ¼ö ÀÖ´Â ¼±ÅñÇÀ» ÁÙ ¼öµµ ÀÖÁö¸¸ ÀÚµ¿ÀûÀ¸·Î Àç½ÃµµÇؼ­´Â ¾È µÈ´Ù. [Page 45] ±×·¯³ª µÎ ¹ø° ¿ä±¸°¡ ½ÇÆÐÇÒ °æ¿ì ÀÚµ¿ÀûÀÎ Àç½Ãµµ¸¦ ¹Ýº¹Çؼ­´Â ¾È µÈ´Ù. ¼­¹ö´Â °¡´ÉÇÏ´Ù¸é Ç×»ó ÇÑ Á¢¼Ó °Ç ´ç ÃÖ¼ÒÇÑ ÇϳªÀÇ ¿ä±¸¿¡ ÀÀ´äÇØ¾ß ÇÑ´Ù. ¼­¹ö´Â ³×Æ®¿ö Å©³ª Ŭ¶óÀ̾ðÆ® ½ÇÆа¡ ¹ß»ýÇÒÁöµµ ¸ð¸£´Â »óȲÀÌ ¾Æ´Ï¸é ÀÀ´äÀ» Àü¼ÛÇÏ´Â µµÁß¿¡ Á¢¼ÓÀ» Á¾ ·áÇؼ­´Â ¾È µÈ´Ù. Áö¼ÓÀûÀÎ Á¢¼ÓÀ» »ç¿ëÇϴ Ŭ¶óÀ̾ðÆ®´Â ƯÁ¤ ¼­¹ö·ÎÀÇ µ¿½Ã Á¢¼Ó ¼ýÀÚ¿¡ Á¦ÇÑÀ» µÎ¾î¾ß ÇÑ´Ù. ´Üµ¶ »ç¿ëÀÚ Å¬¶óÀ̾ðÆ®´Â ÃÖ´ë 2 °³ÀÇ ¼­¹ö³ª ÇÁ¶ô½Ã Á¢¼ÓÀ» À¯ÁöÇØ¾ß ÇÑ´Ù. ÇÁ¶ô½Ã´Â ÃÖ´ë 2*N °³ÀÇ ¼­¹ö³ª ÇÁ¶ô½Ã Á¢¼ÓÀ» ÇÒ ¼ö ÀÖÀ¸¸ç ¿©±â¼­ NÀº »ç¿ëÇÏ°í ÀÖ´Â µ¿½Ã »ç¿ëÀÚÀÇ ¼ý ÀÚÀÌ´Ù. ÀÌ·¯ÇÑ ÁöħÀº HTTP ÀÀ´ä ½Ã°£À» Çâ»óÇÏ°í ÀÎÅͳÝÀ̳ª ´Ù¸¥ ³×Æ®¿öÅ©ÀÇ È¥ÀâÀ» ÇÇÇÏ ±â À§ÇÔÀÌ´Ù. 8.2 ¸Þ½ÃÁö Àü¼Û ÇÊ¿ä Á¶°Ç ÀϹÝÀûÀÎ ÇÊ¿ä Á¶°Ç: ? HTTP/1.1 ¼­¹ö´Â Áö¼ÓÀûÀÎ Á¢¼ÓÀ» À¯ÁöÇÏ°í ÀÖ¾î¾ß Çϸç ÀϽÃÀûÀÎ ¿À¹ö·Îµå(overloads)¸¦ ¿ÏÈ­ ½ÃÅ°±â À§ÇÏ¿© Ŭ¶óÀ̾ðÆ®°¡ Àç½ÃµµÇÒ °ÍÀ̶ó´Â ¿¹»óÀ¸·Î Á¢¼ÓÀ» Á¾°áÇϱ⺸´Ù´Â È帧 Á¦¾î ¸ÞÄ¿´ÏÁòÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. ÈÄÀÚÀÇ ¹æ¹ýÀ» »ç¿ëÇÏ¸é ³×Æ®¿öÅ© È¥ÀâÀÌ °¡ÁßµÉ ¼ö ÀÖ´Ù. ? Message-Body¸¦ ¹ß¼ÛÇÏ´Â HTTP/1.1 (¶Ç´Â ÀÌÈÄ) Ŭ¶óÀ̾ðÆ®´Â ¿ä±¸¸¦ Àü¼ÛÇÏ´Â µ¿¾È ³×Æ®¿öÅ© Á¢¼Ó¿¡ ¿¡·¯°¡ ¹ß»ýÇÏ´ÂÁö Á¡°ËÇØ¾ß ÇÑ´Ù. Ŭ¶óÀ̾ðÆ®°¡ ¿¡·¯¸¦ °¨ÁöÇÏ¿´À¸¸é º»Ã¼ Àü¼ÛÀ» Áï½Ã Áß´ÜÇØ¾ß ÇÑ´Ù. º»Ã¼°¡ "µ¢¾î¸®" ÀÎÄÚµù(3.6 Àý) ±â¹ýÀ» »ç¿ëÇÏ¿© Àü¼ÛµÇ°í ÀÖÀ» °æ¿ì¿¡ ´Â Á¦·Î ±æÀÌÀÇ µ¢¾î¸®¿Í ºñ¾î ÀÖ´Â ÁÖ¼®À» »ç¿ëÇÏ¿© ¸Þ½ÃÁöÀÇ Á¾·á¸¦ Á¶±â¿¡ Ç¥½ÃÇÒ ¼öµµ ÀÖ´Ù. º»¹®¿¡ ¾Õ¼­ Content-Length Çì´õ°¡ ÀÖÀ¸¸é Ŭ¶óÀ̾ðÆ®´Â Á¢¼ÓÀ» Á¾·áÇØ¾ß ÇÑ´Ù. ? HTTP/1.1 (¶Ç´Â ÀÌÈÄ) Ŭ¶óÀ̾ðÆ®´Â Á¤»óÀûÀÎ ÀÀ´äÀÌ µÚ µû¸£´Â 100(Continue) »óÅ ¸Þ½ÃÁö¸¦ Á¢¼öÇÒ Áغñ°¡ ¹Ýµå½Ã µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù. ? HTTP/1.0 (¶Ç´Â ÀÌÀü) Ŭ¶óÀ̾ðÆ®·ÎºÎÅÍ ¿ä±¸¸¦ ¼ö½ÅÇÑ HTTP/1.1 (¶Ç´Â ÀÌÈÄ) ¼­¹ö´Â 100 (Continue) ÀÀ´ä ¸Þ½ÃÁö¸¦ Àü¼ÛÇؼ­´Â ¾È µÈ´Ù. ¼­¹ö´Â ¿ä±¸°¡ Á¤»óÀûÀ¸·Î ¿Ï·áµÉ ¶§±îÁö(ÀÌ·¸ °Ô ÇÏ¿© Áß´ÜµÈ ¿ä±¸°¡ ¹ß»ýÇÏÁö ¾Êµµ·Ï ÇÔ) ±â´Ù¸®´ø°¡ Á¶±â¿¡ Á¢¼ÓÀ» Á¾·áÇØ¾ß ÇÑ´Ù. [Page 46] HTTP/1.1 (¶Ç´Â ÀÌÈÄ) Ŭ¶óÀ̾ðÆ®·ÎºÎÅÍ ÀÌ·¯ÇÑ ÇÊ¿ä Á¶°ÇÀ» ¸¸Á·ÇØ¾ß ÇÏ´Â method¸¦ ¼ö½ÅÇÏ ¸é HTTP/1.1 (¶Ç´Â ÀÌÈÄ) ¼­¹ö´Â ¹Ýµå½Ã 100 (Continue) »óÅ·ΠÀÀ´äÇÏ°í ÀÔ·Â ½ºÆ®¸²¿¡¼­ °è¼Ó ÀûÀ¸·Î ¿ä±¸¸¦ ÀÐ¾î µéÀ̵çÁö ¿¡·¯ »óÅ ÄÚµå·Î ÀÀ´äÇØ¾ß ÇÑ´Ù. ¿¡·¯ »óÅ ÄÚµå·Î ÀÀ´äÇÏ¿´À¸ ¸é Àü¼Û(TCP) Á¢¼ÓÀ» Á¾·áÇÏ´øÁö ¶Ç´Â °è¼ÓÀûÀ¸·Î ¿ä±¸¸¦ ÀÐ¾î µéÀÌ°í ¿ä±¸ÀÇ ³ª¸ÓÁö ºÎºÐÀ» Æó±âÇÒ ¼ö ÀÖ´Ù. ¿¡·¯ »óÅ Äڵ带 ¸®ÅÏÇßÀ» ¶§´Â ¿ä±¸ ¹ÞÀº method¸¦ Àý´ë·Î ó¸®Çؼ­´Â ¾È µÈ´Ù. Ŭ¶óÀ̾ðÆ®´Â ÃÖ¼ÒÇÑ °¡Àå ÃÖ±Ù¿¡ »ç¿ëµÈ ¼­¹öÀÇ ¹öÀü ¼ýÀÚ¸¦ ±â¾ïÇÏ°í ÀÖ¾î¾ß ÇÑ´Ù. HTTP/1.1 Ŭ¶óÀ̾ðÆ®°¡ HTTP/1.1 ¶Ç´Â ÀÌÈÄÀÇ ÀÀ´äÀ» ¼­¹ö·ÎºÎÅÍ ¾ò°í ¼­¹ö·ÎºÎÅÍ »óÅ ¸Þ½ÃÁö¸¦ ¼ö½Å Çϱâ Àü¿¡ ¿¬°áÀÌ Á¾·áµÇ¾úÀ¸¸é Ŭ¶óÀ̾ðÆ®´Â ¿ä±¸ method°¡ ¸èµî¿ø(ØñÔõêª) method(9.1.2 Àý ÂüÁ¶)ÀÌ ¾Æ´Ñ ÀÌ»ó »ç¿ëÀÚ¿ÍÀÇ »óÈ£ ÀÛ¿ë ¾øÀÌ ¿ä±¸¸¦ Àç½ÃµµÇØ¾ß ÇÑ´Ù. »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ Àΰ£ ¿î¿µÀÚ¿¡°Ô ¿ä±¸¸¦ Àç½ÃµµÇÒ ¼±ÅñÇÀ» ÁÙ ¼ö´Â ÀÖÁö¸¸ ´Ù¸¥ method¸¦ ÀÚµ¿ÀûÀ¸·Î Àç½Ã µµÇؼ­´Â ¾È µÈ´Ù. Ŭ¶óÀ̾ðÆ®°¡ ¿ä±¸¸¦ Àç½Ãµµ ÇßÀ¸¸é Ŭ¶óÀ̾ðÆ®´Â ? ¹Ýµå½Ã ¸ÕÀú ¿ä±¸ Çì´õ Çʵ带 ¹ß¼ÛÇØ¾ß ÇÏ¸ç ±×·± ´ÙÀ½ ? ¼­¹ö°¡ 100 (Continue) ÀÀ´ä(ÀÌ °æ¿ì Ŭ¶óÀ̾ðÆ®´Â °è¼Ó ÁøÇàÇØ¾ß ÇÑ´Ù)À̳ª ¿¡·¯ Äڵ带 ÀÀ´äÇÒ ¶§ ±îÁö ¹Ýµå½Ã ±â´Ù·Á¾ß ÇÑ´Ù. HTTP/1.1 Ŭ¶óÀ̾ðÆ®°¡ HTTP/1.1À̳ª ÀÌÈÄ ÀÀ´äÀ» ¼­¹ö·ÎºÎÅÍ ¾òÁö ¸øÇÏ¸é ¼­¹ö°¡ HTTP/1.0 À̳ª ÀÌÀü ¹öÀüÀ» ±¸ÇöÇÏ°í ÀÖÀ¸¸é 100 (Continue) ÀÀ´äÀ» »ç¿ëÇÏÁö ¾ÊÀ» °ÍÀ¸·Î °¡Á¤ÇØ¾ß ÇÑ ´Ù. ÀÌ °æ¿ì Ŭ¶óÀ̾ðÆ®°¡ ¼­¹ö·ÎºÎÅÍ »óÅ ¸Þ½ÃÁö¸¦ Á¢¼öÇϱâ Àü¿¡ Á¢¼ÓÀÌ Á¾·áµÇ¸é Ŭ¶óÀÌ ¾ðÆ®´Â ¿ä±¸¸¦ Àç½ÃµµÇØ¾ß ÇÑ´Ù. Ŭ¶óÀ̾ðÆ®°¡ ÀÌ HTTP/1.0 ¼­¹ö¿¡ ¿ä±¸¸¦ Àç½ÃµµÇÒ ¶§ ¾Æ·¡ ÀÇ "¹ÙÀ̳ʸ® Áö¼ö ¹é¿ÀÇÁ(binary exponential backoff)" ¾Ë°í¸®ÁòÀ» »ç¿ëÇÏ¿© ½Å·ÚÇÒ ¼ö ÀÖ´Â ÀÀ ´äÀ» ¾ò¾úÀ½À» È®ÀÎÇØ¾ß ÇÑ´Ù. 1. ¼­¹ö·Î »õ·Î¿î Á¢¼ÓÀ» ½ÃÀÛÇÑ´Ù. 2. Request-HeaderÀ» Àü¼ÛÇÑ´Ù. 3. º¯¼ö RÀ» ¼­¹ö·ÎÀÇ ¿¹»ó ¿Õº¹ ¿©Çà ½Ã°£À¸·Î ÃʱâÈ­ÇÑ´Ù.(¿¹¸¦ µé¸é Á¢¼ÓÀ» ¼³Á¤Çϱâ À§ ÇØ ¼Ò¿äµÇ´Â ½Ã°£¿¡ ±âÃÊÇÑ´Ù) 4. T = R * (2**N)À» °è»êÇÑ´Ù. À̶§ NÀº ÀÌ ¿ä±¸¸¦ ÀÌÀü¿¡ Àç½ÃµµÇÑ ¼ýÀÚÀÌ´Ù. 5. ¼­¹ö·ÎºÎÅÍ ¿¡·¯ ÀÀ´äÀ» ±â´Ù¸®´ø°¡ T ÃÊ µ¿¾È ±â´Ù¸°´Ù. (¾î¶² °ÍÀÌµç ¸ÕÀú ¿À´Â °Í) [Page 47] 6. ¾Æ¹«·± ¿¡·¯ ÀÀ´äµµ ¼ö½ÅµÇÁö ¾Ê¾ÒÀ¸¸é T ÃÊ°¡ °æ°úÇÑ ÈÄ ¿ä±¸ÀÇ º»¹®À» Àü¼ÛÇÑ´Ù. 7. Ŭ¶óÀ̾ðÆ®°¡ Á¢¼ÓÀÌ Á¶±â¿¡ Á¾·áµÇ´Â °ÍÀ» ¾Ë¾ÒÀ¸¸é ¿ä±¸°¡ Á¢¼öµÇ¾ú°Å³ª, ¿¡·¯ ÀÀ´äÀ» ¼ö½ÅÇÏ¿´°Å³ª ¶Ç´Â »ç¿ëÀÚ°¡ ´õ ÀÌ»ó ±â´Ù¸± ¼ö ¾ø¾î Àç½Ãµµ ÀýÂ÷¸¦ Á¾·áÇÒ ¶§ ±îÁö ù ½ºÅܺÎÅÍ °è¼ÓÇÑ´Ù. ¼­¹ö ¹öÀü¿¡ °ü°è¾øÀÌ ¿¡·¯ »óÅ°¡ Á¢¼öµÇ¾úÀ¸¸é Ŭ¶óÀ̾ðÆ®´Â ? Àý´ë·Î °è¼ÓÇؼ­´Â ¾È µÇ¸ç ? ¸Þ½ÃÁö Àü¼ÛÀ» ¿Ï·áÇÏÁö ¾Ê¾ÒÀ¸¸é Á¢¼ÓÀ» ¹Ýµå½Ã Á¾·áÇØ¾ß ÇÑ´Ù. ´Ù¸¥ ¾î¶² »óÅ ¸Þ½ÃÁö¸¦ Á¢¼öÇϱâ ÀÌÀü¿¡ 100 (Continue)À» ¼ö½ÅÇÑ ÈÄ Á¢¼ÓÀ» Á¾·áÇÑ °ÍÀ» ÀÎ ÁöÇÑ HTTP/1.1 (¶Ç´Â ÀÌÈÄ) Ŭ¶óÀ̾ðÆ®´Â ¿ä±¸¸¦ Àç½ÃµµÇØ¾ß Çϸç 100 (Continue) ÀÀ´äÀ» ±â´Ù¸± ÇÊ¿ä°¡ ¾ø´Ù.(±×·¯³ª ÀÌ°ÍÀÌ ±¸Çö ¹æ¹ýÀ» ´Ü¼øÇÏ°Ô ÇÑ´Ù¸é ±â´Ù·Áµµ µÈ´Ù.) 9 Method Á¤ÀÇ HTTP/1.1¿¡¼­ »ç¿ëµÇ´Â ÀϹÝÀûÀÎ method ¼¼Æ®¸¦ ¾Æ·¡¿¡ ±ÔÁ¤ÇÏ¿´´Ù. ÀÌ ¼¼Æ®¸¦ È®ÀåÇÒ ¼ö ÀÖ Áö¸¸ Ãß°¡µÈ method¸¦ º°µµ·Î È®ÀåµÈ Ŭ¶óÀ̾ðÆ®¿Í ¼­¹ö°¡ µ¿ÀÏÇÑ Àǹ̸¦ °øÀ¯ÇÏ°í ÀÖ´Ù°í °¡Á¤ÇÒ ¼ö ¾ø´Ù. È£½ºÆ® Request-Header Çʵå(14.23 Àý)´Â ¹Ýµå½Ã ¸ðµç HTTP/1.1 ¿ä±¸¸¦ µû¶ó¾ß ÇÑ´Ù. 9.1 ¾ÈÀü ¹× ¸èµî¿ø(ØñÔõêª) method 9.1.1 ¾ÈÀü method ±¸ÇöÀÚ´Â ¼ÒÇÁÆ®¿þ¾î°¡ »ç¿ëÀÚ¿ÍÀÇ »óÈ£ÀÛ¿ëÀÌ ÀÎÅͳÝÀ» ÅëÇÏ¿© Ç¥½ÃµÈ´Ù´Â Á¡À» ÀÎÁöÇØ¾ß ÇÏ ¸ç »ç¿ëÀÚ¿¡°Ô ÀÚ½ÅÀÌ ÃëÇÏ´Â ÇൿÀÌ ÀڽŰú ´Ù¸¥ »ç¿ëÀÚ¿¡°Ô ¿¹»óÇÏÁö ¸øÇÑ Á߿伺À» °¡Áú ¼ö ÀÖ´Ù´Â Á¡À» ÀÎÁö½ÃÅ°µµ·Ï ÁÖÀÇÇØ¾ß ÇÑ´Ù. ƯÈ÷ GET ¹× HEAD method°¡ Á¶È¸ ÀÌ¿ÜÀÇ ÀÛ¾÷À» ¼öÇàÇÏ´Â Á߿伺À» °¡Á®¼­´Â ¾È µÈ´Ù´Â °ü ·Ê°¡ È®¸³µÇ¾ú´Ù. ÀÌ·¯ÇÑ method´Â ¾ÈÀüÇÑ °ÍÀ¸·Î °£ÁÖÇØ¾ß ÇÑ´Ù. ÀÌ·¸°Ô ÇÏ¿© »ç¿ëÀÚ ¿¡ÀÌÀü Æ®°¡ POST, PUT ¹× DELETE¿Í °°Àº ´Ù¸¥ method¸¦ Ưº°ÇÑ ¹æ½ÄÀ¸·Î Ç¥ÇöÇÒ ¼ö ÀÖ°Ô ÇÏ¸ç »ç¿ëÀÚ°¡ ¾ÈÀüÇÏÁö ¸øÇÑ Ã³¸®¸¦ ¿ä±¸ÇÏ°í ÀÖ´Ù´Â »ç½ÇÀ» ÀνÄÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. ´ç¿¬È÷ ¼­¹ö°¡ GET ¿ä±¸¸¦ ¼öÇàÇÑ °á°ú·Î¼­ ºÎÀÛ¿ëÀ» ¹ß»ýÇÏÁö ¾Ê°í ÀÖÀ½À» º¸ÀåÇÒ ¼ö ¾ø´Ù. [Page 48] »ç½Ç»ó ¸î¸î ¿ªµ¿ÀûÀÎ ÀÚ¿øÀº ÀÌ°ÍÀ» ÇϳªÀÇ ±â´ÉÀ¸·Î º¸°í ÀÖ´Ù. Áß¿äÇÑ ±¸º° Á¡Àº »ç¿ëÀÚ°¡ ºÎÀÛ¿ëÀ» ¿äûÇÏÁö ¾Ê¾Ò±â ¶§¹®¿¡ ºÎÀÛ¿ë¿¡ ´ëÇÑ Ã¥ÀÓÀ» ºÎ°úÇÒ ¼ö´Â ¾ø´Ù´Â °ÍÀÌ´Ù. 9.1.2 ¸èµî¿ø(ØñÔõêª) method Method´Â ¶ÇÇÑ N > 0 °ú µ¿ÀÏÇÑ ¿ä±¸ÀÇ ºÎÀÛ¿ëÀÌ ´ÜÀÏ ¿ä±¸ÀÇ ºÎÀÛ¿ë°ú µ¿ÀÏÇÏ´Ù´Â Á¡¿¡¼­ "¸èµî¿ø" Ư¼ºÀ» °¡Áú ¼ö ÀÖ´Ù.(¿¡·¯ ¶Ç´Â ¸¸±âÀÏÀÇ ¹®Á¦´Â º°µµ·Î ÇÏ°í) GET, HEAD, PUT ¹× DELETE method´Â ÀÌ Æ¯¼ºÀ» °øÀ¯ÇÏ°í ÀÖ´Ù. 9.2 OPTIONS OPTIONS method´Â Request-URI¿¡ ÀÇÇÏ¿© ½Äº°µÇ´Â Request/Response chain¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ ´Â Åë½Å ¼±Åà »çÇ׿¡ °üÇÑ Á¤º¸ ¿ä±¸¸¦ Ç¥½ÃÇÑ´Ù. ÀÌ method´Â Ŭ¶óÀ̾ðÆ®°¡ ÀÚ¿ø 󸮸¦ ½Ã µµÇϰųª ÀÚ¿ø Á¶È¸¸¦ ½ÃÀÛÇÏÁö ¾Ê°íµµ ¼±Åà »çÇ× ¹×/¶Ç´Â ÀÚ¿ø°ú °ü·ÃµÈ ÇÊ¿ä Á¶°Ç, ¼­¹öÀÇ Ã³¸® ´É·ÂÀ» °áÁ¤ÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. ¼­¹öÀÇ ÀÀ´äÀÌ ¿¡·¯°¡ ¾Æ´Ñ ÀÌ»ó ÀÀ´äÀº Åë½Å ¼±Åà »çÇ×À̶ó°í °£ÁÖÇÒ ¼ö ÀÖ´Â °Í ÀÌ¿ÜÀÇ ¿£ ÅÍƼ Á¤º¸¸¦ Æ÷ÇÔÇؼ­´Â ¾È µÈ´Ù.(¿¹¸¦ µé¾î Allow ´Â ÀûÇÕÇÏÁö¸¸ Content-TypeÀº ÀûÇÕÇÏÁö ¾Ê ´Ù). Request-URI °¡ º°Ç¥("*")À̸é OPTIONS ¿ä±¸´Â Àüü¸¦ ¼­¹ö¿¡ Àû¿ëÇÏ·Á´Â °ÍÀÌ´Ù. 200 ÀÀ´äÀº ¸ðµç Àû¿ë °¡´ÉÇÑ ÀÏ¹Ý ÇÊµå ¶Ç´Â Response-Header Çʵå ÀÌ¿Ü¿¡ ÀÌ ±Ô°Ý¿¡¼­ ±ÔÁ¤ÇÏÁö ¾Ê´Â ¸ðµç È®ÀåÀ» Æ÷ÇÔÇÏ¿© ¼­¹ö°¡ ±¸ÇöÇÑ(¿¹ Public) ¼±Åà ±â´ÉÀ» Ç¥½ÃÇÏ´Â ¸ðµç Çì´õ Çʵ带 Æ÷ÇÔ ÇØ¾ß ÇÑ´Ù. 5.1.2 Àý¿¡¼­ ¼³¸íµÈ °Íó·³ "OPTIONS *" ¿ä±¸´Â °æ·Î Á¤º¸ ¾øÀÌ Request-URI¿¡ ¸ñÀûÁö ¼­¹ö¸¦ ¸í½ÃÇÔÀ¸·Î½á ÇÁ¶ô½Ã¸¦ ÅëÇÏ¿© Àû¿ëÇÒ ¼ö ÀÖ´Ù. Request-URI°¡ º°Ç¥°¡ ¾Æ´Ï¸é OPTIONS ¿ä±¸´Â ÇØ´ç ÀÚ¿ø°ú Åë½ÅÇÒ ¶§ »ç¿ëÇÒ ¼ö ÀÖ´Â ¼±Åà »çÇ׿¡¸¸ Àû¿ëµÈ´Ù. 200 ÀÀ´äÀº ¸ðµç Àû¿ë °¡´ÉÇÑ ÀÏ¹Ý ÇÊµå ¶Ç´Â Response-Header Çʵå ÀÌ¿Ü ¿¡ ÀÌ ±Ô°Ý¿¡¼­ ±ÔÁ¤ÇÏÁö ¾Ê´Â ¸ðµç È®ÀåÀ» Æ÷ÇÔÇÏ¿© ¼­¹ö°¡ ±¸ÇöÇÑ(¿¹ Allow) ¼±Åà ±â´ÉÀ» Ç¥½ÃÇÏ´Â ¸ðµç Çì´õ Çʵ带 Æ÷ÇÔÇØ¾ß ÇÑ´Ù. OPTIONS ¿ä±¸°¡ ÇÁ¶ô½Ã¸¦ ÅëÇÑ´Ù¸é ÇÁ¶ô½Ã´Â ÇÁ ¶ô½ÃÀÇ ¼º´É¿¡ °ü°èµÇ´Â ¼±Åà »çÇ× ¹× ÇÁ¶ô½Ã¸¦ ÅëÇÏ¿© »ç¿ëÇÒ ¼ö ¾ø´Â °ÍÀ¸·Î ¾Ë·ÁÁø ¼±Åà »çÇ×À» Á¦¿ÜÇÒ ¼ö ÀÖµµ·Ï ÀÀ´äÀ» ¹Ýµå½Ã ÆíÁýÇØ¾ß ÇÑ´Ù. [Page 49] 9.3 GET GET method´Â Request-URI°¡ ½Äº°ÇÏ´Â ¸ðµç Á¤º¸(¿£ÅÍƼÀÇ ÇüÅ·Î)¸¦ Á¶È¸ÇÑ´Ù´Â °ÍÀ» ÀÇ¹Ì ÇÑ´Ù. Request-URI°¡ µ¥ÀÌÅ͸¦ »ý¼ºÇÏ´Â ÇÁ·Î¼¼½º¸¦ ÂüÁ¶ÇÑ´Ù¸é ÅؽºÆ®°¡ ¿ì¿¬È÷ ÇÁ·Î¼¼½ºÀÇ »êÃâ¹°ÀÌ ¾Æ´Ñ ÀÌ»ó ¿£ÅÍƼ·Î¼­ ¸®ÅÏ µÇ´Â °ÍÀº ÇÁ·Î¼¼½ºÀÇ ¼Ò½º ÅؽºÆ®°¡ ¾Æ´Ï¶ó »ý¼ºµÈ µ¥ ÀÌÅÍÀÌ´Ù. GET methodÀÇ Àǹ̴ ¿ä±¸ ¸Þ½ÃÁö°¡ If-Modified-Since, If-Unmodified-Since, If-Match, If-None- Match ¶Ç´Â If-Range Çì´õ Çʵ带 Æ÷ÇÔÇÏ°í ÀÖÀ¸¸é "Á¶°ÇÀûÀÎ GET"À¸·Î º¯È­ÇÑ´Ù. Á¶°ÇÀûÀÎ GET method´Â ¿£ÅÍƼ°¡ Á¶°Ç Çì´õ Çʵ尡 ¸í½ÃÇÑ Á¶°Ç ÇÏ¿¡¼­¸¸ Àü¼ÛµÇµµ·Ï ¿äûÇÏ´Â °ÍÀÌ´Ù. Á¶°ÇÀû GET method´Â º¹¼öÀÇ ¿ä±¸³ª Ŭ¶óÀ̾ðÆ®°¡ ÀÌ¹Ì º¸À¯ÇÏ°í ÀÖ´Â µ¥ÀÌÅ͸¦ Àü¼ÛÇÏÁö ¾Ê °íµµ ij½Ã µÈ ¿£ÅÍƼ¸¦ °»½ÅÇÒ ¼ö ÀÖµµ·Ï ÇÔÀ¸·Î¼­ ºÒÇÊ¿äÇÑ ³×Æ®¿öÅ© »ç¿ëÀ» °¨¼Ò½ÃÅ°±â À§ ÇØ »ç¿ëÇÑ´Ù. GET methodÀÇ Àǹ̴ ¿ä±¸ ¸Þ½ÃÁö°¡ Range Çì´õ Çʵ带 Æ÷ÇÔÇÏ°í ÀÖÀ¸¸é "ºÎºÐÀûÀÎ GET"À¸ ·Î º¯È­ÇÑ´Ù. ºÎºÐÀûÀÎ GET method´Â 14.36 Àý¿¡ ¼³¸íµÈ °Íó·³ ¿£ÅÍƼÀÇ ÀÏ ºÎºÐ¸¸ Àü¼ÛÇϵµ ·Ï ¿äûÇÏ´Â °ÍÀÌ´Ù. ºÎºÐÀû GET method´Â Ŭ¶óÀ̾ðÆ®°¡ ÀÌ¹Ì º¸À¯ÇÏ°í ÀÖ´Â µ¥ÀÌÅ͸¦ Àü¼Û ÇÏÁö ¾Ê°íµµ ºÎºÐÀûÀ¸·Î Á¶È¸ÇÑ ¿£ÅÍƼ°¡ ¿Ï¼ºµÉ ¼ö ÀÖµµ·Ï ÇÔÀ¸·Î½á ºÒÇÊ¿äÇÑ ³×Æ®¿öÅ© »ç¿ë À» °¨¼Ò½ÃÅ°±â À§ÇØ »ç¿ëÇÑ´Ù. GET ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀº 13 Àå¿¡ ¼³¸íµÈ ´ë·Î HTTP ij½Ã ¿ä±¸ ÇÊ¿ä Á¶°ÇÀ» ¸¸Á·ÇÒ °æ¿ì¿¡¸¸ ij½ÃÇÒ ¼ö ÀÖ´Ù. 9.4 HEAD HEAD method´Â ¼­¹ö°¡ ÀÀ´ä ¸Þ½ÃÁö¿¡ Message-Body¸¦ ¹Ýµå½Ã ¸®ÅÏÇØ¾ß ÇÑ´Ù´Â °Í ÀÌ¿Ü¿¡´Â GET°ú µ¿ÀÏÇÏ´Ù. HEAD ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î HTTP Çì´õ¿¡ Æ÷ÇÔµÈ ¸ÞŸ Á¤º¸´Â GET ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î ¹ß¼ÛµÈ Á¤º¸¿Í ¹Ýµå½Ã µ¿ÀÏÇØ¾ß ÇÑ´Ù. ÀÌ method´Â Entity-Body ÀÚü¸¦ Àü¼ÛÇÏ Áö ¾Ê°íµµ ¿ä±¸°¡ ³»Æ÷ÇÏ´Â ¿£ÅÍƼ¿¡ ´ëÇÑ ¸ÞŸ Á¤º¸¸¦ ¾ò´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ method´Â Á¾Á¾ ÇÏÀÌÆÛÅؽºÆ® ¸µÅ©ÀÇ À¯È¿¼º, Á¢±Ù¼º ¹× ÃÖ±ÙÀÇ º¯°æ »çÇ×À» Å×½ºÆ®Çϱâ À§ÇØ »ç¿ëµÈ´Ù. HEAD ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀº ÀÀ´ä¿¡ Æ÷ÇÔµÈ Á¤º¸¸¦ ÇØ´ç ÀÚ¿øÀÇ ÀÌÀü ij½Ã ¿£ÅÍƼ¸¦ °»½ÅÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â Àǹ̿¡¼­ ij½ÃÇÒ ¼ö ÀÖ´Ù. »õ·Î¿î ÇÊµå °ªÀÌ Ä³½Ã µÈ ¿£ÅÍƼ°¡ ÇöÀç ÀÇ ¿£ÅÍƼ (Content-Length, Content-MD5, ETag ¶Ç´Â Last-ModifiedÀÇ º¯È­¿¡ ÀÇÇØ Ç¥½ÃµÇ´Â °Í°ú °° Àº)¿Í »óÀÌÇÔÀ» Ç¥½ÃÇÒ ¶§´Â ij½Ã´Â ¹Ýµå½Ã ÀÌ Ä³½Ã ¿£Æ®¸®¸¦ ³°À» °ÍÀ¸·Î Ãë±ÞÇØ¾ß ÇÑ´Ù. [Page 50] 9.5 POST POST method´Â ¼­¹ö¿¡°Ô Request-LineÀÇ Request-URI°¡ ½Äº°ÇÏ´Â ÀÚ¿øÀÇ »õ·Î¿î ºÎ¼Ó¹°·Î¼­ ¿ä±¸¿¡ Æ÷ÇÔµÈ ¿£ÅÍƼ¸¦ Á¢¼öÇÒ °ÍÀ» ¿ä±¸ÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. POST´Â ´ÙÀ½ÀÇ ±â´ÉÀ» ¼öÇàÇÏ´Â ÀÏ°üµÈ method¸¦ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï µðÀÚÀÎ µÇ¾ú´Ù. ? ±âÁ¸ ÀÚ¿øÀÇ ÁÖÇØ; ? °Ô½ÃÆÇ, ´º½º±×·ì, ÆíÁö ¹ß¼Û ¸ñ·Ï ¶Ç´Â À¯»çÇÑ ±â»ç ±×·ìÀ¸·Î ¸Þ½ÃÁö¸¦ ¼ÛºÎ; ? ÆûÀ» Á¦ÃâÇÑ °á°ú·Î ¹ß»ýÇÑ µ¥ÀÌÅÍ ºí·ÏÀ» µ¥ÀÌÅÍ Ã³¸® ÇÁ·Î¼¼½º¿¡ Á¦°ø; ? Ãß°¡ ÀÛ¾÷À» ÅëÇÑ µ¥ÀÌÅÍ º£À̽ºÀÇ È®Àå. POST method°¡ ½ÇÁ¦ÀûÀ¸·Î ¼öÇàÇÏ´Â ±â´ÉÀº ¼­¹ö°¡ °áÁ¤ÇÏ¸ç º¸Åë Request-URI¿¡ ´Þ·Á ÀÖ´Ù. ¹ß¼ÛµÈ ¿£ÅÍƼ´Â ÆÄÀÏÀÌ ÆÄÀÏÀ» Æ÷ÇÔÇÏ°í ÀÖ´Â µð·ºÅ丮¿¡ Á¾¼ÓµÇ°í, ´º½º ±â»ç°¡ ¹ß¼ÛÇÑ ´º ½º±×·ì¿¡ Á¾¼ÓµÇ¸ç ·¹Äڵ尡 µ¥ÀÌÅÍ º£À̽º¿¡ Á¾¼ÓµÇµíÀÌ ÇØ´ç URI¿¡ Á¾¼ÓµÈ´Ù. POST method°¡ ¼öÇàÇÏ´Â ÀÛ¾÷ÀÌ URI·Î ½Äº°ÇÒ ¼ö ÀÖ´Â ÀÚ¿øÀ» »ý¼ºÇÏÁö ¾ÊÀ» ¼öµµ ÀÖ´Ù. ÀÌ ·¯ÇÑ °æ¿ì ÀÀ´äÀÌ °á°ú¸¦ ¼³¸íÇÏ´Â ¿£ÅÍƼ¸¦ Æ÷ÇÔÇÏ°í Àִ°¡ ¿©ºÎ¿¡ µû¶ó 200(OK)À̳ª 204(No Content)°¡ ÀûÀýÇÑ ÀÀ´ä »óÅÂÀÌ´Ù. »õ·Î¿î ÀÚ¿øÀÌ ¿ø¼­¹ö¿¡¼­ »ý¼ºµÇ¾ú´Ù¸é ÀÀ´äÀº 201(Created)À̾î¾ß ÇÏ°í ¿ä±¸ÀÇ »óŸ¦ ¼³¸í ÇÏ¸ç »õ·Î¿î ÀÚ¿ø ¹× Location Çì´õ (14.30 Àý ÂüÁ¶)¸¦ ÁöĪÇÏ´Â ¿£ÅÍƼ¸¦ Æ÷ÇÔÇØ¾ß ÇÑ´Ù. ÀÌ method¿¡ ´ëÇÑ ÀÀ´äÀº ÀÀ´äÀÌ ÀûÀýÇÑ Cache-Control ¶Ç´Â Expires Çì´õ Çʵ带 Æ÷ÇÔÇÏÁö ¾Ê ´Â ÇÑ Ä³½ÃÇÒ ¼ö ¾ø´Ù. ±×·¯³ª 303(See Other) ÀÀ´äÀ» »ç¿ëÇÏ¿© »ç¿ëÀÚ ¿¡ÀÌÀüÆ®¿¡°Ô ij½ÃÇÒ ¼ö ÀÖ´Â ÀÚ¿øÀ» Á¶È¸Çϵµ·Ï Áö½ÃÇÒ ¼ö ÀÖ´Ù. POST ¿ä±¸´Â 8.2 Àý¿¡ ¼³Á¤µÈ ¸Þ½ÃÁö Àü¼Û ÇÊ¿ä Á¶°ÇÀ» ¹Ýµå½Ã µû¶ó¾ß ÇÑ´Ù. [Page 51] 9.6 PUT PUT method´Â µ¿ºÀµÈ ¿£ÅÍƼ¸¦ Á¦°øµÈ Request-URI¿¡ ÀúÀåÇϵµ·Ï ¿ä±¸ÇÑ´Ù. Request-URI°¡ ÀÌ ¹Ì Á¸ÀçÇÏ´Â ÀÚ¿øÀ» ÁöĪÇÒ °æ¿ì µ¿ºÀµÈ ¿£ÅÍƼ´Â ¿ø¼­¹ö¿¡ ÀÖ´Â ¿£ÅÍƼÀÇ º¯°æµÈ ¹öÀüÀ¸·Î °£ÁÖÇØ¾ß ÇÑ´Ù. Request-URI°¡ ±âÁ¸ ÀÚ¿øÀ» ÁöĪÇÏÁö ¾Ê°í URI°¡ ¿ä±¸ÇÏ´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ »õ·Î¿î ÀÚ¿øÀ¸·Î ±ÔÁ¤ÇÒ ¼ö ÀÖ´Ù¸é ¿ø¼­¹ö´Â ÇØ´ç URI·Î ÀÚ¿øÀ» »ý¼ºÇÒ ¼ö ÀÖ´Ù. ¸¸¾à »õ·Î ¿î ÀÚ¿øÀÌ »ý¼ºµÇ¾úÀ¸¸é ¿ø¼­¹ö´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ®¿¡°Ô 201(Created) ÀÀ´äÀ» ¾Ë·Á¾ß ÇÑ´Ù. ±âÁ¸ ÀÚ¿øÀÌ º¯°æµÇ¾ú´Ù¸é 200(OK)À̳ª 204(No Content) ÀÀ´ä Äڵ带 ¹ß¼ÛÇÏ¿© ¿ä±¸¸¦ ¼º°øÀûÀ¸·Î ¿Ï·áÇÏ¿´À½À» Ç¥½ÃÇÏ¿©¾ß ÇÑ´Ù. Request-URI·Î ÀÚ¿øÀ» »ý¼ºÇϰųª º¯°æÇÒ ¼ö ¾ø´Â °æ¿ì¿¡´Â ¹® Á¦ÀÇ ±âº» ¼º°ÝÀ» ¹Ý¿µÇÏ´Â ÀûÀýÇÑ ¿¡·¯ ÀÀ´äÀ» ¹ß¼ÛÇØ¾ß ÇÑ´Ù. ¿£ÅÍƼÀÇ ¼ö½ÅÃøÀº ÀÌÇØ ¶Ç´Â ±¸ÇöÇÒ ¼ö ¾ø´Â Content-* (¿¹: Content-Range) Çì´õ¸¦ ¹Ýµå½Ã ¹«½ÃÇØ¾ß ÇÏ°í ÀÌ·¯ÇÑ °æ¿ì 501(Not Implemented) ÀÀ´äÀ» ¸®ÅÏÇØ¾ß ÇÑ´Ù. ¿ä±¸°¡ ij½Ã¸¦ Åë°úÇÒ °æ¿ì Request-URI´Â Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ ÇöÀç ij½Ã µÈ ¿£ÅÍƼ¸¦ ½Äº° ÇÑ´Ù. ÀÌ·¯ÇÑ ¿£ÅÍƼ´Â ³°Àº °ÍÀ¸·Î Ãë±ÞÇØ¾ß Çϸç ÀÌ·¯ÇÑ method¿¡ ´ëÇÑ ÀÀ´äÀº ij½ÃÇÒ ¼ö ¾ø´Ù. POST¿Í PUT ¿ä±¸ÀÇ ±Ùº»ÀûÀÎ Â÷ÀÌÁ¡Àº Request-URIÀÇ ´Ù¸¥ Àǹ̿¡ ¹Ý¿µµÈ´Ù. POSTÀÇ URI ´Â µ¿ºÀµÈ ¿£ÅÍƼ¸¦ ó¸®ÇÒ ÀÚ¿øÀ» ½Äº°ÇÑ´Ù. ±× ÀÚ¿øÀº µ¥ÀÌÅ͸¦ Á¢¼öÇÏ´Â ÇÁ·Î¼¼½º, ´Ù¸¥ ±Ô ¾àÀ¸·ÎÀÇ °ÔÀÌÆ®¿þÀÌ ¶Ç´Â ÁÖ¼®À» Á¢¼öÇÏ´Â º°µµÀÇ ¿£ÅÍƼÀÏ ¼ö ÀÖ´Ù. ÀÌ¿¡ ºñÇÏ¿© PUT ¿ä±¸ ÀÇ URI´Â ¿ä±¸¿¡ Æ÷ÇÔµÈ ¿£ÅÍƼ¸¦ ½Äº°ÇÑ´Ù. - »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â ¾î¶² URI¸¦ ÀǵµÇÏ°í ÀÖÀ¸ ¸ç ¼­¹ö´Â ¿ä±¸¸¦ ´Ù¸¥ ÀÚ¿ø¿¡ Àû¿ëÇؼ­´Â Àý´ë·Î ¾È µÈ´Ù´Â °ÍÀ» ¾Ë°í ÀÖ´Ù. ¸¸¾à ¼­¹ö°¡ ÇØ ´ç ¿ä±¸¸¦ ´Ù¸¥ URI¿¡ Àû¿ëÇÏ°íÀÚ ÇÑ´Ù¸é ¼­¹ö´Â 301(Moved Permanently) ÀÀ´äÀ» ¹Ýµå½Ã ¹ß¼Û ÇØ¾ß ÇÑ´Ù. ±×·¯¸é »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â ÇØ´ç ¿ä±¸ÀÇ ¹æÇâÀ» Àç¼³Á¤ ÇÒ °ÍÀÎÁö¿¡ °üÇÑ ÀÚ½ÅÀÇ °áÁ¤À» ÇÑ´Ù. ´ÜÀÏ ÀÚ¿øÀÌ º¹¼öÀÇ »óÀÌÇÑ URI¿¡ ÀÇÇÏ¿© ½Äº°µÉ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î ±â»ç(article)´Â °¢°¢ÀÇ Æ¯º°ÇÑ ¹öÀüÀ» ½Äº°ÇÏ´Â URI¿Í ±¸º°µÇ´Â "ÇöÀç ¹öÀü"À» È®ÀÎÇϱâ À§ÇÑ URI¸¦ °¡Áú ¼ö ÀÖ´Ù. ÀÌ °æ¿ì ÀÏ¹Ý URIÀÇ PUT ¿ä±¸´Â ¿ø¼­¹ö¿¡ ÀÇÇÏ¿© ±ÔÁ¤µÇ´Â º¹¼öÀÇ URI¸¦ »ý¼ºÇÒ ¼öµµ ÀÖ´Ù. HTTP/1.1Àº PUT method°¡ ¾î¶»°Ô ¿ø¼­¹öÀÇ »óÅ¿¡ ¿µÇâÀ» ¹ÌÄ¡´Â°¡¿¡ ´ëÇؼ­´Â ±ÔÁ¤ÇÏÁö ¾Ê ´Â´Ù. PUT ¿ä±¸´Â 8.2 Àý¿¡ ¼³Á¤µÈ ¸Þ½ÃÁö Àü¼Û ÇÊ¿ä Á¶°ÇÀ» ¹Ýµå½Ã µû¶ó¾ß ÇÑ´Ù. [Page 52] 9.7 DELETE DELETE method´Â Request-URI°¡ ½Äº°ÇÏ´Â ÀÚ¿øÀ» »èÁ¦Çϵµ·Ï ¿ø¼­¹ö¿¡ ¿ä±¸ÇÑ´Ù. ÀÌ method ´Â ¿ø¼­¹ö¿¡¼­ »ç¿ëÀÚÀÇ °³ÀÔ(¶Ç´Â ´Ù¸¥ ¹æ¹ý)¿¡ ÀÇÇÏ¿© ¹«½ÃµÉ ¼ö ÀÖ´Ù. Ŭ¶óÀ̾ðÆ®´Â ºñ·Ï ¿ø¼­¹ö¿¡¼­ ¹ß¼ÛÇÑ »óÅ Äڵ尡 ÇØ´ç ÀÛ¾÷ÀÌ ¼º°øÀûÀ¸·Î ¿Ï¼öµÇ¾ú´Ù´Â Ç¥½Ã¸¦ ÇÏ¿©µµ ½ÇÁ¦·Î ÀÛ¾÷ÀÌ ¿Ï·áµÇ¾ú´Ù´Â º¸ÀåÀ» ¹ÞÀ» ¼ö ¾ø´Ù. ±×·¯³ª ¼­¹ö´Â ¿ä±¸¸¦ Á¢¼öÇÑ ½ÃÁ¡¿¡¼­ ÀÚ¿øÀ» »è Á¦Çϰųª Á¢±ÙÇÒ ¼ö ¾ø´Â À§Ä¡·Î À̵¿ÇÒ Àǻ簡 ¾ø´Â ÇÑ ¼º°øÀ» Ç¥½ÃÇؼ­´Â ¾È µÈ´Ù. ¼º°øÀûÀÎ ÀÀ´äÀº ÀÀ´äÀÌ »óŸ¦ ¼³¸íÇÏ´Â ¿£ÅÍƼ¸¦ Æ÷ÇÔÇÑ´Ù¸é 200 (OK), 󸮰¡ ½ÃÀÛµÇÁö ¾Ê ¾ÒÀ¸¸é 202 (Accepted), ÀÀ´äÀº OKÀ̳ª ¿£ÅÍƼ¸¦ Æ÷ÇÔÇÏÁö ¾Ê°í ÀÖÀ¸¸é 204 (No Content)ÀÌ´Ù. ¿ä±¸°¡ ij½Ã¸¦ Åë°úÇÒ °æ¿ì Request-URI´Â Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ ÇöÀç ij½Ã µÈ ¿£ÅÍƼ¸¦ ½Äº° ÇÑ´Ù. ÀÌ·¯ÇÑ ¿£ÅÍƼ´Â ³°Àº °ÍÀ¸·Î Ãë±ÞÇØ¾ß Çϸç ÀÌ·¯ÇÑ method¿¡ ´ëÇÑ ÀÀ´äÀº ij½ÃÇÒ ¼ö ¾ø´Ù. 9.8 TRACE TRACE method´Â ¿ä±¸ ¸Þ½ÃÁöÀÇ ¿ø°ÝÁö, ¾ÖÇø®ÄÉÀ̼Ç-°èÃþ ·çÇÁ¹é(loop back)À» È£ÃâÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. ÀÀ´äÀÇ ÃÖÁ¾ ¼ö½ÅÃøÀº Ŭ¶óÀ̾ðÆ®¿¡°Ô µÇµ¹·Á Áø ¸Þ½ÃÁö¸¦ 200(OK) ÀÀ´äÀÇ Entity- Body·Î ¼ö½ÅÇØ¾ß ÇÑ´Ù. ¸¶Áö¸· ¼ö½ÅÃøÀº ¸Þ½ÃÁöÀÇ Max-Forwards Á¦·Î °ª(14.31 Àý)À» ¼ö½ÅÇÏ´Â ¿ø¼­¹ö, ù ÇÁ¶ô½Ã ¶Ç´Â °ÔÀÌÆ®¿þÀÌÀÌ´Ù. TRACE ¿ä±¸´Â Àý´ë ¿£ÅÍƼ¸¦ Æ÷ÇÔÇؼ­´Â ¾È µÈ´Ù. TRACE´Â Ŭ¶óÀ̾ðÆ®°¡ Request chainÀÇ ´Ù¸¥ ³¡ ÂÊ¿¡ ¹«¾ùÀÌ ¼ö½ÅµÇ´Â°¡¸¦ ¾Ë ¼ö ÀÖ°Ô ÇÏ¸ç ±× µ¥ÀÌÅ͸¦ ½ÃÇè ¶Ç´Â Áø´Ü Á¤º¸·Î »ç¿ëÇÑ´Ù. Via Çì´õ Çʵå(14.44 Àý)ÀÇ °ªÀº Request chainÀÇ ÃßÀû ¿ªÇÒÀ» ¼öÇàÇϱ⠶§¹®¿¡ ƯÈ÷ ÁÖ¸ñÇÒ ¸¸ÇÏ´Ù. Max-Forwards Çì´õ Çʵ带 »ç¿ëÇϸé Ŭ¶óÀÌ ¾ðÆ®°¡ Request chainÀÇ ±æÀ̸¦ Á¦ÇÑÇÒ ¼ö ÀÖÀ¸¸ç ÀÌ´Â ¹«ÇÑ ·çÇÁ¿¡¼­ ¸Þ½ÃÁö¸¦ Àü´ÞÇÏ´Â ÇÁ¶ô ½Ã °í¸®¸¦ Å×½ºÆ®ÇÏ´Â µ¥ À¯¿ëÇÏ´Ù. ¼º°øÀûÀ̸é ÀÀ´äÀº "message/http" ÀÇ Content-TypeÀ» °¡Áø Entity-BodyÀÇ Àüü ¿ä±¸ ¸Þ½ÃÁö¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ method¿¡ ´ëÇÑ ÀÀ´äÀ» Àý´ë ij½ÃÇؼ­´Â ¾È µÈ´Ù. 10 Status Code Definitions °¢Status-Code °¡ ¾î¶² method¸¦ µû¸¦ ¼ö Àִ°¡¿¡ ´ëÇÑ ¼³¸í°ú ÀÀ´ä¿¡¼­ ÇÊ¿ä·Î ÇÏ´Â Çì´õ Á¤º¸ ¸¦ Æ÷ÇÔÇÏ¿© ¾Æ·¡¿¡ ¼³¸íµÇ¾î ÀÖ´Ù. [Page 53] 10.1 Á¤º¸¸¦ ¾Ë·Á ÁÖ´Â 1xx ÀÌ »óÅ ÄÚµå Ŭ·¡½º´Â ÀáÀûÀûÀÎ ÀÀ´äÀ» Ç¥½ÃÇϸç Status-Line°ú ¼±ÅÃÀûÀÎ Çì´õ·Î ±¸¼ºµÇ¾î ÀÖ ´Ù. ÀÌ Å¬·¡½º´Â ºó ¶óÀÎÀ¸·Î Á¾·áµÈ´Ù. HTTP/1.0Àº ¾î¶°ÇÑ 1xx »óÅ ÄÚµå·Î Á¤ÀÇÇÏÁö ¾Ê±â ¶§ ¹®¿¡ ½ÇÇèÀûÀÎ »óȲ ÀÌ¿Ü¿¡ ¼­¹ö´Â 1xx ÀÀ´äÀ» HTTP/1.0 Ŭ¶óÀ̾ðÆ®¿¡ ¹ß¼ÛÇؼ­´Â ¾È µÈ´Ù. 10.1.1 100 °è¼Ó Ŭ¶óÀ̾ðÆ®´Â ¿ä±¸¸¦ °è¼Ó ÁøÇàÇÒ ¼ö ÀÖ´Ù. ÀÌ ÀáÁ¤ÀûÀÎ ÀÀ´äÀº Ŭ¶óÀ̾ðÆ®¿¡°Ô ÀÀ´äÀÇ ½ÃÃÊ ºÎºÐÀÌ ¼ö½ÅµÇ¾úÀ¸¸ç ¼­¹ö°¡ ¾ÆÁ÷ °ÅºÎÇÏÁö ¾Ê¾ÒÀ½À» ¾Ë¸®´Â µ¥ »ç¿ëÇÑ´Ù. Ŭ¶óÀ̾ðÆ®´Â ¿ä±¸ ÀÇ ³ª¸ÓÁö ºÎºÐÀ» ¹ß¼ÛÇÏ¿©¾ß ÇÏ¸ç ¿ä±¸°¡ ¿Ï·á µÇ¾úÀ¸¸é ÀÌ ÀÀ´äÀ» ¹«½ÃÇØ¾ß ÇÑ´Ù. ¼­¹ö´Â ¿ä±¸°¡ ¿Ï·áµÈ ´ÙÀ½ ¸¶Áö¸· ÀÀ´äÀ» ¹ß¼ÛÇÑ´Ù. 10.1.2 101 ±Ô¾à Àüȯ ¼­¹ö°¡ ÀÌÇØÇÏ¿´À¸¸ç ±â²¨ÀÌ Upgrade ¸Þ½ÃÁö Çì´õ Çʵå(14.41 Àý)¸¦ ÅëÇÏ¿© Á¢¼Ó¿¡ »ç¿ëµÇ°í ÀÖ´Â ¾ÖÇø®ÄÉÀÌ¼Ç ±Ô¾à º¯°æ¿¡ °üÇÑ Å¬¶óÀ̾ðÆ®ÀÇ ¿ä±¸¿¡ µû¸¥´Ù. ¼­¹ö´Â 101 ÀÀ´äÀ» Á¾·áÇÏ ´Â ºó ¶óÀÎ ¹Ù·Î ´ÙÀ½ ÀÀ´ä ¸Þ½ÃÁöÀÇ Upgrade Çì´õ Çʵ尡 Á¤ÀÇÇÑ ±Ô¾àÀ¸·Î ÀüȯÇÒ °ÍÀÌ´Ù. ±Ô¾àÀº ÀüȯÇÏ´Â °ÍÀÌ À¯¸®ÇÑ °æ¿ì¿¡¸¸ ÀüȯµÈ´Ù. ¿¹¸¦ µé¾î »õ·Î¿î ¹öÀüÀÇ HTTP·Î ÀüȯÇÏ ´Â °ÍÀÌ ÀÌÀü ¹öÀüÀ» »ç¿ëÇÏ´Â °Íº¸´Ù À¯¸®Çϸç ÇØ´ç ±â´ÉÀ» »ç¿ëÇÏ´Â ÀÚ¿øÀ» ¹è´ÞÇÒ ¶§ ½Ç½Ã °£, µ¿½Ã ±Ô¾àÀ¸·Î ÀüȯÇÏ´Â °ÍÀÌ À¯¸®ÇÏ´Ù. 10.2 ¼º°øÀ» ¾Ë¸®´Â 2xx ÀÌ »óÅ ÄÚµå Ŭ·¡½º´Â Ŭ¶óÀ̾ðÆ®ÀÇ ¿ä±¸°¡ ¼º°øÀûÀ¸·Î ¼ö½Å, Çؼ® ¹× Á¢¼öµÇ¾úÀ½À» Ç¥½ÃÇÑ ´Ù. 10.2.1 200 OK ¿ä±¸¸¦ ¼º°øÀûÀ¸·Î Àü´ÞÇÏ¿´´Ù. ÀÀ´ä°ú ÇÔ²² ¸®ÅÏ µÇ´Â Á¤º¸´Â ¿ä±¸¿¡ »ç¿ëµÈ method¿¡ ´Þ·Á ÀÖ´Ù. ¿¹¸¦ µé¸é: GET ¿ä±¸ÇÑ ÀÚ¿ø¿¡ »óÀÀÇÏ´Â ¿£ÅÍƼ´Â ÀÀ´ä¿¡ Æ÷ÇÔµÇ¾î ¹ß¼ÛµÈ´Ù. HEAD ¿ä±¸ÇÑ ÀÚ¿ø¿¡ »óÀÀÇÏ´Â Entity-Header Çʵå´Â Message-Body ¾øÀÌ ÀÀ´ä¿¡ Æ÷ÇÔµÇ¾î ¹ß¼Û µÈ´Ù. [Page 54] POST ó¸® °á°ú¸¦ ¼³¸í ¶Ç´Â Æ÷ÇÔÇÏ´Â ¿£ÅÍƼ. TRACE ¼ö½Å ¼­¹ö°¡ ¼ö½ÅÇÑ ¿ä±¸ ¸Þ½ÃÁö¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Â ¿£ÅÍƼ 10.2.2 201 Created (»ý¼º µÇ¾úÀ½) ¿ä±¸°¡ ÃæÁ·µÇ¾úÀ¸¸ç »õ·Î¿î ÀÚ¿øÀÌ »ý¼ºµÇ°í ÀÖ´Ù. »õ·Î »ý¼ºµÈ ÀÚ¿øÀº ÀÀ´ä ¿£ÅÍƼÀÇ ¸®ÅÏ µÈ URI¸¦ ÅëÇÏ¿© ÂüÁ¶ÇÒ ¼ö ÀÖÀ¸¸ç ÀÚ¿øÀÇ °¡Àå »ó¼¼ÇÑ URLÀº Location Çì´õ Çʵå·Î ¾Ë ¼ö ÀÖ´Ù. ¿ø¼­¹ö´Â 201 »óÅ Äڵ带 ¸®ÅÏÇϱâ Àü¿¡ ¹Ýµå½Ã ÀÚ¿øÀ» »ý¼ºÇØ¾ß ÇÑ´Ù. 󸮰¡ Áï°¢Àû À¸·Î ¼öÇàµÉ ¼ö ¾øÀ» ¶§¿¡ ¼­¹ö´Â 202(Accepted) ÀÀ´äÀ¸·Î ´ë½Å ÀÀÇØ¾ß ÇÑ´Ù. 10.2.3 202 Accepted (Á¢¼ö µÇ¾úÀ½) 󸮸¦ À§ÇØ ÀÀ´äÀ» Á¢¼öÇÏ¿´À¸³ª 󸮴 ¿Ï·áµÇÁö ¾Ê¾Ò´Ù. ¿ä±¸´Â ¿£ÅÍƼÀÇ Ã³¸® °úÁ¤¿¡¼­ Çã¿ëµÇÁö ¾ÊÀ» ¼öµµ Àֱ⠶§¹®¿¡ ±Ã±ØÀûÀ¸·Î ó¸®µÉ ¼öµµ ÀÖ°í 󸮵ÇÁö ¾ÊÀ» ¼öµµ ÀÖ´Ù. ÀÌ ¿Í °°Àº µ¿½Ã ÀÛ¾÷¿¡¼­ »óÅ Äڵ带 Àç¹ß¼ÛÇÏ´Â ¼³ºñ´Â ¾ø´Ù. 202 ÀÀ´äÀº ÀǵµÀûÀ¸·Î ÀÛ¾÷À» ¼öÇàÇÏÁö ¾Ê´Â´Ù. ÀÌ ÀÀ´äÀÇ ¸ñÀûÀº ¼­¹ö°¡ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ ÇÁ·Î¼¼½º°¡ ¿Ï·áµÉ ¶§±îÁö ¼­¹ö¿¡ Áö¼ÓÀûÀ¸·Î ¿¬°áµÇÁö ¾Ê°íµµ ´Ù¸¥ ÇÁ·Î¼¼½º¿¡ ´ëÇÑ ¿ä±¸(ÇÏ ·ç¿¡ ÇÑ ¹ø¸¸ ½ÇÇàµÇ´Â ¹èÄ¡ ÁöÇâÀûÀÎ ÇÁ·Î¼¼½ºÀÏ ¼öµµ ÀÖ´Ù.)¸¦ Á¢¼öÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â µ¥ ÀÖ´Ù. ÀÌ ÀÀ´äÀ» ¸®ÅÏÇÏ´Â ¿£ÅÍƼ´Â »óÅ Á¡°ËÀÚ(monitor)¿¡ ´ëÇÑ Áö½ÃÀÚ ¶Ç´Â »ç¿ëÀÚ°¡ ¾ðÁ¦ ¿ä±¸°¡ ¿Ï·áµÉ ¼ö ÀÖ´ÂÁö¿¡ ´ëÇÑ ¿¹»ó ¹× ¿ä±¸ÀÇ ÇöÀç »óÅ¿¡ ´ëÇÑ Ç¥½Ã¸¦ Æ÷ÇÔÇØ¾ß ÇÑ´Ù. 10.2.4 203 Non-Authoritative Information(ºñ ÀÎÁõ Á¤º¸) Entity-HeaderÀÇ ¸®ÅÏ µÈ ¸ÞŸ Á¤º¸´Â ¼­¹ö¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â Á¤ÀÇ ¼¼Æ®°¡ ¾Æ´Ï°í Áö¿ª ¶Ç´Â Á¦ 3 ÀÚÀÇ º¹»çº»¿¡¼­ ¼öÁýÇÑ °ÍÀÌ´Ù. Á¦½ÃµÈ ¼¼Æ®´Â ¿ø·¡ ¹öÀüÀÇ ÇϺΠ¼¼Æ® ¶Ç´Â »óÀ§ ¼¼Æ® ÀÏ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î ÀÚ¿ø¿¡ ´ëÇÑ Áö¿ªÀû ÁÖÇØ Á¤º¸¸¦ Æ÷ÇÔÇÏ¸é ¿ø¼­¹ö°¡ ¾Ë°í ÀÖ´Â ¸ÞŸ Á¤º¸¿¡ ´ëÇÑ »óÀ§ ¼¼Æ®¸¦ ¸¸µé¾î ³¾ ¼öµµ ÀÖ´Ù. ÀÌ ÀÀ´ä Äڵ带 »ç¿ëÇÏ´Â °ÍÀº Àǹ«»çÇ×ÀÌ ¾Æ´Ï ¸ç ÀÀ´äÀÌ203ÀÌ ¾Æ´Ï¸é 200 (OK)ÀÏ ¶§¸¸ ÀûÇÕÇÏ´Ù. 10.2.5 204 No Content(³»¿ëÀÌ ¾øÀ½) ¼­¹ö°¡ ¿ä±¸¸¦ ¿ÏÀüÈ÷ ó¸® ÇßÀ¸³ª ¹Ý¼ÛÇÒ »õ·Î¿î Á¤º¸°¡ ¾ø´Ù. Ŭ¶óÀ̾ðÆ®°¡ »ç¿ëÀÚ ¿¡ÀÌÀü Æ®ÀÌ¸é ¿ä±¸¸¦ ¹ß¼ÛÇϵµ·Ï ÇÑ ¹®¼­ ³»¿ëÀ» º¯°æÇؼ­´Â ¾È µÈ´Ù. [Page 55] ÀÌ ÀÀ´äÀº ÁÖ·Î »ç¿ëÀÚ ¿¡ÀÌÀüÆ®ÀÇ ¹®¼­ ³»¿ë¿¡ ´ëÇÑ º¯È­¸¦ ÃÊ·¡ÇÏÁö ¾Ê°í 󸮸¦ À§ÇÑ ÀÔ·Â À» ½ÇÇàÇϵµ·Ï Çϱâ À§ÇØ »ç¿ëÇÑ´Ù. ÀÀ´äÀº Entity-Header ÇüÅÂÀÇ »õ·Î¿î ¸ÞŸ Á¤º¸¸¦ Æ÷ÇÔÇÑ´Ù. ÀÌ Á¤º¸´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ®ÀÇ ÇöÀç ¹®¼­¿¡ Àû¿ëÇØ¾ß ÇÑ´Ù. 204 ÀÀ´äÀº Message-Body¸¦ Æ÷ÇÔÇؼ­´Â ¾ÈµÇ¸ç Ç×»ó Çì´õ ÇÊµå ´ÙÀ½ÀÇ Ã¹ ºó ¶óÀÎÀ¸·Î Á¾·á µÈ´Ù. 10.2.6 205 Reset Content(³»¿ëÀ» Áö¿ò). ¼­¹ö°¡ ¿ä±¸¸¦ ¿ÏÀüÈ÷ ó¸®ÇÏ¿´À¸¸ç »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â ¿ä±¸¸¦ ¹ß¼ÛÇϵµ·Ï ÇÑ ¹®¼­ÀÇ ³»¿ëÀ» Áö¿ö¾ß ÇÑ´Ù. ÀÌ ÀÀ´äÀº ÁÖ·Î »ç¿ëÀÚ ÀÔ·ÂÀ» ÅëÇÏ¿© 󸮸¦ À§ÇÑ ÀÔ·ÂÀÌ ¹ß»ýÇϵµ·Ï Çϱâ À§ ÇØ »ç¿ëÇÑ´Ù. ÀÌ ÀÀ´ä µÚ¿¡ ÀÔ·ÂÀ» ¼öÇàÇÑ ÆûÀ» Áö¿ö »ç¿ëÀÚ°¡ ´Ù¸¥ ÀÔ·Â ¿ä±¸¸¦ ½±°Ô ½ÃÀÛÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. ÀÌ ÀÀ´äÀº ¿£ÅÍƼ¸¦ Æ÷ÇÔÇؼ­´Â ¾È µÈ´Ù. 10.2.7 206 Partial Content(ºÎºÐÀû ³»¿ë). ¼­¹ö°¡ ÀÚ¿ø¿¡ ´ëÇÑ ºÎºÐÀû GET ¿ä±¸¸¦ ¿Ï·áÇÏ¿´´Ù. ÀÌ ¿ä±¸´Â ¹Ýµå½Ã ¿øÇÏ´Â ¿µ¿ªÀ» Ç¥½ÃÇÏ ´Â Range Çì´õ Çʵå(14.36 Àý)¸¦ Æ÷ÇÔÇØ¾ß ÇÑ´Ù. ÀÀ´äÀº ÀÌ ÀÀ´ä¿¡ Æ÷ÇÔµÈ ¿µ¿ªÀ» Ç¥½ÃÇÏ´Â Content-Range Çì´õ Çʵå(14.17 Àý)³ª °¢ ÆÄÆ®ÀÇ Content-Range Çʵ带 Æ÷ÇÔÇÏ´Â multipart/byteranges Content-TypeÀ» Æ÷ÇÔÇØ¾ß ÇÑ´Ù. multipart/byteranges¸¦ »ç¿ëÇÏÁö ¾Ê¾ÒÀ¸¸é ÀÀ ´äÀÇContent-Length Çì´õ Çʵå´Â Message-Body·Î Àü¼ÛµÈ OCTETÀÇ ½ÇÁ¦ ¼ýÀÚ¿Í Á¤È®ÇÏ°Ô ÀÏ Ä¡ÇØ¾ß ÇÑ´Ù. Range ¹× Content-Range Çì´õ¸¦ Áö¿øÇÏÁö ¾Ê´Â ij½Ã´Â 206(Partial Content) ÀÀ´äÀ» ij½ÃÇؼ­´Â ¾È µÈ´Ù. 10.3 (¹æÇâÀ» Àç¼³Á¤ÇÏ´Â 3xx) ÀÌ »óÅ ÄÚµå Ŭ·¡½º´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ ¿ä±¸¸¦ ¿ÏÀüÈ÷ ó¸®Çϱâ À§Çؼ­´Â Ãß°¡ÀûÀΠ󸮰¡ ÇÊ¿äÇÏ´Ù´Â °ÍÀ» Ç¥½ÃÇÑ´Ù. ¿ä±¸µÇ´Â 󸮴 µÎ ¹ø° ¿ä±¸¿¡ »ç¿ëµÈ method°¡ GET ¶Ç´Â HEADÀÏ °æ¿ì¿¡¸¸ »ç¿ëÀÚ¿ÍÀÇ »óÈ£ÀÛ¿ë ¾øÀ̵µ ¼öÇàµÉ ¼ö ÀÖ´Ù. »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â ÀÌ·¯ÇÑ ¹æÇâ Àç¼³Á¤ÀÌ ¹«ÇÑ ·çÇÁ¸¦ Ç¥½ÃÇÏ´Â °ÍÀ̱⠶§¹®¿¡ ´Ù¼¸ ¹ø ÀÌ»ó ÀÚµ¿ÀûÀ¸·Î ¿ä±¸ ¹æÇâ Àç¼³ Á¤À» Çؼ­´Â ¾È µÈ´Ù. [Page 56] 10.3.1 300 Multiple Choices (º¹¼ö ¼±ÅÃ) ¿ä±¸µÈ ÀÚ¿øÀÌ °¢ÀÚ ÀڽŠƯÀ¯ÀÇ À§Ä¡¸¦ °¡Áö°í Àִ ǥÇö ¼¼Æ® ÁßÀÇ Çϳª¿Í ´ëÀÀµÇ¸ç »ç¿ëÀÚ (¶Ç´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ®)°¡ ¼±È£Çϴ ǥÇö ¹æ½ÄÀ» ¼±ÅÃÇÏ°í ¿ä±¸¸¦ ÇØ´ç À§Ä¡·Î Àç¼³Á¤ÇÒ ¼ö ÀÖµµ·Ï ¿¡ÀÌÀüÆ®°¡ ÁÖµµÇÏ´Â(agent-driven) Çù»ó Á¤º¸°¡ Á¦°øµÈ´Ù. HEAD ¿ä±¸°¡ ¾Æ´Ñ ÀÌ»ó ÀÀ´äÀº »ç¿ëÀÚ ¶Ç´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ °¡Àå ÀûÇÕÇÑ °ÍÀ» ¼±ÅÃÇÒ ¼ö ÀÖ´Â ÀÚ¿ø Ư¡ ¹× À§ÀÇ ¸ñ·ÏÀ» Æ÷ÇÔÇÑ ¿£ÅÍƼ¸¦ Æ÷ÇÔÇÑ´Ù. ¿£ÅÍƼ Æ÷¸ËÀº Content-Type Çì´õ Çʵ尡 ¼³Á¤ÇÑ media type¿¡ ÀÇÇØ ¸í½ÃµÈ´Ù. »ç¿ëÀÚ ¿¡ÀÌÀüÆ®ÀÇ Æ÷¸Ë ¹× ¼º´É¿¡ µû¶ó °¡Àå Àû ÇÕÇÑ ¼±ÅÃÀ» °áÁ¤ÇÏ´Â °ÍÀº ÀÚµ¿À¸·Î ¼öÇàµÉ ¼ö ÀÖ´Ù. ±×·¯³ª ÀÌ ±Ô°ÝÀº ÀÌ·¯ÇÑ ÀÚµ¿ ¼±ÅÃÀÇ Ç¥ÁØ¿¡ ´ëÇÏ¿© ¾Æ¹«·± ±ÔÁ¤µµ ÇÏÁö ¾Ê´Â´Ù. ¼­¹ö°¡ ¼±È£Çϴ ǥ½Ã ¹æ¹ýÀ» °¡Áö°í ÀÖÀ¸¸é Location Çʵ忡 ÇØ´ç Ç¥½Ã ¹æ¹ý¿¡ ´ëÇÑ »ó¼¼ÇÑ URLÀ» Æ÷ÇÔÇØ¾ß ÇÑ´Ù. »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â Location ÇÊµå °ªÀ» ÀÌ¿ëÇÏ¿© ÀÚµ¿À¸·Î ¹æÇâÀ» Àç ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. ÀÌ ÀÀ´äÀº º°µµÀÇ Ç¥½Ã°¡ ¾ø´Â ÇÑ Ä³½ÃÇÒ ¼ö ÀÖ´Ù. 10.3.2 301 301 Moved Permanently (¿µ±¸ À̵¿) ¿ä±¸µÈ ÀÚ¿ø¿¡ »õ·Î¿î ¿µ±¸ URI°¡ ÇÒ´çµÇ¾úÀ¸¸ç ÇâÈÄ ÀÌ ÀÚ¿ø¿¡ ´ëÇÑ ÂüÁ¶´Â ¸®ÅÏ µÈ URI Áß Çϳª¸¦ ÀÌ¿ëÇÏ¿© ÀÌ·ç¾îÁú ¼ö ÀÖ´Ù. ¸µÅ©¸¦ ÆíÁýÇÒ ¼ö ÀÖ´Â ´É·ÂÀÌ Àִ Ŭ¶óÀ̾ðÆ®´Â °¡ ´ÉÇÏ´Ù¸é Request-URI ¿¡ ´ëÇÑ ÂüÁ¶¸¦ ¼­¹ö°¡ ¸®ÅÏÇÑ Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ »õ·Î¿î Âü°íó·Î ÀÚµ¿ÀûÀ¸·Î À縵ũ½ÃÄÑ¾ß ÇÑ´Ù. ´Ù¸£°Ô Ç¥½ÃµÇ¾î ÀÖÁö ¾ÊÀ¸¸é ÀÌ ÀÀ´äÀº ij½ÃÇÒ ¼ö ÀÖ´Ù. »õ·Î¿î URI°¡ À§Ä¡À̸é ÇØ´ç URLÀº ÀÀ´äÀÇLocation Çʵ尡 ºÎ¿©ÇØ¾ß ÇÑ´Ù. ¿ä±¸ method°¡ HEAD°¡ ¾Æ´Ï¸é ÀÀ´äÀÇ ¿£ÅÍƼ´Â »õ·Î¿î URI·ÎÀÇ ÇÏÀÌÆÛ¸µÅ©°¡ Ç¥½ÃµÈ ªÀº ÇÏÀÌÆÛÅؽºÆ® ÁÖ¼®À» Æ÷ÇÔÇÏ°í ÀÖ¾î¾ß ÇÑ´Ù. GET ¶Ç´Â HEAD ÀÌ¿ÜÀÇ ¿ä±¸¿¡ ´ëÇÑ ÀÀ´ä¿¡ 301 »óÅ Äڵ尡 Á¢¼öµÇ¸é »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â »ç¿ëÀÚ°¡ È®ÀÎÇÏÁö ¾Ê´Â ÇÑ ¿ä±¸¸¦ ¹ßÇàÇÑ Á¶°ÇÀ» º¯°æÇÒ ¼öµµ Àֱ⠶§¹®¿¡ ÀÚµ¿ÀûÀ¸·Î ¿ä±¸ ÀÇ ¹æÇâÀ» Àç¼³Á¤Çؼ­´Â ¾È µÈ´Ù. ÁÖÀÇ : 301 »óÅ Äڵ带 ¼ö½ÅÇÑ ÈÄ ÀÚµ¿ÀûÀ¸·Î POST ¿ä±¸ÀÇ ¹æÇâÀ» Àç¼³Á¤ÇÒ ¶§ ±âÁ¸ÀÇ ¸î ¸î HTTP/1.0 »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â ½Ç¼ö·Î POST ¿ä±¸¸¦ GET ¿ä±¸·Î º¯°æÇÑ´Ù. [Page 57] 10.3.3 302 Moved Temporarily(Àӽà À̵¿) ¿ä±¸µÈ ÀÚ¿øÀÌ º°µµÀÇ URI¿¡ Àӽ÷Πº¸°üµÇ¾î ÀÖ´Ù. ¹æÇâ Àç¼³Á¤Àº Á¾Á¾ º¯°æµÉ ¼ö Àֱ⠶§¹® ¿¡ Ŭ¶óÀ̾ðÆ®´Â ÇâÈÄ ¿ä±¸¸¦ À§Çؼ­ °è¼ÓÇؼ­ Request-URI¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. ÀÌ ÀÀ´äÀº Cache- Control ¶Ç´Â Expires Çì´õ Çʵ尡 Ç¥½ÃÇÒ °æ¿ì¿¡¸¸ ij½ÃÇÒ ¼ö ÀÖ´Ù. »õ·Î¿î URI°¡ À§Ä¡À̸é ÇØ´ç URLÀº ÀÀ´äÀÇLocation Çʵ尡 ºÎ¿©ÇØ¾ß ÇÑ´Ù. ¿ä±¸ method°¡ HEAD°¡ ¾Æ´Ï¸é ÀÀ´äÀÇ ¿£ÅÍƼ´Â »õ·Î¿î URI·ÎÀÇ ÇÏÀÌÆÛ¸µÅ©°¡ Ç¥½ÃµÈ ªÀº ÇÏÀÌÆÛÅؽºÆ® ÁÖ¼®À» Æ÷ÇÔÇÏ°í ÀÖ¾î¾ß ÇÑ´Ù. GET ¶Ç´Â HEAD ÀÌ¿ÜÀÇ ¿ä±¸¿¡ ´ëÇÑ ÀÀ´ä¿¡ 301 »óÅ Äڵ尡 Á¢¼öµÇ¸é »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â »ç¿ëÀÚ°¡ È®ÀÎÇÏÁö ¾Ê´Â ÇÑ ¿ä±¸¸¦ ¹ßÇàÇÑ Á¶°ÇÀ» º¯°æÇÒ ¼öµµ Àֱ⠶§¹®¿¡ ÀÚµ¿ÀûÀ¸·Î ¿ä±¸ ÀÇ ¹æÇâÀ» Àç¼³Á¤Çؼ­´Â ¾È µÈ´Ù. ÁÖÀÇ : 301 »óÅ Äڵ带 ¼ö½ÅÇÑ ÈÄ ÀÚµ¿ÀûÀ¸·Î POST ¿ä±¸ÀÇ ¹æÇâÀ» Àç¼³Á¤ÇÒ ¶§ ±âÁ¸ÀÇ ¸î ¸î HTTP/1.0 »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â ½Ç¼ö·Î POST ¿ä±¸¸¦ GET ¿ä±¸·Î º¯°æÇÑ´Ù. 10.3.4 303 See Other(´Ù¸¥ °ÍÀ» ÂüÁ¶) ¿ä±¸µÈ ÀÚ¿øÀÌ º°µµÀÇ URI¿¡ Àӽ÷Πº¸°üµÇ¾î ÀÖÀ¸¸ç ÇØ´ç ÀÚ¿ø¿¡¼­ GET method¸¦ »ç¿ëÇÏ¿© Á¶È¸ÇØ¾ß ÇÑ´Ù. ÀÌ method´Â ÁÖ·Î POST°¡ È°¼ºÈ­ÇÑ ½ºÅ©¸³Æ®ÀÇ »êÃâ¹°À» »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ ¼±ÅÃµÈ ÀÚ¿øÀ¸·Î ¹æÇâÀ» Àç¼³Á¤ÇÒ ¼ö ÀÖµµ·Ï Çϱâ À§ÇØ »ç¿ëµÈ´Ù. »õ·Î¿î URI´Â óÀ½ ¿ä±¸µÈ ÀÚ¿ø¿¡ ´ëÇÑ ´ëü Âü°íó°¡ ¾Æ´Ï´Ù. 303 ÀÀ´äÀº ij½ÃÇÒ ¼ö ¾øÀ¸³ª µÎ ¹ø°(Àç¼³Á¤µÈ) ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀº ij½ÃÇÒ ¼ö ÀÖ´Ù. GET ¶Ç´Â HEAD ÀÌ¿ÜÀÇ ¿ä±¸¿¡ ´ëÇÑ ÀÀ´ä¿¡ 301 »óÅ Äڵ尡 Á¢¼öµÇ¸é »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â »ç¿ëÀÚ°¡ È®ÀÎÇÏÁö ¾Ê´Â ÇÑ ¿ä±¸¸¦ ¹ßÇàÇÑ Á¶°ÇÀ» º¯°æÇÒ ¼öµµ Àֱ⠶§¹®¿¡ ÀÚµ¿ÀûÀ¸·Î ¿ä±¸ ÀÇ ¹æÇâÀ» Àç¼³Á¤Çؼ­´Â ¾È µÈ´Ù. 10.3.5 304 Not Modified(º¯°æµÇÁö ¾Ê¾ÒÀ½) Ŭ¶óÀ̾ðÆ®°¡ Á¶°ÇÀû GET ¿ä±¸¸¦ ½ÇÇàÇß°í Á¢±ÙÇÒ ¼ö ÀÖÀ¸³ª ¹®¼­°¡ º¯°æµÇÁö ¾Ê¾ÒÀ¸¸é ¼­¹ö ´Â ÀÌ »óÅ ÄÚµå·Î ÀÀ´äÇØ¾ß ÇÑ´Ù. ÀÌ ÀÀ´äÀº Message-Body¸¦ Æ÷ÇÔÇؼ­´Â ¾È µÈ´Ù. [Page 58] ÀÀ´äÀº ´ÙÀ½ÀÇ Çì´õ Çʵ带 Æ÷ÇÔÇÏ°í ÀÖ¾î¾ß ÇÑ´Ù. ? ³¯Â¥ ? ETag ¹×/¶Ç´Â Content-Location, µ¿ÀÏÇÑ ¿ä±¸¿¡ ´ëÇÑ 200 ÀÀ´ä ¼Ó¿¡ Çì´õ°¡ ¹ß¼ÛµÇ¾úÀ» °æ ¿ì ? Expires, Cache-Control, ¹×/¶Ç´Â Vary, µ¿ÀÏÇÑ º¯ÀÌ¿¡ ´ëÇÑ ÀÌÀü ÀÀ´ä ¼Ó¿¡ ¹ß¼ÛµÈ field- value°¡ »óÀÌÇÒ °æ¿ì Á¶°ÇÀû GETÀÌ °­ÇÑ Ä³½Ã °ËÁõÀÚ(13.3.3 Àý ÂüÁ¶)¸¦ »ç¿ëÇß´Ù¸é ÀÀ´äÀº ´Ù¸¥ Entity-Header¸¦ Æ÷ÇÔÇؼ­´Â ¾È µÈ´Ù. ±×·¸Áö ¾ÊÀ¸¸é(Á¶°ÇÀû GETÀÌ ¾àÇÑ Ä³½Ã °ËÁõÀÚ¸¦ »ç¿ëÇÒ ¶§) ÀÀ´äÀº Entity-HeaderÀ» Æ÷ÇÔÇؼ­´Â ¾È µÈ´Ù. ÀÌ·¸°Ô ÇÏ¿© ij½Ã µÈ Entity-Body°ú °»½ÅµÈ Çì´õ »çÀÌÀÇ ºÒÀÏÄ¡¸¦ ¹æÁöÇÒ ¼ö ÀÖ´Ù. 304 ÀÀ´äÀÌ ÇöÀç ij½Ã µÇÁö ¾ÊÀº ¿£ÅÍƼ¸¦ Ç¥½ÃÇÒ ¶§ ij½Ã´Â ÀÌ ÀÀ´äÀ» ¹«½ÃÇÏ°í Á¶°Ç ¾øÀÌ ¿ä±¸¸¦ ¹Ýº¹ÇØ¾ß ÇÑ´Ù. ij½Ã°¡ ¼ö½ÅÇÑ 304 ÀÀ´äÀ» ij½Ã ¿£Æ®¸®ÀÇ °»½Å¿¡ »ç¿ëÇÑ´Ù¸é ij½Ã´Â ÀÀ´äÀÌ °¡Áö°í ÀÖ´Â »õ·Î ¿î ÇÊµå °ªÀ» ¹Ý¿µÇϱâ À§ÇØ ¿£Æ®¸®¸¦ ¹Ýµå½Ã °»½ÅÇØ¾ß ÇÑ´Ù. 304 ÀÀ´äÀº Message-Body¸¦ Æ÷ÇÔÇؼ­´Â ¾ÈµÇ¹Ç·Î Ç×»ó Çì´õ ÇÊµå ´ÙÀ½ÀÇ Ã¹ °ø¹é ¶óÀÎÀ¸·Î Á¾·áµÇ¾î¾ß ÇÑ´Ù. 10.3.6 305 Use Proxy(ÇÁ¶ô½Ã¸¦ »ç¿ëÇÒ °Í) ¿ä±¸µÈ ÀÚ¿øÀ» Location Çʵ忡 ¸í½ÃµÈ ÇÁ¶ô½Ã¸¦ ÅëÇÏ¿© Á¢±ÙÇؾ߸¸ ÇÑ´Ù. Location Çʵ尡 ÇÁ ¶ô½ÃÀÇ URLÀ» Á¦°øÇÑ´Ù. ¼ö½ÅÃøÀº ÇÁ¶ô½Ã¸¦ ÅëÇÑ ¿ä±¸¸¦ ¹Ýº¹ÇÒ °ÍÀ¸·Î ±â´ëµÈ´Ù. 10.4 Client Error 4xx (Ŭ¶óÀ̾ðÆ® ¿¡·¯ 4xx) »óÅ ÄÚµåÀÇ 4xx Ŭ·¡½º´Â Ŭ¶óÀ̾ðÆ®°¡ ¿¡·¯¸¦ ¹ß»ýÇÑ °Íó·³ º¸ÀÏ °æ¿ì¿¡ »ç¿ëµÈ´Ù. HEAD ¿ä±¸¿¡ ÀÀ´äÇÏ´Â °æ¿ì¸¦ Á¦¿ÜÇÏ°í´Â ¼­¹ö´Â ÀÓ½ÃÀûÀÌ°Ç ¿µ±¸ÀûÀÌ°Ç ¿¡·¯ »óȲ¿¡ ´ëÇÑ ¼³¸íÀ» Æ÷ÇÔÇÑ ¿£ÅÍƼ¸¦ Æ÷ÇÔÇØ¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ »óÅ ÄÚµå´Â ¸ðµç ¿ä±¸ method¿¡ Àû¿ëÇÒ ¼ö ÀÖ´Ù. »ç ¿ëÀÚ ¿¡ÀÌÀüÆ®´Â »ç¿ëÀÚ¿¡°Ô Æ÷ÇÔµÈ ¿£ÅÍƼ¸¦ Ç¥½ÃÇØ¾ß ÇÑ´Ù. ÁÖÀÇ : Ŭ¶óÀ̾ðÆ®°¡ µ¥ÀÌÅ͸¦ ¹ß¼ÛÇÑ´Ù¸é TCP¸¦ »ç¿ëÇÏ´Â ¼­¹ö ±¸Çö ¹æ½ÄÀº ¼­¹ö°¡ ÀÔ·Â Á¢¼ÓÀ» Á¾·áÇϱâ Àü¿¡ ÀÀ´äÀ» Æ÷ÇÔÇÏ°í ÀÖ´Â ÆÐŶ Á¢¼ö¸¦ È®ÀÎÇÒ ¼ö ÀÖµµ·Ï ÁÖÀÇÇØ¾ß ÇÑ´Ù. Ŭ¶óÀ̾ðÆ®°¡ Á¢¼ÓÀÌ Á¾·áµÈ ÈÄ¿¡µµ °è¼ÓÇؼ­ µ¥ÀÌÅ͸¦ Àü¼ÛÇÑ´Ù¸é ¼­¹öÀÇ TCP ½ºÅÃÀº ¸® ¼Â ÆÐŶÀ» Ŭ¶óÀ̾ðÆ®¿¡°Ô ¹ß¼ÛÇÒ °ÍÀÌ´Ù. [Page 59] ÀÌ ¸®¼Â ÆÐŶÀº HTTP ¾ÖÇø®ÄÉÀ̼ÇÀÌ Àаųª Çؼ®Çϱâ Àü¿¡ Ŭ¶óÀ̾ðÆ®°¡ È®ÀÎÇÑ ÀÔ·Â ¹ö ÆÛ¸¦ Áö¿î´Ù. 10.4.1 400 Bad Request(À߸øµÈ ¿ä±¸) À߸øµÈ Çü½Ä ¶§¹®¿¡ ¼­¹ö°¡ ¿ä±¸¸¦ ÀÌÇØÇÒ ¼ö ¾ø´Ù. Ŭ¶óÀ̾ðÆ®´Â º¯°æ ¾øÀÌ ¿ä±¸¸¦ ¹Ýº¹Çؼ­ ´Â ¾È µÈ´Ù. 10.4.2 401 Unauthorized (ÀÎÁõµÇÁö ¾Ê¾ÒÀ½) ÀÀ´äÀÌ »ç¿ëÀÚ ÀÎÁõÀ» ¿ä±¸ÇÑ´Ù. ÀÌ ÀÀ´äÀº ¿ä±¸µÈ ÀÚ¿ø¿¡ Àû¿ëÇÒ ¼ö ÀÖ´Â ¼³¸í ¿ä±¸ (challenge)¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Â WWW-Authenticate Çì´õ Çʵå(14.46 Àý)¸¦ Æ÷ÇÔÇÏ°í ÀÖ¾î¾ß ÇÑ´Ù. Ŭ¶óÀ̾ðÆ®´Â ÀûÀýÇÑ Authorization Çì´õ Çʵå(14.8 Àý)¸¦ °¡Áö°í ¿ä±¸¸¦ ¹Ýº¹ÇÒ ¼ö ÀÖ´Ù. ¿ä±¸ °¡ ¹ú½á Authorization Áõ¸í¼­¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù¸é 401 ÀÀ´äÀº ÇØ´ç Áõ¸í¼­¿¡ ´ëÇÑ ÀÎÁõÀÌ °ÅÀý µÇ¾úÀ½À» Ç¥½ÃÇÑ´Ù. 401 ÀÀ´äÀÌ ÀÌÀü ÀÀ´ä°ú µ¿ÀÏÇÑ ¼³¸í ¿ä±¸¸¦ Æ÷ÇÔÇÏ°í ÀÖ°í »ç¿ëÀÚ ¿¡ÀÌÀü Æ®°¡ ÇÑ ¹ø ÀÌ»ó ÀÎÁõ ȹµæÀ» ½ÃµµÇß´Ù¸é ÇØ´ç ¿£ÅÍƼ°¡ °ü·ÃµÈ Áø´Ü Á¤º¸¸¦ Æ÷ÇÔÇÏ°í Àֱ⠶§¹®¿¡ »ç¿ëÀÚ¿¡°Ô ÀÀ´ä¿¡ Ç¥½ÃµÈ ¿£ÅÍƼ¸¦ Ç¥½ÃÇØÁÖ¾ß ÇÑ´Ù. HTTP Á¢¼Ó ÀÎÁõÀº 11 Àå¿¡ ¼³¸í µÇ¾î ÀÖ´Ù. ÀÌ ÄÚµå´Â ÇâÈÄ »ç¿ëÀ» À§ÇØ ¿¹¾àµÇ¾ú´Ù. 10.4.4 403 Forbidden(±ÝÁöµÇ¾úÀ½) ¼­¹ö°¡ ¿ä±¸¸¦ ÀÌÇØÇßÀ¸³ª ¿Ï·áÇÏ´Â °ÍÀ» °ÅÀýÇÏ°í ÀÖ´Ù. ÀÎÁõÀº Àû¿ëµÇÁö ¾ÊÀ¸¸ç ¿ä±¸¸¦ ¹Ý º¹µÉ ¼ö ¾ø´Ù. ¿ä±¸ method°¡ HEAD°¡ ¾Æ´Ï°í ¼­¹ö°¡ ¿Ö ¿ä±¸°¡ ¿Ï·áµÇ¾ú´ÂÁö ¾Ë¸®°í ½Í´Ù¸é ¿£ÅÍƼ ¾È¿¡ °ÅÀýÇÑ ÀÌÀ¯¸¦ ±â·ÏÇØ¾ß ÇÑ´Ù. ÀÌ »óÅ ÄÚµå´Â ¼­¹ö°¡ ¿ä±¸°¡ °ÅºÎ »çÀ¯¸¦ ¹àÈ÷ ±â ¿øÇÏÁö ¾ÊÀ» ¶§³ª ´Ù¸¥ ÀÀ´äÀ» Àû¿ëÇÒ ¼ö ¾øÀ» ¶§ ÀϹÝÀûÀ¸·Î »ç¿ëµÈ´Ù. 10.4.5 404 Not Found(ãÀ» ¼ö ¾øÀ½) ¼­¹ö°¡ Request-URI¿Í ÀÏÄ¡ÇÏ´Â °ÍÀ» ¾Æ¹«°Íµµ ¹ß°ßÇÏÁö ¸øÇß´Ù. ÀÌ·¯ÇÑ »óÅ°¡ ÀáÁ¤ÀûÀÎÁö ¿µ±¸ÀûÀÎÁö °üÇÑ ¾Æ¹«·± Ç¥½Ãµµ ÁÖ¾îÁöÁö ¾È´Â´Ù. [Page 60] ¼­¹ö°¡ ÀÌ Á¤º¸¸¦ Ŭ¶óÀ̾ðÆ®¿¡°Ô ¾Ë¸®°í ½ÍÁö ¾ÊÀ» °æ¿ì »óÅ ÄÚµå 403(Forbidden)À» ´ë½Å »ç ¿ëÇÒ ¼ö ÀÖ´Ù. ³»ºÎÀûÀ¸·Î ȯ°æÀ» ¼³Á¤ÇÒ ¼ö ÀÖ´Â ¸ÞÄ¿´ÏÁòÀ» ÅëÇÏ¿© ÀÌÀüÀÇ ÀÚ¿øÀ» ¿µ±¸ÀûÀ¸ ·Î »ç¿ëÇÒ ¼ö ¾øÀ¸¸ç Àü¼Û ÁÖ¼Ò°¡ ¾ø´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖÀ¸¸é 410(Gone) »óÅ Äڵ带 »ç¿ëÇÑ´Ù. 10.4.6 405 Method Not Allowed(Method¸¦ »ç¿ëÇÒ ¼ö ¾øÀ½) Request-Line¿¡ ¸í½ÃµÈ method¸¦ Request-URI·Î È®ÀÎÇÒ ¼ö ÀÖ´Â ÀÚ¿ø¿¡¼­ »ç¿ëÇÒ ¼ö ¾ø´Ù. ÀÀ ´äÀº ¿ä±¸µÈ ÀÚ¿ø¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â methodÀÇ ¸ñ·ÏÀ» Æ÷ÇÔÇÑ Allow Çì´õ¸¦ Æ÷ÇÔÇØ¾ß ÇÑ´Ù. 10.4.7 406 Not Acceptable(Á¢¼öÇÒ ¼ö ¾øÀ½) ¿ä±¸°¡ È®ÀÎÇÑ ÀÚ¿øÀÌ ¿ä±¸ ¸Þ½ÃÁö¿Í ÇÔ²² ¹ß¼ÛµÈ Accept Çì´õ¿¡ ÀÇÇؼ­ Á¢¼öÇÒ ¼ö ¾ø´Â ³»¿ë Ư¡À» °¡Áö°í ÀÖ´Â ÀÀ´ä ¿£ÅÍƼ¸¸À» »ý¼ºÇÒ ¼ö ÀÖ´Ù. HEAD ¿ä±¸°¡ ¾Æ´Ñ ÀÌ»ó ÀÀ´äÀº »ç¿ëÀÚ ¶Ç´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ °¡Àå ÀûÇÕÇÑ °ÍÀ» ¼±ÅÃÇÒ ¼ö ÀÖ´Â ÀÚ¿ø Ư¡ ¹× À§ÀÇ ¸ñ·ÏÀ» Æ÷ÇÔÇÑ ¿£ÅÍƼ¸¦ Æ÷ÇÔÇÑ´Ù. ¿£ÅÍƼ Æ÷¸ËÀº Content-Type Çì´õ Çʵ尡 ¼³Á¤ÇÑ media type¿¡ ÀÇÇØ ¸í½ÃµÈ´Ù. »ç¿ëÀÚ ¿¡ÀÌÀüÆ®ÀÇ Æ÷¸Ë ¹× ¼º´É¿¡ µû¶ó °¡Àå Àû ÇÕÇÑ ¼±ÅÃÀ» °áÁ¤ÇÏ´Â °ÍÀº ÀÚµ¿À¸·Î ¼öÇàµÉ ¼ö ÀÖ´Ù. ±×·¯³ª ÀÌ ±Ô°ÝÀº ±×·¯ÇÑ ÀÚµ¿ ¼±ÅÃÀÇ Ç¥ÁØ¿¡ ´ëÇÏ¿© ¾Æ¹«·± ±ÔÁ¤µµ ÇÏÁö ¾Ê´Â´Ù. ÁÖÀÇ : HTTP/1.1 ¼­¹ö´Â ¿ä±¸ ¸Þ½ÃÁö¿Í ÇÔ²² ¹ß¼ÛµÈ Accept Çì´õ¿¡ ÀÇÇؼ­ Á¢¼öÇÒ ¼ö ¾ø´Â ÀÀ´äÀ» ¸®ÅÏÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. ¾î¶² °æ¿ì¿£ ÀÌ°ÍÀÌ 406 ÀÀ´äÀ» ¹ß¼ÛÇÏ´Â °Íº¸´Ù ÁÁÀ» ¼öµµ ÀÖ´Ù. »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â µµÂøÇÏ´Â ÀÀ´äÀÇ Çì´õ¸¦ °Ë»çÇÏ¿© ±×°ÍÀÇ Á¢¼ö ¿©ºÎ¸¦ °áÁ¤Çϵµ·Ï ÃßõÇÑ´Ù. ÀÀ´äÀ» Á¢¼öÇÒ ¼ö ¾øÀ» ¶§ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â ÀáÁ¤ÀûÀ¸·Î ´õ ÀÌ»óÀÇ µ¥ÀÌÅ͸¦ ¼ö ½ÅÇÏÁö ¸»¾Æ¾ß Çϸç Ãß°¡ ÇൿÀ» ÃëÇÒ °ÍÀÎÁö »ç¿ëÀÚ¿¡°Ô ÁúÀÇÇÑ´Ù. 10.4.8 407 Proxy Authentication Required(ÇÁ¶ô½Ã ÀÎÁõ ÇÊ¿ä) ÀÌ ÄÚµå´Â 401(Unauthorized)°ú À¯»çÇÏÁö¸¸ Ŭ¶óÀ̾ðÆ®´Â ¸ÕÀú ÇÁ¶ô½Ã¿¡¼­ ÀÚ±â ÀÚ½ÅÀ» ÀÎÁõÇØ ¾ß ÇÑ´Ù´Â °ÍÀ» Ç¥½ÃÇÑ´Ù. ÇÁ¶ô½Ã´Â ¿ä±¸µÈ ÀÚ¿øÀÇ ÇÁ¶ô½Ã¿¡ Àû¿ëÇÒ ¼ö ÀÖ´Â ¼³¸í ¿ä±¸¸¦ Æ÷ ÇÔÇÏ´Â Proxy-Authenticate Çì´õ Çʵå(14.33 Àý)¸¦ ¸®ÅÏÇØ¾ß ÇÑ´Ù. Ŭ¶óÀ̾ðÆ®´Â ÀûÀýÇÑ Proxy- Authorization Çì´õ Çʵå(14.34 Àý)¿Í ÇÔ²² ¿ä±¸¸¦ ¹Ýº¹ÇØ¾ß ÇÑ´Ù. HTTP Á¢¼Ó ÀÎÁõ ȹµæ¿¡ ´ëÇØ ¼­´Â 11 Àå¿¡ ¼³¸íµÇ¾î ÀÖ´Ù. [Page 61] 10.4.9 408 Request Timeout(¿ä±¸ ½Ã°£ ÃÊ°ú) Ŭ¶óÀ̾ðÆ®°¡ ¼­¹ö°¡ ±â´Ù¸®µµ·Ï ÁغñÇÑ ½Ã°£ ³»¿¡ ¿ä±¸¸¦ ¸¸µé¾î ³¾ ¼ö ¾ø´Ù. Ŭ¶óÀ̾ðÆ®´Â ³ªÁß¿¡ º¯°æ ¾øÀÌ ¿ä±¸¸¦ ¹Ýº¹ÇÒ ¼ö ÀÖ´Ù. 10.4.10 409 Conflict(Ãæµ¹) ÀÚ¿øÀÇ ÇöÀç »óÅ¿ÍÀÇ Ãæµ¹ ¶§¹®¿¡ ¿ä±¸¸¦ ¿Ï·áÇÒ ¼ö ¾ø´Ù. ÀÌ ÄÚµå´Â »ç¿ëÀÚ°¡ Ãæµ¹À» ÇØ°á ÇÏ°í ¿ä±¸¸¦ ÀçÀü¼ÛÇÒ ¼ö ÀÖÀ» °ÍÀ¸·Î ±â´ëÇÒ ¼ö ÀÖ´Â »óȲ¿¡¼­¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÀ´ä º»¹® Àº »ç¿ëÀÚ°¡ Ãæµ¹ÀÇ ¿øÀÎÀ» ÀÎÁöÇÒ ¼ö ÀÖµµ·Ï ÃæºÐÇÑ Á¤º¸¸¦ Æ÷ÇÔÇØ¾ß ÇÑ´Ù. ÀÌ»óÀûÀ¸·Î´Â ÀÀ ´ä ¿£ÅÍƼ°¡ »ç¿ëÀÚ ¶Ç´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖÀ» Á¤µµÀÇ ÃæºÐÇÑ Á¤º¸¸¦ Æ÷ ÇÔÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ±×·¯³ª °¡´ÉÇÏÁö ¾ÊÀ» ¼öµµ ÀÖÀ¸¸ç Çʼö »çÇ×Àº ¾Æ´Ï´Ù. Ã浿Àº PUT ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î ¹ß»ýÇÒ °¡´É¼ºÀÌ ³ô´Ù. ¹öÀü °ü¸®¸¦ »ç¿ëÇÏ°í ÀÖ°í PUT ¿ä ±¸¸¦ ÇÏ´Â ¿£ÅÍƼ°¡ ÀÌÀü ¿ä±¸(Á¦ 3 ÀÚ)°¡ ÀÛ¼ºÇÑ ¿ä±¸¿Í Ãæµ¹µÇ´Â ÀÚ¿ø¿¡ ´ëÇÑ º¯°æ »çÇ×À» Æ÷ÇÔÇÏ°í ÀÖ´Ù¸é ¼­¹ö´Â 409 ÀÀ´äÀ» »ç¿ëÇÏ¿© ¿ä±¸¸¦ ¿Ï·áÇÒ ¼ö ¾øÀ½À» Ç¥½ÃÇØ¾ß ÇÑ´Ù. ÀÌ °æ ¿ì ÀÀ´ä ¿£ÅÍƼ´Â ÀÀ´ä Content-TypeÀÌ ±ÔÁ¤ÇÑ Çü½ÄÀ¸·Î µÎ ¹öÀü »çÀÌÀÇ Â÷ÀÌÁ¡ ¸ñ·ÏÀ» Æ÷ÇÔ ÇØ¾ß ÇÑ´Ù. 10.4.11 410 Gone (³»¿ë¹°ÀÌ »ç¶óÁ³À½) ¿ä±¸µÈ ÀÚ¿øÀÌ ¼­¹ö¿¡ ´õ ÀÌ»ó Á¸ÀçÇÏÁö ¾ÊÀ¸¸ç Àü¼Û ÁÖ¼Ò¸¦ ¾Ë ¼ö ¾ø´Ù. ÀÌ Á¶°ÇÀº ¿µ±¸ÀûÀÎ °ÍÀ¸·Î °£ÁÖÇØ¾ß ÇÑ´Ù. ¸µÅ©¸¦ ÆíÁýÇÒ ±â´ÉÀÌ Àִ Ŭ¶óÀ̾ðÆ®´Â »ç¿ëÀÚ ÀÎÁõ ÈÄÀÇ Request- URI¿¡ ´ëÇÑ Âü°í´Â »èÁ¦ÇØ¾ß ÇÑ´Ù. ¼­¹ö°¡ ±× Á¶°ÇÀÌ ¿µ±¸ÀûÀÎÁö ¿©ºÎ¸¦ ¾Ë ¼ö ¾ø°Å³ª °áÁ¤ ÇÒ ½Ã¼³ÀÌ ¾øÀ¸¸é »óÅ ÄÚµå 401(Unauthorized)À» ´ë½Å »ç¿ëÇØ¾ß ÇÑ´Ù. ´Ù¸£°Ô Ç¥½ÃµÇÁö ¾Ê´Â ÇÑ ÀÌ ÀÀ´äÀº ij½ÃÇÒ ¼ö ÀÖ´Ù. 410 ÀÀ´äÀº ÁÖ·Î ¼ö½ÅÃø¿¡°Ô ÀÚ¿øÀ» ÀǵµÀûÀ¸·Î »ç¿ëÇÒ ¼ö ¾ø°Ô ÇÏ¿´°í ¼­¹öÀÇ ¼ÒÀ¯ÁÖ°¡ ÇØ´ç ÀÚ¿ø¿¡ ´ëÇÑ ¿ø°Ý ¸µÅ©¸¦ Á¦°ÅÇÏ°íÀÚ ÇÑ´Ù´Â °ÍÀ» ¾Ë¸²À¸·Î½á À¥ À¯Áö ÀÛ¾÷À» Áö¿øÇϱâ À§ÇØ »ç¿ëµÈ´Ù. ÀÌ·¯ÇÑ ÀÏÀº Á¦ÇÑµÈ ½Ã°£, ¼±Àü¿ë ¼­ºñ½º ¹× ¼­¹öÀÇ »çÀÌÆ®¿¡¼­ ´õ ÀÌ»ó ÀÏÇÏÁö ¾Ê ´Â °³Àο¡°Ô ¼Ò¼ÓµÈ ÀÚ¿ø¿¡¼­ °øÅëÀûÀ¸·Î ¹ß»ýÇÒ ¼ö ÀÖ´Ù. ¿µ±¸ÀûÀ¸·Î »ç¿ëÇÒ ¼ö ¾ø´Â ¸ðµç ÀÚ¿øÀ» "»ç¶óÁø" °ÍÀ¸·Î Ç¥½ÃÇϰųª ƯÁ¤ ½Ã°£ µ¿¾È Ç¥½Ã¸¦ À¯ÁöÇÒ ÇÊ¿ä´Â ¾ø´Ù. - ÀÌ°ÍÀº ¼­ ¹ö ¼ÒÀ¯ÀÚÀÇ ÆÇ´Ü¿¡ ´Þ·Á ÀÖ´Ù. [Page 62] 10.4.12 411 Length Required(±æÀÌ°¡ ÇÊ¿äÇÔ) ¼­¹ö°¡ ±ÔÁ¤µÈ Content-Length ¾ø´Â ¿ä±¸ Á¢¼ö¸¦ °ÅºÎÇÏ¿´´Ù. ¿ä±¸ ¸Þ½ÃÁö ³»ÀÇ Message-Body ÀÇ ±æÀ̸¦ Æ÷ÇÔÇÏ´Â À¯È¿ÇÑ Content-Length Çì´õ Çʵ带 Ãß°¡ÇÑ´Ù¸é Ŭ¶óÀ̾ðÆ®´Â ¿ä±¸¸¦ ¹Ýº¹ ÇÒ ¼ö ÀÖ´Ù. 10.4.13 412 Precondition Failed(»çÀü Á¶°Ç ÃæÁ· ½ÇÆÐ) Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ Request-Header Çʵ忡 ±âÀÔµÈ »çÀü Á¶°ÇÀÌ ¼­¹ö¿¡¼­ Å×½ºÆ® ÇßÀ» ¶§ °Å ÁþÀ¸·Î Æò°¡µÇ¾ú´Ù. ÀÌ ÀÀ´ä ÄÚµå´Â Ŭ¶óÀ̾ðÆ®°¡ ÇöÀç ÀÚ¿øÀÇ ¸ÞŸ Á¤º¸¿¡ »çÀü Á¶°ÇÀ» ºÎ¿© ÇÒ ¼ö ÀÖ°Ô ÇÏ¿© ÀǵµÇÏÁö ¾Ê´Â ÀÚ¿ø¿¡ ¿ä±¸ method¸¦ Àû¿ëÇÏ´Â °ÍÀ» ¹æÁöÇÑ´Ù. 10.4.14 413 Request Entity Too Large(¿ä±¸ ¿£ÅÍƼ°¡ ³Ê¹« Å­) ¿ä±¸ ¿£ÅÍƼ°¡ ¼­¹ö°¡ ó¸®ÇÒ ¼ö Àְųª ó¸®ÇÏ·Á´Â °Íº¸´Ù Å©±â ¶§¹®¿¡ ¼­¹ö°¡ ¿ä±¸ 󸮸¦ °ÅºÎÇÏ¿´´Ù. ¼­¹ö´Â Ŭ¶óÀ̾ðÆ®°¡ °è¼ÓÀûÀ¸·Î ¿ä±¸ÇÏ´Â °ÍÀ» ¹æÁöÇϱâ À§ÇÏ¿© ¿¬°áÀ» Á¾·áÇÑ ´Ù. Á¶°ÇÀÌ ÀáÁ¤ÀûÀÌ¸é ¼­¹ö´Â Retry-After Çì´õ Çʵ带 Æ÷ÇÔÇÏ¿© Á¶°ÇÀÌ ÀáÁ¤ÀûÀÌ¸ç ¾ó¸¶ ÈÄ¿¡ Ŭ ¶óÀ̾ðÆ®°¡ Àç½ÃµµÇÒ °ÍÀÎÁö¸¦ Ç¥½ÃÇÑ´Ù. 10.4.15 414 Request-URI Too Long(Request -URI°¡ ³Ê¹« ±è) Request-URI°¡ ¼­¹ö°¡ Çؼ®ÇÒ ¼ö ÀÖ´Â °Íº¸´Ù Å©±â ¶§¹®¿¡ ¼­¹ö°¡ ¿ä±¸ 󸮸¦ °ÅºÎÇÏ¿´´Ù. ÀÌó·³ µå¹® Á¶°ÇÀº Ŭ¶óÀ̾ðÆ®°¡ ºÎÀûÀýÇÏ°Ô ÁúÀÇ Á¤º¸°¡ ±ä POST ¿ä±¸¸¦ GET ¿ä±¸·Î º¯È¯ ÇßÀ» ¶§, Ŭ¶óÀ̾ðÆ®°¡ ¹æÇâ Àç¼³Á¤ÀÇ URL "ºí·¢ Ȧ"·Î ºüÁ³À» ¶§(¹æÇâÀÌ Àç¼³Á¤µÈ URL Á¢µÎ »ç°¡ ÀÚ½ÅÀÇ Á¢¹Ì»ç¸¦ ÁöĪÇÒ ¶§), Request-URI¸¦ Àаųª Á¶ÀÛÇÏ´Â °íÁ¤-±æÀÌ ¹öÆÛ¸¦ »ç¿ëÇÏ´Â ¸î¸î ¼­¹ö¿¡ Á¸ÀçÇÏ´Â º¸¾ÈÀÇ ÇãÁ¡À» ÀÌ¿ëÇÏ·Á´Â Ŭ¶óÀ̾ðÆ®·ÎºÎÅÍ ¼­¹ö°¡ °ø°ÝÀ» ¹ÞÀ» ¶§¸¸ ¹ß»ýÇÏ´Â °Í °°´Ù. 10.4.16 415 Unsupported Media Type(Áö¿øµÇÁö ¾Ê´Â media type) ¿ä±¸ÀÇ ¿£ÅÍƼ°¡ ¿ä±¸ ¹ÞÀº methodÀÇ ÀÚ¿øÀÌ Áö¿øÇÏÁö ¾Ê´Â Æ÷¸ËÀ¸·Î ±¸¼ºµÇ¾î Àֱ⠶§¹®¿¡ ¿ä±¸ 󸮸¦ °ÅºÎÇÏ¿´´Ù. [Page 63] 10.5 Server Error 5xx(¼­¹ö ¿¡·¯ 5xx) ¼ýÀÚ "5"·Î ½ÃÀÛÇÏ´Â ÀÀ´ä »óÅ ÄÚµå´Â ¼­¹ö°¡ ¿¡·¯¸¦ ¹ß»ý½ÃÄ×À¸¸ç ¿ä±¸¸¦ ó¸®ÇÒ ´É·ÂÀÌ ¾ø À½À» ÀÎÁöÇÑ °æ¿ì¸¦ Ç¥½ÃÇÑ´Ù. HEAD ¿ä±¸¿¡ ÀÀ´äÇÏ´Â ¶§¸¦ Á¦¿ÜÇÏ°í´Â ¼­¹ö´Â ¿¡·¯ »óȲ¿¡ ´ëÇÑ ¼³¸í ¹× ¿¡·¯°¡ ÀáÁ¤ÀûÀÎÁö ¿µ±¸ÀûÀÎÁö¿¡ °üÇÑ »óȲ ¼³¸íÀ» Æ÷ÇÔÇÏ´Â ¿£ÅÍƼ¸¦ Æ÷ÇÔÇØ¾ß ÇÑ´Ù. »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â Æ÷ÇÔµÈ ¸ðµç ¿£ÅÍƼ¸¦ »ç¿ëÀÚ¿¡°Ô Ç¥½ÃÇÏ¿©¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ ÀÀ´ä ÄÚ µå´Â ¸ðµç ¿ä±¸ method¿¡ Àû¿ëÇÒ ¼ö ÀÖ´Ù. 10.5.1 500 Internal Server Error(¼­¹ö ³»ºÎ ¿¡·¯) ¼­¹ö°¡ ¿ä±¸¸¦ ó¸®ÇÏÁö ¸øÇϵµ·Ï ÇÏ´Â ¿¹»óÄ¡ ¸øÇÑ »óȲ¿¡ Á¢Çß´Ù. 10.5.2 501 Not Implemented(±¸ÇöµÇÁö ¾Ê¾ÒÀ½) ¼­¹ö°¡ ¿ä±¸¸¦ ¿Ï·áÇÏ´Â µ¥ ÇÊ¿äÇÑ ±â´ÉÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù. ÀÌ°ÍÀº ¼­¹ö°¡ ¿ä±¸ method¸¦ ÀÎ ÁöÇÒ ¼ö ¾ø°í ¾î¶°ÇÑ ÀÚ¿øÀ» »ç¿ëÇصµ Áö¿øÇÒ ¼ö ¾øÀ» ¶§ ÀûÀýÇÑ ÀÀ´äÀÌ´Ù. 10.5.3 502 Bad Gateway(ºÒ·® °ÔÀÌÆ®¿þÀÌ) °ÔÀÌÆ®¿þÀ̳ª ÇÁ¶ô½Ã ¿ªÇÒÀ» ¼öÇàÇÏ´Â ¼­¹ö°¡ ¿ä±¸¸¦ ¿Ï·áÇÏ·Á´Â ½Ãµµ¿¡¼­ Á¢±ÙÇÑ ¾÷½ºÆ®¸² (upstream) ¼­¹ö·ÎºÎÅÍ À¯È¿ÇÏÁö ¾ÊÀº ÀÀ´äÀ» ¼ö½ÅÇßÀ» °æ¿ìÀÌ´Ù. 10.5.4 503 Service Unavailable(¼­ºñ½º¸¦ »ç¿ëÇÒ ¼ö ¾øÀ½) ¼­¹ö°¡ ÇöÀç ÀáÁ¤ÀûÀÎ ¿À¹ö·Îµù(overloading)À̳ª ¼­¹öÀÇ À¯Áö ÀÛ¾÷ ¶§¹®¿¡ ¿ä±¸¸¦ ó¸®ÇÒ ¼ö ¾ø´Ù. ÀÌ°ÍÀÇ Àǹ̴ ÀÌ°ÍÀÌ ÀáÁ¤ÀûÀÎ »óȲÀÌ¸ç ¾ó¸¶ ÈÄ¿¡´Â ¿ÏÈ­µÉ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. ¾Ë ¼ö ÀÖ´Ù¸é Áö¿¬ ½Ã°£ ±æÀ̸¦ Retry-After Çì´õ¿¡ Ç¥½ÃÇÒ ¼ö ÀÖ´Ù. ¾Æ¹«·± Retry-After Á¤º¸°¡ ¾øÀ¸ ¸é Ŭ¶óÀ̾ðÆ®´Â 500 ÀÀ´äÀ» ó¸®ÇÏ´Â °Íó·³ ÀÀ´äÀ» ó¸®ÇØ¾ß ÇÑ´Ù. ÁÖÀÇ : 503 »óÅ Äڵ尡 ÀÖ´Ù´Â °ÍÀÌ ¼­¹ö°¡ ¿À¹ö·Îµå µÇ¾úÀ» ¶§ ÀÌ°ÍÀ» ¹Ýµå½Ã »ç¿ëÇØ¾ß µÈ ´Ù´Â °ÍÀ» ÀǹÌÇÏÁö ¾Ê´Â´Ù. ¾î¶² ¼­¹ö´Â ´Ü¼øÈ÷ Á¢¼ÓÀ» °ÅºÎÇÏ°íÀÚ ÇÑ´Ù. 10.5.5 504 Gateway Timeout(°ÔÀÌÆ®¿þÀÌ ½Ã°£ ÃÊ°ú) °ÔÀÌÆ®¿þÀ̳ª ÇÁ¶ô½Ã ¿ªÇÒÀ» ¼öÇàÇÏ´Â ¼­¹ö°¡ ½Ã°£ ³»¿¡ ¿ä±¸¸¦ ¿Ï·áÇÏ·Á´Â ½Ãµµ¿¡¼­ Á¢±ÙÇÑ ¾÷½ºÆ®¸²(upstream) ¼­¹ö·ÎºÎÅÍ ÀÀ´äÀ» ¼ö½ÅÇÏÁö ¸øÇßÀ» °æ¿ìÀÌ´Ù. [Page 64] 10.5.6 505 HTTP Version Not Supported(Áö¿øµÇÁö ¾Ê´Â HTTP ¹öÀü) ¼­¹ö°¡ ¿ä±¸ ¸Þ½ÃÁö¿¡¼­ »ç¿ëµÈ HTTP ±Ô¾à ¹öÀüÀ» Áö¿øÇÏÁö ¾Ê°Å³ª Áö¿øÇϱ⸦ °ÅºÎÇß´Ù. ¼­ ¹ö´Â ÀÌ ¿¡·¯ ¸Þ½ÃÁö ÀÌ¿Ü¿¡´Â 3.1 Àý¿¡¼­ ¼³¸íÇÑ ´ë·Î Ŭ¶óÀ̾ðÆ®°¡ »ç¿ëÇÏ´Â µ¿ÀÏÇÑ ÁÖ¿ä ¹öÀüÀ» »ç¿ëÇÏ¿© ¿ä±¸¸¦ ¿Ï·áÇÒ Àǻ糪 ´É·ÂÀÌ ¾øÀ½À» Ç¥½ÃÇÑ´Ù. ÀÀ´äÀº ¿Ö ÇØ´ç ¹öÀüÀÌ Áö¿ø µÇÁö ¾ÊÀ¸¸ç ¼­¹ö°¡ ¾î¶² ±Ô¾àÀ» Áö¿øÇϴ°¡¸¦ ¼³¸íÇÏ´Â ¿£ÅÍƼ¸¦ Æ÷ÇÔÇØ¾ß ÇÑ´Ù. 11 Á¢¼Ó ÀÎÁõ HTTP´Â ¼­¹ö´Â Ŭ¶óÀ̾ðÆ®ÀÇ ¿ä±¸¸¦ ½ÃµµÇÏ°í Ŭ¶óÀ̾ðÆ®´Â ÀÎÁõ Á¤º¸¸¦ Á¦°øÇÏ´Â ´Ü¼øÇÑ Try-Response ÀÎÁõ ȹµæ ¸ÞÄ¿´ÏÁòÀ» Á¦°øÇÑ´Ù. ÀÌ°ÍÀº È®Àå °¡´ÉÇÏ°í ´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê ´Â ÅäÅ«À» »ç¿ëÇÏ¿© ÀÎÁõ schemeÀ» È®ÀÎÇÑ´Ù. ÀÌ scheme µÚ¿¡´Â ÀÌ schemeÀ» ÅëÇÏ¿© ÀÎÁõÀ» ȹµæÇÏ´Â µ¥ ÇÊ¿äÇÑ ÆĶó¹ÌÅ͸¦ °¡Áö°í ÀÖ´Â ÄÞ¸¶·Î ±¸ºÐµÈ attribute-value ½ÖÀÇ ¸ñ·ÏÀÌ µÚµû¸¥ ´Ù. auth-scheme = token auth-param = token "=" quoted-string ¿ø¼­¹ö´Â 401(Unauthorized) ÀÀ´ä ¸Þ½ÃÁö¸¦ »ç¿ëÇÏ¿© »ç¿ëÀÚ ¿¡ÀÌÀüÆ®ÀÇ ÀÎÁõÀ» ½ÃµµÇÑ´Ù. ÀÌ ÀÀ´äÀº ¿ä±¸µÈ ÀÚ¿ø¿¡ Àû¿ëÇÒ ¼ö ÀÖ´Â ÃÖ¼ÒÇÑ ÇϳªÀÇ ½Ãµµ¸¦ Æ÷ÇÔÇÑ WWW-Authenticate Çì´õ Çʵ带 Æ÷ÇÔÇØ¾ß ÇÑ´Ù. challenge = auth-scheme 1*SP realm *( "," auth-param ) realm = "realm" "=" realm-value realm-value = quoted-string ÀÎÁõÀ» ½ÃµµÇÏ´Â ¸ðµç ÀÎÁõ schemeÀº ¿µ¿ª ¼Ó¼º(´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾ÊÀ½)À» °¡Áö°í ÀÖ¾î¾ß ÇÑ´Ù. ¿µ¿ª ¼Ó¼º(´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÔ)Àº Á¢¼ÓÇÏ·Á´Â ¼­¹öÀÇ Á¤ÇüÀû ·çÆ® URL (5.1.2 Àý ÂüÁ¶)°ú °áÇÕÇÏ¿© º¸È£ ±¸¿ª(protection space)À» Á¤ÀÇÇÑ´Ù. ÀÌ ¿µ¿ªÀº ¼­¹öÀÇ º¸È£µÈ ÀÚ¿øÀÌ °¢°¢ ÀÚ½ÅÀÇ ÀÎÁõ ȹµæ scheme ¹×/¶Ç´Â ÀÎÁõ µ¥ÀÌÅÍ º£À̽º¸¦ °¡Áö°í º¸È£ ±¸¿ª ¼¼Æ®·Î ºÐÇÒµÉ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ¿µ¿ª °ªÀº ¹®ÀÚ¿­ÀÌ¸ç º¸Åë ¿ø¼­¹ö°¡ ÁöÁ¤ÇÑ´Ù. ¿ø¼­¹ö´Â ÀÎÁõ ȹµæ scheme¿¡ ÇÑÁ¤µÈ Ãß°¡ÀûÀÎ Àǹ̸¦ °¡Áú ¼ö ÀÖ´Ù. ¼­¹ö¿¡ ÀÚ½ÅÀÇ ÀÎÁõÀ» ¾ò°íÀÚ ÇÏ´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â - ´ë°³ÀÇ °æ¿ì ÇʼöÀûÀÎ »çÇ×Àº ¾Æ´ÏÁö ¸¸ 401 ¶Ç´Â 411 ÀÀ´äÀ» ¼ö½ÅÇÑ ÈÄ -¿ä±¸¿¡ Authorization Çì´õ Çʵ带 Æ÷ÇÔÇÏ¿© ÀÎÁõÀ» ¾òÀ» ¼ö ÀÖ´Ù. Authorization ÇÊµå °ªÀº ¿ä±¸ÇÏ°í ÀÖ´Â ÀÚ¿øÀÇ ¿µ¿ª¿¡ ´ëÇÑ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®ÀÇ ÀÎÁõ ȹµæ Á¤º¸¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Â ÀÎÁõ Áõ¸í¼­·Î ±¸¼ºµÇ¾î ÀÖ´Ù. [Page 65] credentials = basic-credentials | auth-scheme #auth-param »ç¿ëÀÚ ¿¡ÀÌÀüÆ®¿¡ ÀÇÇØ Áõ¸í¼­°¡ ÀÚµ¿ÀûÀ¸·Î Àû¿ëµÉ ¼ö ÀÖ´Â µµ¸ÞÀÎ(domain)Àº º¸È£ ±¸¿ª¿¡ ÀÇÇÏ¿© °áÁ¤µÈ´Ù. ÀÌÀüÀÇ ¿ä±¸°¡ Àΰ¡µÇ¾úÀ¸¸é ÀÎÁõ ȹµæ scheme, ÆĶó¹ÌÅÍ ¹×/¶Ç´Â »ç¿ëÀÚÀÇ ¼±È£¿¡ µû¶ó °áÁ¤µÇ´Â ±â°£ µ¿¾È ÇØ´ç º¸È£ ±¸¿ª ³»¿¡¼­´Â µ¿ÀÏÇÑ Áõ¸í¼­¸¦ Àç»ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÎÁõ ȹµæ scheme¿¡ ÀÇÇØ ´Ù¸£°Ô ±ÔÁ¤µÇÁö ¾Ê´Â ÇÑ ´ÜÀÏ º¸È£ ±¸¿ªÀº ¼­¹öÀÇ ¹üÀ§¸¦ ³Ñ¾î¼­ È®ÀåµÉ ¼ö ¾ø´Ù. ¿ä±¸ ¼­¹ö°¡ ¿ä±¸¿Í ÇÔ²² ¼ö½ÅÇÑ Áõ¸í¼­¸¦ Á¢¼öÇÏ°í ½ÍÁö ¾ÊÀ¸¸é ¼­¹ö´Â 401(Unauthorized) ÀÀ´äÀ» ¸®ÅÏÇØ¾ß ÇÑ´Ù. ÀÀ´äÀº ¿ä±¸µÈ ÀÚ¿ø ¹× °ÅÀý ÀÌÀ¯¸¦ ¼³¸íÇÏ´Â ¿£ÅÍƼ¿¡ Àû¿ëÇÒ ¼ö ÀÖ´Â ½Ãµµ (Àç½ÃµµÀÏ ¼öµµ ÀÖ´Ù)¸¦ Æ÷ÇÔÇÑ WWW-Authenticate Çì´õ Çʵ带 ¹Ýµå½Ã Æ÷ÇÔÇØ¾ß ÇÑ´Ù. HTTP ±Ô¾àÀº Á¢¼Ó ÀÎÁõ ȹµæÀ» À§ÇØ ÀÌ ´Ü¼øÇÑ Try-Response ¸ÞÄ¿´ÏÁò¸¸À» ¾ÖÇø®ÄÉÀ̼ÇÀÌ »ç¿ëÇϵµ·Ï Á¦ÇÑÇÏÁö´Â ¾Ê´Â´Ù. Àü¼Û ¼öÁØ ¶Ç´Â ¸Þ½ÃÁö ³»Æ÷È­(encapsulation)¸¦ ÅëÇÑ ¾Ïȣȭ µî °ú °°Àº Ãß°¡ÀûÀÎ ¸ÞÄ¿´ÏÁòÀ» ÀÎÁõ ȹµæ Á¤º¸¸¦ ¸í½ÃÇÏ´Â Ãß°¡ÀûÀÎ Çì´õ Çʵå¿Í ´õºÒ¾î »ç¿ë ÇÒ ¼ö ÀÖ´Ù. ÇÁ¶ô½Ã´Â ¹Ýµå½Ã »ç¿ëÀÚ ¿¡ÀÌÀüÆ® ÀÎÁõ ȹµæ¿¡ °üÇÏ¿© ¿ÏÀüÈ÷ Åõ¸íÇØ¾ß ÇÑ´Ù. ¸»ÇÏÀÚ¸é ÇÁ¶ô ½Ã´Â ¹Ýµå½Ã WWW-Authenticate ¹× Authorization Çì´õ¸¦ º¯°æÇÏÁö ¾Ê°í Àü¼ÛÇØ¾ß Çϸç 14.8 Àý ¿¡ ÀÖ´Â ±ÔÄ¢¿¡ µû¶ó¾ß ÇÑ´Ù. HTTP/1.1Àº Ŭ¶óÀ̾ðÆ®°¡ ÀÎÁõ ȹµæ Á¤º¸¸¦ Proxy-Authenticate ¹× Proxy-Authorization Çì´õ¸¦ ÅëÇÏ¿© ÇÁ¶ô½Ã¿Í ÁÖ°í ¹ÞÀ» ¼ö ÀÖµµ·Ï Çã¿ëÇØ¾ß ÇÑ´Ù. 11.1 ±âº» ÀÎÁõ scheme "±âº»Àû(basic)" ÀÎÁõ schemeÀº »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ °¢ ¿µ¿ª¿¡¼­ »ç¿ëÀÚ ID ¹× ¾ÏÈ£·Î¼­ ÀÚ½ÅÀÇ ÀÎÁõÀ» ȹµæÇØ¾ß ÇÑ´Ù´Â ¸ðµ¨¿¡ ±âÃÊÇÏ°í ÀÖ´Ù. ¿µ¿ª °ªÀº µ¿ÀÏ ¼­¹öÀÇ ´Ù¸¥ ¿µ¿ª°úÀÇ µ¿Àϼº ÀÌ ºñ±³µÉ ¼ö ÀÖ´Â ºÒÅõ¸íÇÑ ¹®ÀÚ¿­·Î °£ÁÖÇØ¾ß ÇÑ´Ù. ¼­¹ö´Â Request-URIÀÇ º¸È£ ±¸¿ª¿¡¼­ »ç¿ëÀÚ ID¿Í ¾ÏÈ£¸¦ °ËÁõÇÒ ¼ö ÀÖÀ» ¶§¸¸ ¿ä±¸¸¦ ûÇÒ °ÍÀÌ´Ù. ¼±ÅÃÀûÀÎ ÀÎÁõ ȹµæ ÆĶó¹ÌÅÍ ´Â ¾ø´Ù. [Page 66] º¸È£ ±¸¿ª ³»ÀÇ URI¿¡ ´ëÇÑ Çã°¡µÇÁö ¾Ê´Â ¿ä±¸¸¦ ¼ö½ÅÇÏ¸é ¼­¹ö´Â ´ÙÀ½°ú °°Àº ½Ãµµ·Î ÀÀ´ä ÇÒ ¼ö ÀÖ´Ù. WWW-Authenticate: Basic realm="WallyWorld" ¿©±â¼­ "WallyWorld"´Â ¼­¹ö°¡ ÁöÁ¤ÇÑ ¹®ÀÚ¿­·Î Request-URIÀÇ º¸È£ ±¸¿ªÀ» È®ÀÎÇØ ÁØ´Ù. ÀÎÁõ ȹµæÀ» ¼ö½ÅÇϱâ À§Çؼ­ Ŭ¶óÀ̾ðÆ®´Â Áõ¸í¼­ ³»ÀÇ base64·Î ÀÎÄÚµùµÈ ¹®ÀÚ¿­ ³»¿¡¼­ ´Ü ÀÏ ÄÝ·Ð(":") ¹®ÀÚ·Î ±¸ºÐµÈ »ç¿ëÀÚ ID ¿Í ¾ÏÈ£¸¦ ¹ß¼ÛÇÑ´Ù. basic-credentials = "Basic" SP basic-cookie basic-cookie = user-pass = userid ":" password userid = * password = *TEXT Userids ´Â ´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÒ ¼öµµ ÀÖ´Ù. »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ userid "Aladdin" °ú ¾ÏÈ£ "open sesame"¸¦ ¼Û½ÅÇÏ°í ½Í´Ù¸é ´ÙÀ½ÀÇ Çì´õ ÇÊ µå¸¦ »ç¿ëÇØ¾ß ÇÒ °ÍÀÌ´Ù: Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== ±âº» ÀÎÁõ ȹµæ°ú °ü·ÃµÈ º¸¾È¿¡ ´ëÇÑ °í·Á »çÇ×Àº 15 ÀåÀ» Âü°íÇÑ´Ù. 11.2 ¿ä¾à ÀÎÁõ scheme HTTPÀÇ ¿ä¾à ÀÎÁõ schemeÀº RFC 2069 [32]¿¡ ¸í½ÃµÇ¾î ÀÖ´Ù. 12 ³»¿ë Çù»ó(Content Negotiation) ´ëºÎºÐÀÇ ÀÀ´äÀº Àΰ£ »ç¿ëÀÚ°¡ Çؼ®ÇÏ´Â Á¤º¸¸¦ Æ÷ÇÔÇÑ ¿£ÅÍƼ¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù. ´ç¿¬È÷ »ç ¿ëÀÚ¿¡°Ô ¿ä±¸¿¡ »óÀÀÇÏ´Â "ÃÖ»óÀÇ »ç¿ë °¡´É" ¿£ÅÍƼ¸¦ Á¦°øÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù. ¼­¹ö¿Í ij½Ã¿¡°Ô´Â ºÒÇàÇÏ°Ôµµ ¸ðµç »ç¿ëÀÚ°¡ ¹«¾ùÀÌ ÃÖ»óÀΰ¡¿¡ ´ëÇÑ µ¿ÀÏÇÑ ¼±È£ »çÇ×À» °¡Áö°í ÀÖ ´Â °ÍÀÌ ¾Æ´Ï¸ç ¸ðµç »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ ÆòµîÇÏ°Ô ¸ðµç ¿£ÅÍƼ À¯ÇüÀ» Ç¥½ÃÇÒ ´É·ÂÀÌ ÀÖ´Â °Í ÀÌ ¾Æ´Ï´Ù. ÀÌ·¯ÇÑ ÀÌÀ¯·Î HTTP´Â "³»¿ë Çù»ó"À» À§ÇÑ ¸î¸î ¸ÞÄ¿´ÏÁòÀ» Á¦°øÇÏ°í ÀÖ´Ù. [Page 67] ³»¿ë Çù»óÀ̶õ º¹¼öÀÇ Ç¥Çö ¹æ¹ýÀ» »ç¿ëÇÒ ¼ö ÀÖÀ» ¶§ ƯÁ¤ ÀÀ´ä¿¡ ´ëÇÑ ÃÖ»óÀÇ Ç¥Çö ¹æ¹ýÀ» ¼±ÅÃÇÏ´Â °úÁ¤ÀÌ´Ù. ÁÖÀÇ : ´ëüÇϴ ǥ½Ã ¹æ¹ýÀÌ µ¿ÀÏÇÑ media typeÀÌ°í µ¿ÀÏ À¯ÇüÀÇ ´Ù¸¥ ´É·ÂÀ» »ç¿ëÇϰųª ´Ù¸¥ ¾ð¾î·Î µÇ¾î ÀÖÀ» ¼ö Àֱ⠶§¹®¿¡ "Æ÷¸Ë Çù»ó" À̶ó°í ºÎ¸£Áö ¾Ê´Â´Ù. ¿¡·¯ ÀÀ´äÀ» Æ÷ÇÔÇÏ¿© Entity-Body¸¦ °¡Áö°í ÀÖ´Â ¸ðµç ÀÀ´äÀº Çù»óÀÇ ´ë»óÀÌ µÉ ¼ö ÀÖ´Ù. HTTP¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â µÎ °¡Áö Á¾·ùÀÇ ³»¿ë Çù»óÀÌ ÀÖ´Ù - ¼­¹ö°¡ ÁÖµµÇÏ´Â Çù»ó°ú ¿¡ÀÌ ÀüÆ®°¡ ÁÖµµÇÏ´Â Çù»ó. ÀÌ µÎ Á¾·ùÀÇ Çù»óÀº Á÷±³Çϱ⠶§¹®¿¡ ºÐ¸®ÇÏ¿© »ç¿ëÇÒ ¼öµµ ÀÖ°í °á ÇÕÇÏ¿© »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. Åõ¸íÇÑ Çù»óÀ¸·Î ÁöĪµÇ´Â °áÇÕÀÇ ÇÑ ¹æ¹ýÀº Á÷ÈÄÀÇ ¿ä±¸¿¡ ´ëÇÏ¿© ¼­¹ö°¡ ÁÖµµÇÏ´Â Çù»óÀ» Á¦°øÇϱâ À§Çؼ­ ij½Ã°¡ ¿ø¼­¹ö°¡ Á¦°øÇÏ´Â ¿¡ÀÌÀüÆ® ÁÖµµÀÇ Çù»ó Á¤ º¸¸¦ »ç¿ëÇÒ ¶§ ¹ß»ýÇÑ´Ù. 12.1 ¼­¹ö°¡ ÁÖµµÇÏ´Â Çù»ó ÀÀ´ä¿¡ ´ëÇÑ ÃÖ»óÀÇ Ç¥Çö ¹æ½Ä ¼±ÅÃÀÌ ¼­¹ö¿¡ À§Ä¡ÇÑ ¾Ë°í¸®Áò¿¡ ÀÇÇÏ¿© ÀÌ·ç¾î Áú ¶§ À̸¦ ¼­¹ö°¡ ÁÖµµÇÏ´Â Çù»óÀ̶ó ºÎ¸¥´Ù. ¼±ÅÃÀº »ç¿ë °¡´ÉÇÑ ÀÀ´ä Ç¥½Ã ¹æ¹ý(º¯ÇüÇÒ ¼ö ÀÖ´Â Â÷¿ø. ¿¹¸¦ µé¾î ¾ð¾î Content-Codings µî), ¿ä±¸ ¸Þ½ÃÁöÀÇ Æ¯Á¤ Çì´õ ÇʵåÀÇ ³»¿ë ¶Ç´Â ¿ä±¸¿Í °ü·Ã µÈ ±âŸ Á¤º¸(Ŭ¶óÀ̾ðÆ®ÀÇ ³×Æ®¿öÅ© ÁÖ¼Ò °°Àº °Í)¿¡ ±âÃÊÇÑ´Ù. ¼­¹ö°¡ ÁÖµµÇÏ´Â Çù»óÀº »ç¿ë °¡´ÉÇÑ Ç¥Çö ¹æ¹ý Áß¿¡¼­ ¼±ÅÃÇÏ´Â ¾Ë°í¸®ÁòÀÌ »ç¿ëÀÚ ¿¡ÀÌÀüÆ® ¿¡°Ô ¼³¸íÇϱⰡ ¾î·Á¿ï ¶§ ¶Ç´Â ¼­¹ö°¡ ÀÚ½ÅÀÇ "ÃÖ»óÀÇ ¿¹Ãø"À» ù ÀÀ´ä¿¡ µÚ µû¶ó¼­("ÃÖ»ó ÀÇ ¿¹Ãø"ÀÌ »ç¿ëÀÚ¿¡°Ô ÃæºÐÇÒ Á¤µµ·Î ÁÁ´Ù¸é °è¼ÓµÇ´Â ¿ä±¸ÀÇ ¿Õº¹ ¿©ÇàÀ¸·Î ÀÎÇÑ Áö¿¬À» ÇÇ ÇÏ·Á´Â Èñ¸Á¿¡¼­) Ŭ¶óÀ̾ðÆ®¿¡°Ô ¹ß¼ÛÇÒ ¶§ À¯¸®ÇÏ´Ù. ¼­¹öÀÇ ¿¹ÃøÀ» Çâ»ó½ÃÅ°±â À§ÇØ »ç¿ë ÀÚ ¿¡ÀÌÀüÆ®´Â ±×·¯ÇÑ ÀÀ´ä¿¡ ´ëÇÑ ÀÚ½ÅÀÇ ¼±È£¸¦ Ç¥½ÃÇÏ´Â ¿ä±¸ Çì´õ Çʵå(Accept, Accept- Language, Accept-Encoding µî)¸¦ Æ÷ÇÔÇÒ ¼öµµ ÀÖ´Ù. ¼­¹ö°¡ ÁÖµµÇÏ´Â Çù»óÀº ´ÙÀ½ÀÇ ´ÜÁ¡ÀÌ ÀÖ´Ù. 1. ¼­¹ö°¡ Á¤È®ÇÏ°Ô Æ¯Á¤ »ç¿ëÀÚ¿¡°Ô "ÃÖ»ó"ÀÌ ¹«¾ùÀÎÁö °áÁ¤ÇÑ´Ù´Â °ÍÀº »ç¿ëÀÚ ¿¡ÀÌÀüÆ®ÀÇ ´É·Â ¹× ÀÀ´äÀÇ ÀǵµµÈ »ç¿ë ¿ëµµ¿¡ ´ëÇÑ ¿Ïº®ÇÑ ÀÌÇظ¦ ÇÊ¿ä·Î Çϱ⠶§¹®¿¡ ºÒ°¡´ÉÇÏ´Ù. (¿¹¸¦ µé¸é »ç¿ëÀÚ°¡ ±×°ÍÀ» È­¸é¿¡¼­ º¸±â¸¦ ¿øÇϴ°¡ ¾Æ´Ï¸é Á¾ÀÌ¿¡ ÀμâÇϱ⸦ ¿øÇÏ´Â °¡?) 2. »ç¿ëÀÚ ¿¡ÀÌÀüÆ®¿¡°Ô ¿äûÇÒ ¶§¸¶´Ù ÀÚ½ÅÀÇ ´É·ÂÀ» ¼³¸íÇϵµ·Ï ÇÏ´Â °ÍÀº ¸Å¿ì ºñÈ¿À²Àû (ÀûÀÇ ÆÛ¼¾Æ®ÀÇ ÀÀ´ä¸¸ÀÌ º¹¼öÀÇ Ç¥Çö ¹æ¹ýÀ» °¡Áö°í ÀÖ´Ù°í °¡Á¤Çϸé)À̸鼭µµ »ç¿ëÀÚÀÇ ÇÁ¶óÀ̹ö½Ã¸¦ ħÇØÇÒ °¡´É¼ºÀÌ ÀÖ´Ù. [Page 68] 3. ¿ø¼­¹öÀÇ ±¸Çö ¹æ¹ý ¹× ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ» »ý¼ºÇÏ´Â ¾Ë°í¸®ÁòÀ» º¹ÀâÇÏ°Ô ¸¸µç´Ù. 4. º¹¼öÀÇ »ç¿ëÀÚ ¿ä±¸¿¡ ´ëÇØ µ¿ÀÏÇÑ ÀÀ´äÀ» »ç¿ëÇÒ ¼ö ÀÖ´Â º¸ÆíÀûÀΠij½ÃÀÇ ´É·ÂÀ» Á¦ÇÑ ÇÒ ¼ö ÀÖ´Ù. HTTP/1.1Àº »ç¿ëÀÚ ¿¡ÀÌÀüÆ®ÀÇ ´É·Â ¹× »ç¿ëÀÚÀÇ ¼±È£¸¦ ±â¼úÇÏ¿© ¼­¹ö°¡ ÁÖµµÇÏ´Â Çù»óÀ» °¡´ÉÇÏ°Ô ÇÏ´Â ´ÙÀ½ÀÇ Request-Header Çʵ带 Æ÷ÇÔÇÏ°í ÀÖ´Ù. - Accept (14.1 Àý), Accept-Charset (14.2 Àý), Accept-Encoding (14.3 Àý), Accept-Language (14.4 Àý) ¹×User-Agent (14.42 Àý). ±×·¯³ª ¿ø¼­¹ö´Â ÀÌ·¯ÇÑ Â÷¿ø¿¡ Á¦ÇÑ ¹ÞÁö ¾Ê°í Request-Header Çʵå ÀÌ¿ÜÀÇ Á¤º¸ ¶Ç´Â ÀÌ ±Ô°ÝÀÌ ±Ô Á¤ÇÏÁö ¾ÊÀº È®Àå Çì´õ Çʵ带 Æ÷ÇÔÇÏ´Â ¿ä±¸ÀÇ ¾î¶°ÇÑ Ãø¸é¿¡ µû¶ó º¯ÇüµÉ ¼ö ÀÖ´Ù. HTTP/1.1 ¿ø¼­¹ö´Â ¼­¹ö°¡ ÁÖµµÇÏ´Â Çù»ó¿¡ ±âÃÊÇÑ Ä³½ÃÇÒ ¼ö ÀÖ´Â ¸ðµç ÀÀ´ä¿¡¼­ ¹Ýµå½Ã Àû ÀýÇÑ Vary Çì´õ Çʵå(14.43 Àý)¸¦ Æ÷ÇÔÇØ¾ß ÇÑ´Ù. Vary Çì´õ Çʵå´Â ÀÀ´äÀÌ º¯ÇüµÉ ¼ö ÀÖ´Â Â÷ ¿øÀ» ¼³¸íÇÑ´Ù. (¿¹¸¦ µé¾î ¿ø¼­¹ö°¡ º¹¼öÀÇ Ç¥Çö ¹æ½ÄÀ¸·ÎºÎÅÍ "ÃÖ»óÀÇ ¿¹Ãø"À» ²ôÁý¾î ³¾ ¼ö ÀÖ´Â Â÷¿ø) HTTP/1.1 °ø°ø ij½Ã´Â ÀÀ´ä¿¡ Æ÷ÇԵǾî ÀÖ´Â Vary Çì´õ Çʵ带 ÀÎÁöÇØ¾ß ÇÏ°í ij½Ã¿Í ³»¿ë Çù »óÀÇ »óÈ£ ÀÛ¿ëÀ» ±â¼úÇÏ°í ÀÖ´Â 13.6 Àý¿¡ ¼³¸íµÈ ÇÊ¿ä Á¶°ÇÀ» ÃæÁ·ÇØ¾ß ÇÑ´Ù. 12.2 ¿¡ÀÌÀüÆ®°¡ ÁÖµµÇÏ´Â Çù»ó ¿¡ÀÌÀüÆ®°¡ ÁÖµµÇÏ´Â Çù»ó¿¡¼­ ÀÀ´ä¿¡ ´ëÇÑ ÃÖ»óÀÇ Ç¥Çö ¹æ½ÄÀÇ ¼±ÅÃÀº ¿ø¼­¹ö·ÎºÎÅÍ Ã¹ ÀÀ´ä À» ¼ö½ÅÇÑ ´ÙÀ½ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ ¼öÇàÇÑ´Ù. ¼±ÅÃÀº °¢°¢ÀÇ Ç¥Çö ¹æ½ÄÀº ÀÚ½ÅÀÇ URI¿¡ ÀÇÇÏ ¿© ½Äº°Çϸ鼭 Çì´õ Çʵå(ÀÌ ±Ô°ÝÀº ºÎ·Ï 19.6.2.1¿¡ ±â¼úÇÑ ´ë·Î Çʵå À̸§ Alternates¸¦ ¿¹¾à Çß´Ù.) ³»¿¡ Æ÷ÇԵǾî ÀÖ´Â »ç¿ë °¡´ÉÇÑ Ç¥Çö ¹æ½ÄÀÇ ¸ñ·ÏÀ̳ª ù ÀÀ´äÀÇ Entity-Body¿¡ ±âÃÊ ÇÑ´Ù. Ç¥Çö ¹æ½Ä ¼±ÅÃÀº ÀÚµ¿ÀûÀ¸·Î ¼öÇà(»ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ ±×·¸°Ô ÇÒ ´É·ÂÀÌ ÀÖ´Ù¸é)µÉ ¼öµµ ÀÖ°í »ç¿ëÀÚ°¡ »ý¼ºµÈ(ÇÏÀÌÆÛÅؽºÆ®ÀÏ ¼ö ÀÖ´Ù) ¸Þ´º¿¡¼­ ¼±ÅÃÇÒ ¼öµµ ÀÖ´Ù. ¿¡ÀÌÀüÆ®°¡ ÁÖµµÇÏ´Â Çù»óÀº ÀÀ´äÀÌ ÀϹÝÀûÀ¸·Î »ç¿ëÇÏ´Â Â÷¿ø(À¯Çü, ¾ð¾î ¶Ç´Â ÀÎÄÚµù)¿¡ µû ¶ó º¯ÇÒ ¶§, ¿ø¼­¹ö°¡ ÀÀ´äÀ» °üÂûÇÏ¿© »ç¿ëÀÚ ¿¡ÀÌÀüÆ®ÀÇ ´É·ÂÀ» °áÁ¤ÇÒ ¼ö ¾øÀ» ¶§ ¶Ç´Â ¼­ ¹öÀÇ ºÎÇϸ¦ ºÐ»êÇÏ°í ³×Æ®¿öÅ© »ç¿ëÀ» °¨¼Ò½ÃÅ°±â À§ÇØ °ø°ø ij½Ã°¡ »ç¿ëµÇ¾úÀ» ¶§ À¯¸®ÇÏ´Ù. [Page 69] ¿¡ÀÌÀüÆ®°¡ ÁÖµµÇÏ´Â Çù»óÀº ÃÖÀûÀÇ ´ëü Ç¥½Ã ¹æ¹ýÀ» ¾ò±â À§Çؼ­ µÎ ¹ø° ¿ä±¸°¡ ÇÊ¿äÇÏ´Ù ´Â ´ÜÁ¡ÀÌ ÀÖ´Ù. ÀÌ µÎ ¹ø° ¿ä±¸´Â ij½Ã°¡ »ç¿ëµÉ ¶§¸¸ È¿°úÀûÀÌ´Ù. ¶ÇÇÑ ÀÌ ±Ô°ÝÀº ÀÚµ¿Àû ¼±ÅÃÀ» Áö¿øÇÏ´Â ¾î¶°ÇÑ ¸ÞÄ¿´ÏÁòµµ ±ÔÁ¤ÇÏÁö ¾Ê´Â´Ù. ±×·¯³ª ÀÌ ±Ô°ÝÀº ¶ÇÇÑ ÀÌ·¯ÇÑ ¸ÞÄ¿´Ï ÁòÀÌ È®ÀåÀ¸·Î¼­ °³¹ßµÇ°í HTTP/1.1 ³»¿¡¼­ »ç¿ëµÇ´Â °ÍÀ» ±ÝÁöÇÏÁö´Â ¾Ê´Â´Ù. HTTP/1.1Àº ¼­¹ö°¡ ÁÖµµÇÏ´Â Çù»óÀ» ÀÌ¿ëÇÏ´Â º¯È­µÈ ÀÀ´äÀ» Á¦°øÇÒ ¼ö ¾ø°Å³ª Á¦°øÇÏ·Á ÇÏ Áö ¾ÊÀ» ¶§ ¿¡ÀÌÀüÆ®°¡ ÁÖµµÇÏ´Â Çù»óÀÌ °¡´ÉÇϵµ·Ï 300 (Multiple Choices) ¹× 406 (Not Acceptable) »óÅ Äڵ带 ±ÔÁ¤ÇÑ´Ù. 12.3 Åõ¸íÇÑ Çù»ó(Transparent Negotiation) Åõ¸íÇÑ Çù»óÀº ¼­¹ö°¡ ÁÖµµÇÏ´Â Çù»ó°ú ¿¡ÀÌÀüÆ®°¡ ÁÖµµÇÏ´Â Çù»óÀÇ º¹ÇÕüÀÌ´Ù. ij½Ã°¡ ÀÀ´ä ÀÇ »ç¿ë °¡´ÉÇÑ Ç¥Çö ¹æ½Ä ¸ñ·Ï ÇüÅ·ΠÁ¦°øµÇ°í(¿¡ÀÌÀüÆ®°¡ ÁÖµµÇÏ´Â Çù»óó·³) ij½Ã°¡ º¯ÀÌ ÀÇ Â÷¿øÀ» ¿ÏÀüÈ÷ ÀÌÇØÇßÀ¸¸é ÇØ´ç ÀÚ¿ø¿¡ ´ëÇÑ °è¼ÓÀûÀÎ ¿ä±¸¿¡ ´ëÇÏ¿© ¿ø¼­¹ö¸¦ ´ë½ÅÇÏ¿© ij½Ã´Â ¼­¹ö°¡ ÁÖµµÇÏ´Â Çù»óÀ» ¼öÇàÇÒ ¼ö ÀÖ°Ô µÈ´Ù. Åõ¸íÇÑ Çù»óÀº ±×·¸Áö ¾Ê´Ù¸é ¿ø¼­¹ö°¡ ¼öÇàÇØ¾ß ÇÏ´Â Çù»ó ÀÛ¾÷À» ºÐ»êÇÒ ¼ö ÀÖ°í ij½Ã°¡ Á¤ È®ÇÏ°Ô ¿Ã¹Ù¸¥ ÀÀ´äÀ» ¿¹ÃøÇÒ ¼ö ÀÖÀ» ¶§ ¿¡ÀÌÀüÆ®°¡ ÁÖµµÇÏ´Â Çù»óÀÇ µÎ ¹ø° ¿ä±¸ Áö¿¬À» Á¦°ÅÇÒ ¼ö ÀÖ´Ù´Â ÀåÁ¡À» °¡Áö°í ÀÖ´Ù. ÀÌ ±Ô°ÝÀº Åõ¸íÇÑ Çù»ó¿¡ ´ëÇÑ ¾î¶°ÇÑ ¸ÞÄ¿´ÏÁòµµ ±ÔÁ¤ÇÏÁö ¾Ê´Â´Ù. ±×·¯³ª ÀÌ ±Ô°ÝÀº ¶ÇÇÑ ÀÌ·¯ÇÑ ¸ÞÄ¿´ÏÁòÀÌ È®ÀåÀ¸·Î¼­ °³¹ßµÇ°í HTTP/1.1 ³»¿¡¼­ »ç¿ëµÇ´Â °ÍÀ» ±ÝÁöÇÏÁö´Â ¾Ê´Â´Ù. Åõ¸íÇÑ Çù»óÀ» ¼öÇàÇÏ´Â HTTP/1.1 ij½Ã´Â HTTP/1.1°úÀÇ ¿Ã¹Ù¸¥ »óÈ£ ÀÛ¿ëÀ» È®º¸Çϱâ À§ÇÏ¿© ij½ÃÇÒ ¼ö ÀÖ´Ù¸é ¹Ýµå½Ã ÀÀ´ä(º¯ÀÌÀÇ Â÷¿øÀ» Á¤ÀÇ)¿¡ Vary Çì´õ Çʵ带 Æ÷ÇÔÇØ¾ß ÇÑ´Ù. ¿ø¼­ ¹ö°¡ Á¦°øÇÏ´Â ¿¡ÀÌÀüÆ®°¡ ÁÖµµÇÏ´Â Çù»ó¿¡ ´ëÇÑ Á¤º¸´Â Åõ¸íÇÏ°Ô Çù»óµÈ ÀÀ´ä¿¡ Æ÷ÇԵǾî¾ß ÇÑ´Ù. 13 HTTP¿¡¼­ÀÇ Ä³½Ã HTTP´Â ÀüÇüÀûÀ¸·Î ÀÀ´ä ij½Ã¸¦ »ç¿ëÇÏ¿© ¼º´ÉÀ» Çâ»ó½Ãų ¼ö ÀÖ´Â ºÐ»ê Á¤º¸ ½Ã½ºÅÛ¿¡¼­ »ç¿ëµÈ´Ù. HTTP/1.1 ±Ô¾àÀº ij½Ã ÀÛ¾÷À» °¡´ÉÇÑ ÇÑ Àß ¼öÇàÇϱâ À§ÇÑ ¸î¸î ¿ä¼Ò¸¦ Æ÷ÇÔÇÑ´Ù. ÀÌ·¯ÇÑ ¿ä¼Ò´Â ±Ô¾àÀÇ ´Ù¸¥ Ãø¸é¿¡¼­ Á¦¿ÜÇÒ ¼ö ¾ø´Â °ÍÀ̱⠶§¹®¿¡ ¶ÇÇÑ ¼­·Î »óÈ£ ÀÛ¿ëÀ» Çϱ⠶§¹®¿¡ method, Çì´õ, ÀÀ´ä ÄÚµå µî¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ¼³¸í°ú´Â º°µµ·Î HTTPÀÇ ±âº» ij½Ã µðÀÚÀÎÀ» ¼³¸íÇÏ´Â °ÍÀÌ À¯¿ëÇÏ´Ù. [Page 70] ¼º´ÉÀ» »ó´çÈ÷ °³¼±ÇÏÁö ¸øÇÑ´Ù¸é ij½Ã´Â ¾µ¸ð¾ø´Â °ÍÀÌ µÉ °ÍÀÌ´Ù. HTTP/1.1 ij½ÃÀÇ ¸ñÀûÀº ¸¹Àº °æ¿ì¿¡ ¿ä±¸¸¦ ¹ß¼ÛÇÒ Çʿ並 Á¦°ÅÇÏ°í ¶Ç ´Ù¸¥ ¸¹Àº °æ¿ì¿¡ ¿ÏÀüÇÑ ÀÀ´äÀ» ¹ß¼ÛÇÒ ÇÊ¿ä ¸¦ Á¦°ÅÇÏ´Â °ÍÀÌ´Ù. ÀüÀÚ´Â ¸¹Àº ¿î¿µ¿¡¼­ ³×Æ®¿öÅ©ÀÇ ¿Õº¹ ¿©Çà ¼ýÀÚ¸¦ ÁÙ¿© ÁØ´Ù. ¿ì¸®´Â ÀÌ ¸ñÀûÀ» À§Çؼ­ "¸¸±âÀÏ" ¸ÞÄ¿´ÏÁòÀ» »ç¿ëÇÑ´Ù. (13.2 Àý ÂüÁ¶). ÈÄÀÚ´Â ³×Æ®¿öÅ© ´ë¿ªÆø ¿ä ±¸¸¦ °¨¼Ò½ÃÄÑ ÁØ´Ù. ¿ì¸®´Â ÀÌ ¸ñÀûÀ» À§Çؼ­´Â "°ËÁõ" ¸ÞÄ¿´ÏÁòÀ» »ç¿ëÇÑ´Ù.( 13.3 Àý ÂüÁ¶) ¼º´É, °¡¿ë¼º ¹× ´ÜÀýµÈ ¿î¿µ¿¡ ´ëÇÑ ÇÊ¿ä Á¶°ÇÀÌ ¿ì¸®¿¡°Ô ÀÇ¹Ì Åõ¸í¼º(semantic transparency) ÀÇ ¸ñÀûÀ» ¿ÏÈ­ÇÒ ¼ö ÀÖµµ·Ï ¿ä±¸ÇÑ´Ù. HTTP/1.1 ±Ô¾àÀº ¿ø¼­¹ö, ij½Ã, Ŭ¶óÀ̾ðÆ®°¡ ÇÊ¿äÇÏ´Ù ¸é ºÐ¸íÇÏ°Ô Åõ¸í¼ºÀ» °¨¼ÒÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ±×·¯³ª ºñ-Åõ¸íÀû ÀÛ¾÷Àº ºñ Àü¹®°¡ »ç¿ëÀÚ¿¡ °Ô È¥¼±À» ÁÙ ¼ö ÀÖ°í, ƯÁ¤ ¼­¹ö ¾ÖÇø®ÄÉÀ̼ǰú ȣȯµÇÁö ¾ÊÀ» ¼ö Àֱ⠶§¹®¿¡(Á¦Ç° ÁÖ¹®À» À§ÇÑ ¾ÖÇø®ÄÉÀ̼Çó·³) ±Ô¾àÀº Åõ¸í¼ºÀ» ¿ÏÈ­½Ãų °ÍÀ» ¿ä±¸ÇÑ´Ù. ? Ŭ¶óÀ̾ðÆ®³ª ¿ø¼­¹ö¿¡ ÀÇÇØ ¿ÏÈ­µÇ¾úÀ» ¶§´Â ºÐ¸íÇÏ°Ô ±Ô¾à ¼öÁØÀÇ ¿ä±¸¿¡ ÀÇÇؼ­¸¸ ? ij½Ã³ª Ŭ¶óÀ̾ðÆ®¿¡ ÀÇÇØ ¿ÏÈ­µÇ¾úÀ» ¶§´Â »ç¿ëÀÚ¿¡°Ô ºÐ¸íÇÑ °æ°í¸¦ ÁÜÀ¸·Î½á [Page 71] µû¶ó¼­ HTTP/1.1 ±Ô¾àÀº ´ÙÀ½ÀÇ Áß¿äÇÑ ¿ä¼Ò¸¦ Á¦°øÇÑ´Ù. 1. ¸ðµç Âü°¡ÀÚ°¡ ¿ä±¸ÇÒ ¶§ ¿ÏÀüÇÑ ÀÇ¹Ì Åõ¸í¼ºÀ» Á¦°øÇÏ´Â ±Ô¾à ±â´É 2. ¿ø¼­¹ö³ª »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ ºñ Åõ¸íÀû ÀÛ¾÷À» ºÐ¸íÇÏ°Ô ¿äûÇÏ°í Á¦¾îÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â ±Ô¾à ±â´É 3. ij½Ã°¡ ¿ä±¸ÇÑ ÀÇ¹Ì Åõ¸í¼º¿¡ ´ëÇÑ ±ÙÁ¢ ¿ä±¸¸¦ À¯ÁöÇÒ ¼ö ¾ø´Â ÀÀ´ä¿¡ °æ°í¸¦ ÷ºÎÇÏ´Â ±Ô¾à ±â´É ±âº» ±ÔÄ¢Àº Ŭ¶óÀ̾ðÆ®°¡ ÀáÀçÀûÀÎ ÀÇ¹Ì Åõ¸í¼ºÀÇ ¿ÏÈ­¸¦ °¨ÁöÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù. ÁÖÀÇ : ¼­¹ö, ij½Ã ¶Ç´Â Ŭ¶óÀ̾ðÆ® ±¸ÇöÀÚ´Â ÀÌ ±Ô°Ý¿¡¼­ ºÐ¸íÇÏ°Ô ÅäÀǵÇÁö ¾ÊÀº µðÀÚÀÎÀ» °áÁ¤ÇØ¾ß ÇÏ´Â ¹®Á¦¿¡ Á÷¸éÇÏ°Ô µÈ´Ù. °áÁ¤ »çÇ×ÀÌ ÀÇ¹Ì Åõ¸í¼º¿¡ ¿µÇâÀ» ¹ÌÄ¡°Ô µÇ¸é ±¸ ÇöÀÚ´Â ÁÖÀÇ ±í°í ¿ÏÀüÇÑ ºÐ¼®ÀÌ Åõ¸í¼ºÀ» ¾î±èÀ¸·Î½á »ó´çÇÑ ÇýÅÃÀ» ÁÖ´Â °ÍÀ¸·Î ³ªÅ¸³ªÁö ¾Ê´Â ÇÑ Åõ¸í¼ºÀ» À¯ÁöÇÏ´Â µ¥ Ä¡¿ìÃÄ¾ß ÇÑ´Ù. 13.1.1 ij½ÃÀÇ Á¤È®¼º Á¤È®ÇÑ Ä³½Ã´Â ¹Ýµå½Ã ¾Æ·¡ÀÇ Á¶°Ç Áß Çϳª¸¦ ¸¸Á·ÇÏ¸ç ¿ä±¸¿¡ ÀûÇÕÇÑ(13.2.5, 13.2.6 ¹× 13.12 Àý ÂüÁ¶) º¸À¯ÇÏ°í Àִ ij½Ã Áß °¡Àå ÃÖ±ÙÀÇ ÀÀ´äÀ¸·Î ¿ä±¸¿¡ ´äÇØ¾ß ÇÑ´Ù. 1. ¿ø¼­¹ö°¡ ¿ø¼­¹ö¸¦ »ç¿ëÇÏ¿© ÀÀ´äÀ» Àç°ËÁõÇÑ ÈÄ µÇµ¹·Á ÁÖ¾úÀ» °Í°ú °°Àº °ÍÀÎÁö Á¡°ËÇÏ ¿´´Ù.( 13.3 Àý) 2. ÃæºÐÈ÷ ½Å¼±ÇÏ´Ù.( 13.2 Àý ÂüÁ¶). ±âº»ÀûÀÎ °æ¿ì ÀÌ°ÍÀº Ŭ¶óÀ̾ðÆ®, ¼­¹ö ¹× ij½ÃÀÇ ÃÖ¼Ò ÇѵµÀÇ ½Å¼±µµ ÇÊ¿ä Á¶°ÇÀ» ¸¸Á·ÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.(14.9 Àý ÂüÁ¶). ¿ø¼­¹ö°¡ ±×·¸°Ô ¸í ½ÃÇÏ¿´À¸¸é ±×°ÍÀº ¿ø¼­¹öÀÇ ½Å¼±µµ ÇÊ¿ä Á¶°ÇÀÏ »ÓÀÌ´Ù. 3. Ŭ¶óÀ̾ðÆ® ¶Ç´Â ¼­¹öÀÇ ½Å¼±µµ ¿ä±¸°¡ À§¹ÝµÇ¾úÀ» °æ¿ì(13.1.5 ¶Ç´Â 14.45 Àý ÂüÁ¶) °æ°í ¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù. 4. ÀûÀýÇÑ 304 (Not Modified), 305 (Use Proxy), ¶Ç´Â error (4xx or 5xx) ÀÀ´ä ¸Þ½ÃÁöÀÌ´Ù. ij½Ã°¡ ¿ø¼­¹ö¿Í Åë½ÅÇÒ ¼ö ¾ø´Ù¸é Á¤È®ÇÑ Ä³½Ã´Â À§Ã³·³ ÀÀ´äÇØ¾ß ÇÑ´Ù.(ij½Ã°¡ Á¤È®ÇÑ ÀÀ´ä À» ÇÒ ¼ö ÀÖ´Ù¸é). ±×·¸Áö ¸øÇϸé ij½Ã´Â Åë½Å ½ÇÆа¡ ÀÖ¾úÀ½À» ¾Ë¸®´Â ¿¡·¯ ¶Ç´Â °æ°í¸¦ ¸® ÅÏÇØ¾ß ÇÑ´Ù. [Page 72] ij½Ã°¡ º¸Åë Ŭ¶óÀ̾ðÆ®·Î Àü´ÞÇÏ°Ô µÇ´Â ÀÀ´äÀ» ¼ö½ÅÇÏ°í(Àüü ÀÀ´ä ȤÀº 304(Not Modified)ÀÀ ´ä) ¼ö½ÅÇÑ ÀÀ´äÀÌ ´õ ÀÌ»ó ½Å¼±ÇÏÁö ¾ÊÀ¸¸é ij½Ã´Â ÀÀ´äÀ» »õ·Î¿î Warning(±×·¯³ª ±âÁ¸ÀÇ WarningÇì´õ´Â Á¦°ÅÇÏÁö ¾Ê°í)À» Ãß°¡ÇÏÁö ¾Ê°í ¿ä±¸ÇÑ Å¬¶óÀ̾ðÆ®·Î Àü´ÞÇÑ´Ù. ij½Ã´Â ÀÀ´ä ÀÌ ±× µ¿¾È ³°Àº °ÍÀÌ µÇ±â ¶§¹®¿¡ °ËÁõÇÏ·Á ½ÃµµÇؼ­´Â ¾È µÈ´Ù. ½ÃµµÇÏ¸é ¹«ÇÑ ·çÇÁ·Î ºüÁö °Ô µÉ °ÍÀÌ´Ù. Warning ¾ø´Â ³°Àº ÀÀ´äÀ» ¼ö½ÅÇÑ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â »ç¿ëÀÚ¿¡°Ô °æ°í Ç¥½Ã¸¦ ÇÒ ¼ö ÀÖ´Ù. 13.1.2 °æ°í ij½Ã°¡ óÀ½ÀÌ ¾Æ´Ï°Å³ª "ÃæºÐÈ÷ ½Å¼±ÇÏÁö"( 13.1.1 ÀýÀÇ Á¶°Ç 2ÀÇ ÀǹÌ) ¾ÊÀº ÀÀ´äÀ» ¸®ÅÏÇÒ ¶§´Â Warning Response-HeaderÀ» ÀÌ¿ëÇÏ¿© ÀÌ·¯ÇÑ ÃëÁö·Î °æ°í¸¦ ºÎÂøÇÏ¿©¾ß ÇÑ´Ù. ÀÌ °æ°í´Â Ŭ¶óÀ̾ðÆ®°¡ ÀûÀýÇÑ Á¶Ä¡¸¦ ÃëÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. °æ°í´Â ij½Ã¿Í °ü·ÃµÇ°Å³ª º°µµÀÇ ´Ù¸¥ ¸ñÀûÀ» À§ÇØ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¿¡·¯ »óÅ ÄÚµå ´ë½Å °æ °í¸¦ »ç¿ëÇÏ¿© ÀÌ ÀÀ´äÀ» ÁøÂ¥ ½ÇÆÐ¿Í ±¸º°ÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. °æ°í´Â ÀÀ´äÀÇ Åõ¸í¼ºÀ» °áÄÚ ¾àÇÏ°Ô ÇÏÁö ¾Ê±â ¶§¹®¿¡ ¾ðÁ¦³ª ij½ÃÇÒ ¼ö ÀÖ´Ù. ÀÌ´Â °æ°í¸¦ HTTP/1.0¿¡°Ô À§Çè ¾øÀÌ Àü´ÞÇÒ ¼ö ÀÖÀ½À» ÀǹÌÇÑ´Ù. ÀÌ·¯ÇÑ Ä³½Ã´Â ´Ü¼øÈ÷ °æ°í¸¦ ÀÀ´äÀÇ Entity-HeadÇìµå¿Í ÇÔ²² Àü´ÞÇÑ´Ù. °æ°í´Â 0ºÎÅÍ 99±îÁöÀÇ ¼ýÀÚ·Î ÁöÁ¤ÇÑ´Ù. ÀÌ ±Ô°ÝÀº ÄÚµå ¼ýÀÚ¿Í ÇöÀç °¢°¢¿¡ ÁöÁ¤µÈ °æ°íÀÇ Àǹ̸¦ ±ÔÁ¤ÇÏ¿© Ŭ¶óÀ̾ðÆ® ¶Ç´Â ij½Ã°¡ ¸î¸î °æ¿ì(¸ðµç °æ¿ì´Â ¾Æ´Ï´Ù.) ÀÚµ¿È­µÈ Á¶Ä¡¸¦ Ãë ÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. °æ°í´Â ¶ÇÇÑ °æ°í¹®À» ¼ö¹ÝÇÑ´Ù. °æ°í¹®Àº Àû´çÇÑ ÀÚ¿¬ ¾ð¾î(¾Æ¸¶µµ Ŭ¶óÀ̾ðÆ®ÀÇ Accept Çì´õ ¿¡ ±âÃÊÇÏ¿©)·Î ÀÛ¼ºµÉ ¼ö ÀÖÀ¸¸ç ¼±ÅÃÀûÀ¸·Î »ç¿ëµÈ ¹®ÀÚ ÁýÇÕ Ç¥½Ã¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. µ¿ÀÏÇÑ ÄÚµå ¹øÈ£ÀÇ º¹¼öÀÇ °æ°í¸¦ Æ÷ÇÔÇÏ´Â º¹¼öÀÇ °æ°í°¡ ÀÀ´ä¿¡ ºÎÂøµÉ ¼ö ÀÖ´Ù.(¿ø¼­¹ö³ª ij½Ã¿¡ ÀÇÇؼ­). ¿¹¸¦ µé¾î ¼­¹ö´Â µ¿ÀÏÇÑ °æ°í¸¦ ¿µ¾î¿Í ¹Ù½ºÅ©¾î·Î µÈ °æ°í¹®À¸·Î Á¦°øÇÒ ¼ö ÀÖ´Ù. º¹¼öÀÇ °æ°í°¡ ÀÀ´ä¿¡ ºÎÂøµÇ¾úÀ» ¶§ ÀÌ ¸ðµÎ¸¦ »ç¿ëÀÚ¿¡°Ô º¸¿© ÁÖ´Â °ÍÀº ½ÇÁúÀûÀÌÁö ¾Ê°Å ³ª ºñÇÕ¸®ÀûÀÏ ¼ö ÀÖ´Ù. ÀÌ HTTP ¹öÀüÀº ¾î¶² °æ°í¸¦ ¾î¶² ¼ø¼­¿¡ ÀÔ°¢ÇÏ¿© Ç¥½ÃÇÒ °ÍÀÎÁö °áÁ¤ÇÏ´Â ¾ö°ÝÇÑ ¿ì¼±±Ç ±ÔÄ¢Àº ¸í½ÃÇÏÁö ¾ÊÁö¸¸ ¾à°£ÀÇ ¹ß°ß¹ý(heuristics)À» Á¦¾ÈÇϱâ´Â ÇÑ´Ù. [Page 73] Warning Çì´õ¿Í ÇöÀç Á¤ÀÇµÈ °æ°í´Â 14.45 Àý¿¡ ±â¼úµÇ¾î ÀÖ´Ù. 13.1.3 Cache-Control ¸ÞÄ¿´ÏÁò HTTP/1.1ÀÇ ±âº»ÀûÀΠij½Ã ¸ÞÄ¿´ÏÁò(¼­¹ö°¡ ¸í½ÃÇÑ À¯È¿ ½Ã°£ ¹× °ËÁõÀÚ)Àº ij½Ã¿¡ ³»ÀçµÈ Áö ½Ã¸¦ ÇÏ´Â °ÍÀÌ´Ù. ¾î¶² °æ¿ì¿¡ ¼­¹ö³ª Ŭ¶óÀ̾ðÆ®´Â ³»ÀçµÈ Áö½ÃÀÚ¸¦ HTTP ij½Ã¿¡°Ô Á¦°øÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ¿ì¸®´Â Cache-Control Çì´õ¸¦ ÀÌ ¸ñÀûÀ¸·Î »ç¿ëÇÑ´Ù. Cache-Control Çì´õ´Â Ŭ¶óÀ̾ðÆ®³ª ¼­¹ö°¡ ¿ä±¸³ª ÀÀ´äÀÇ ´Ù¾çÇÑ Áö½ÃÀÚ¸¦ Àü´ÞÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ÀÌ Áö½ÃÀÚ´Â ´ë°³ÀÇ °æ¿ì ±âº» ij½Ã ¾Ë°í¸®ÁòÀ» ¹«½ÃÇÑ´Ù. º¸ÆíÀûÀÎ ¿øÄ¢À¸·Î ¸¸¾à Çì´õ °ª »çÀÌ¿¡ ºÐ¸íÇÑ Ãæµ¹ÀÌ ÀÖÀ¸¸é °¡Àå ¾ö°ÝÇÑ Çؼ®À» »ç¿ëÇØ¾ß ÇÑ´Ù.(¸»ÇÏÀÚ¸é ÀÇ¹Ì Åõ¸í¼ºÀ» °¡Àå Àß º¸Á¸ÇÒ ¼ö ÀÖ´Â °Í). ±×·¯³ª ¾î¶² °æ¿ì¿¡´Â Cache-Control Áö½ÃÀÚ°¡ ºÐ¸íÇÏ°Ô ÀÇ¹Ì Åõ ¸í¼ºÀÇ ±Ù»çÄ¡¸¦ ¾àÈ­½ÃÅ°´Â °ÍÀ¸·Î ¸í½ÃÇÒ ¼ö ÀÖ´Ù.(¿¹¸¦ µé¾î "max-stale" ¶Ç´Â "public" Cache-Control Áö½ÃÀÚ´Â 14.9 Àý¿¡ ÀÚ¼¼ÇÏ°Ô ±â¼úµÇ¾î ÀÖ´Ù. 13.1.4 ¸í¹éÇÑ »ç¿ëÀÚ ¿¡ÀÌÀüÆ® °æ°í ¸¹Àº »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â »ç¿ëÀÚ°¡ ±âº»ÀûÀΠij½Ã ¸ÞÄ¿´ÏÁòÀ» ¹«½ÃÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ¿¹¸¦ µé ¾î »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â »ç¿ëÀÚ°¡ ij½Ã µÈ ¿£ÅÍƼ(ºÐ¸íÇÏ°Ô ³°Àº ij½Ã±îÁöµµ)¸¦ °áÄÚ °ËÁõÇÏÁö ¸»µµ·Ï ¸í½ÃÇÏ´Â °ÍÀ» Çã¶ôÇÑ´Ù. ¶Ç´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ ½À°üÀûÀ¸·Î "Cache-Control: max- stale=3600" À» ¸ðµç ¿ä±¸ ³»¿¡ ÷°¡ÇÒ ¼öµµ ÀÖ´Ù. »ç¿ëÀÚ´Â Åõ¸íÇÏÁö ¾Ê´Â ¹æ½ÄÀ̳ª ºñÁ¤»óÀû À¸·Î ºñÈ¿°úÀûÀΠij½Ã¸¦ ÃÊ·¡ÇÏ´Â ¹æ½ÄÀ» È®½ÇÇÏ°Ô ¿ä±¸ÇØ¾ß ÇÑ´Ù. »ç¿ëÀÚ°¡ ±âº»ÀûÀΠij½Ã ¸ÞÄ¿´ÏÁòÀ» ¹«½ÃÇß´Ù¸é ÀÌ°ÍÀÌ ¼­¹öÀÇ Åõ¸í¼º ÇÊ¿ä Á¶°ÇÀ» ¸¸Á·½ÃÄÑ ÁÖÁö ¸øÇÒ Á¤º¸ Ç¥½Ã¸¦ ÃÊ·¡ÇÏ°Ô µÉ ¶§ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â Ç×»ó »ç¿ëÀÚ¿¡°Ô ºÐ¸íÇÏ°Ô Ç¥½ÃÇØ ÁÖ¾î¾ß ÇÑ´Ù. º¸Åë ±Ô¾àÀº »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ ÀÀ´äÀÌ ³°Àº °ÍÀÎÁö ¾Æ´ÑÁö ¿©ºÎ¸¦ °áÁ¤ÇÒ ¼ö ÀÖµµ·Ï Çϱ⠶§¹®¿¡ ½ÇÁ¦·Î ¹ß»ýÇßÀ» °æ¿ì¿¡´Â ÀÌ°ÍÀ» È­¸é¿¡ Ç¥½ÃÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ÀÌ Ç¥½Ã´Â ¹Ýµå½Ã ´ëÈ­ ¹Ú½ºÀÏ ÇÊ¿ä´Â ¾ø°í ¾ÆÀÌÄÜ(¿¹¸¦ µé¾î ºÎÆÐµÈ »ý¼± ±×¸²)À̳ª ´Ù¸¥ ½Ã°¢Àû Ç¥½Ã ÀÚÀÏ ¼öµµ ÀÖ´Ù. »ç¿ëÀÚ°¡ ij½ÃÀÇ È¿°ú¼ºÀ» ºñÁ¤»óÀûÀ¸·Î °¨¼Ò½ÃÅ°´Â ¹æ½ÄÀ¸·Î ij½Ã ¸ÞÄ¿´ÏÁòÀ» ¹«½ÃÇß´Ù¸é »ç ¿ëÀÚ ¿¡ÀÌÀüÆ®´Â °è¼ÓÇؼ­ È­¸é¿¡ À̸¦ Ç¥½Ã(¿¹¸¦ µé¾î ºÒŸ´Â ÁöÆó ±×¸²)ÇÏ¿© »ç¿ëÀÚ°¡ ºÎÁÖ ÀÇÇÏ°Ô °úµµÇÑ ÀÚ¿øÀ» ³¶ºñÇϰųª Áö³ªÄ¡°Ô ±â´Ù¸®Áö ¾Êµµ·Ï ÇØ¾ß ÇÑ´Ù. [Page 74] 13.1.5 ±ÔÄ¢ ¹× °æ°íÀÇ ¿¹¿Ü »çÇ× ¾î¶² °æ¿ì¿¡´Â ij½Ã ¿î¿µÀڴ Ŭ¶óÀ̾ðÆ®°¡ ¿ä±¸ÇÏÁö ¾Ê¾Ò¾îµµ ³°Àº ÀÀ´äÀ» ¸®ÅÏÇϵµ·Ï ȯ°æ À» ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ °áÁ¤Àº °¡º±°Ô Çؼ­´Â ¾ÈµÇÁö¸¸ °¡¿ë¼ºÀ̳ª ¼º´É ƯÈ÷ ij½Ã°¡ ¿ø ¼­¹ö¿Í ¾àÇÏ°Ô ¿¬°áµÇ¾î ÀÖÀ» ¶§´Â ÇÊ¿äÇÒ ¼öµµ ÀÖ´Ù. ij½Ã°¡ ³°Àº ÀÀ´äÀ» ¸®ÅÏÇÒ ¶§¸¶´Ù ÀÌ ·¯ÇÑ »óŸ¦ Ç¥½ÃÇØ¾ß ÇÑ´Ù.(Warning Çì´õ¸¦ ÀÌ¿ëÇÏ¿©). ÀÌ·¸°Ô ÇÏ¿© Ŭ¶óÀ̾ðÆ® ¼ÒÇÁÆ®¿þ¾î°¡ »ç¿ëÀÚ¿¡°Ô ¹®Á¦°¡ ¹ß»ýÇÒ ¼ÒÁö°¡ ÀÖÀ½À» °æ°íÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ¶ÇÇÑ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ óÀ½ ¶Ç´Â »õ·Î¿î ÀÀ´äÀ» ¾ò´Â Á¶Ä¡¸¦ ÃëÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ÀÌ·¯ÇÑ ÀÌÀ¯·Î ij½Ã´Â Ŭ¶óÀ̾ðÆ®°¡ ºÐ¸íÇÏ°Ô Ã³À½ ¶Ç´Â »õ·Î¿î ij½Ã¸¦ ¿ä±¸ÇÏ¸é ±â¼úÀûÀÎ ÀÌÀ¯³ª Á¤ Ã¥ÀûÀÎ ÀÌÀ¯¿¡ µû¸£´Â °ÍÀÌ ºÒ°¡´ÉÇÏÁö ¾Ê´Â ÇÑ ³°Àº ÀÀ´äÀ» ¸®ÅÏÇؼ­´Â ¾È µÇ´Â °ÍÀÌ´Ù. 13.1.6 Ŭ¶óÀ̾ðÆ®°¡ Á¦¾îÇÏ´Â ÇàÅ ¿ø¼­¹ö(ÃÖ¼ÒÇÑ ÀÀ´äÀÇ ½Ã°£ °æ°ú¿¡ °øÇåÇÑ °ÍÀ» °¨¾ÈÇÏ¿© Áß°£ ij½Ã)°¡ ¸¸±âÀÏ Á¤º¸ÀÇ ÁÖ¿ä ¼Ò½ºÀÏ ¶§ ¾î¶² °æ¿ì¿¡´Â Ŭ¶óÀ̾ðÆ®°¡ °ËÁõ ¾øÀÌ Ä³½Ã µÈ ÀÀ´äÀ» ¸®ÅÏÇÒ °ÍÀÎÁö ¿©ºÎ¿¡ ´ëÇÑ °áÁ¤À» Á¦¾îÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. Ŭ¶óÀ̾ðÆ®´Â ¸î¸î Cache-Control Çì´õ Áö½ÃÀÚ¸¦ »ç¿ëÇÏ¿© À̸¦ ¼öÇàÇÑ´Ù. Ŭ¶óÀ̾ðÆ®ÀÇ ¿ä±¸´Â °ËÁõµÇÁö ¾ÊÀº ÀÀ´äÀ» Á¢¼öÇÒ ¼ö ÀÖ´Â ÃÖ´ëÇÑÀÇ °æ°ú½Ã°£À» ¸í½ÃÇÑ´Ù. ÀÌ °ªÀ» Á¦·Î·Î ¼³Á¤Çϸé ij½Ã°¡ ¸ðµç ÀÀ´äÀ» Àç°ËÁõÇϵµ·Ï ÇÑ´Ù. Ŭ¶óÀ̾ðÆ®´Â ÀÀ´äÀÌ ¸¸·á µÇ±â Àü¿¡ ³²¾Æ ÀÖ´Â ÃÖ¼ÒÇÑÀÇ ½Ã°£À» ¸í½ÃÇÑ´Ù. ÀÌ µÎ ¼±Åà »çÇ× ¸ðµÎ ij½ÃÀÇ ÇàÅ¿¡ ´ëÇÑ Á¦ÇÑÀ» Áõ´ë½ÃÅ°±â ¶§¹®¿¡ ij½ÃÀÇ ÀÇ¹Ì Åõ¸í¼º ±Ù»çÄ¡¸¦ Ãß°¡·Î ¿ÏÈ­½ÃÄÑ ÁÖÁö´Â ¸øÇÑ´Ù. Ŭ¶óÀ̾ðÆ®´Â ¶ÇÇÑ ÃÖ´ëÇÑ ¾î¶°ÇÑ ¼öÁرîÁöÀÇ ³°Àº ÀÀ´äÀ» Á¢¼öÇÒ °ÍÀÓÀ» ¸í½ÃÇÒ ¼ö ÀÖ´Ù. ÀÌ °ÍÀº ij½Ã¿¡ ´ëÇÑ Á¦ÇÑÀ» ¿ÏÈ­½ÃÄÑ Áֱ⠶§¹®¿¡ ¿ø¼­¹ö°¡ ¸í½ÃÇÑ ÀÇ¹Ì Åõ¸í¼º¿¡ ´ëÇÑ Á¦ÇÑ »ç Ç×À» À§¹ÝÇÒ ¼öµµ ÀÖÁö¸¸ Á¢¼ÓÀÌ ´ÜÀýµÈ »óÅ¿¡¼­ÀÇ ¿î¿ë, ºÒ·®ÇÑ Á¢¼Ó¿¡ Á÷¸éÇÏ¿© ³ôÀº °¡¿ë ¼ºÀ» Áö¿øÇϱâ À§ÇØ ÇÊ¿äÇÒ ¼öµµ ÀÖ´Ù. 13.2 ¸¸±âÀÏ ¸ðµ¨ 13.2.1 ¼­¹ö°¡ ¸í½ÃÇÑ ¸¸±âÀÏ HTTP ij½Ã´Â ¿ø¼­¹ö·Î ¿ä±¸¸¦ ¹ß¼ÛÇÏ´Â °ÍÀ» ¿ÏÀüÈ÷ ÇÇÇÒ ¼ö ÀÖÀ» ¶§ ÃÖ»óÀ¸·Î ÀÛµ¿ÇÑ´Ù. ¿ä ±¸¸¦ ÇÇÇÏ´Â ÁÖ¿ä ¸ÞÄ¿´ÏÁòÀº ¿ø¼­¹ö°¡ ºÐ¸íÇÏ°Ô ÇØ´ç ÀÀ´äÀÌ °è¼ÓµÇ´Â ¿ä±¸¸¦ ¸¸Á·½Ãų ¼ö ÀÖ´Ù´Â °ÍÀ» Ç¥½ÃÇÏ´Â ¹Ì·¡ÀÇ ¸¸·á ½Ã°£À» Á¦°øÇÏ´Â °ÍÀÌ´Ù. ´Ù¸¥ ¸»·Î Ç¥ÇöÇϸé ij½Ã°¡ ¸ÕÀú ¼­¹ö¿Í Á¢ÃËÇÏÁö ¾Ê°íµµ »õ·Î¿î ÀÀ´äÀ» ¸®ÅÏÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. [Page 75] ¿ì¸®°¡ ±â´ëÇÏ´Â °ÍÀº ¼­¹ö°¡ ¸¸±âÀÏÀÌ µµÂø Àü¿¡ ¿£ÅÍƼ°¡ Àǹ̻óÀ¸·Î Áß´ëÇÏ°Ô º¯È­ÇÏÁö ¾Ê À» °ÍÀ̶ó´Â ¹ÏÀ½À¸·Î ¹Ì·¡ÀÇ ºÐ¸íÇÑ ¸¸·á ½Ã°£À» ºÎ¿©ÇÏ´Â °ÍÀÌ´Ù. ÀÌ·¸°Ô ÇÏ¸é ¼­¹öÀÇ À¯È¿ ½Ã°£ÀÌ ½ÅÁßÇÏ°Ô ¼±ÅÃµÈ ÇÑ ´ë°³ÀÇ °æ¿ì ÀÇ¹Ì Åõ¸í¼ºÀ» º¸Á¸ÇÑ´Ù. À¯È¿ÀÏ ¸ÞÄ¿´ÏÁòÀº ij½Ã¿¡¼­ ¾òÀº ÀÀ´ä¿¡¸¸ Àû¿ëµÇ¸ç ¿ä±¸ÇÑ Å¬¶óÀ̾ðÆ®¿¡°Ô Á÷Á¢ÀûÀ¸·Î Àü´Þ µÇ´Â ù ÀÀ´ä¿¡´Â Àû¿ëµÇÁö ¾Ê´Â´Ù. ¿ø¼­¹ö°¡ ¸ðµç ¿ä±¸¸¦ °ËÁõÇϱâ À§ÇØ Àǹ̻óÀ¸·Î Åõ¸íÇÑ Ä³½Ã¸¦ ¿ä±¸ÇÑ´Ù¸é °ú°Å ½ÃÁ¡ÀÇ À¯È¿ ½Ã°£À» ºÎ¿©ÇÒ ¼öµµ ÀÖ´Ù. ÀÌ´Â ÀÀ´äÀÌ Ç×»ó ³°Àº °ÍÀ̱⠶§¹®¿¡ °è¼ÓµÇ´Â ¿ä±¸¿¡ ÀÌ°ÍÀ» »ç ¿ëÇϱâ À§Çؼ­´Â ¹Ýµå½Ã ¸ÕÀú °ËÁõÀ» ÇØ¾ß ÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. °ËÁõÀ» °­Á¦·Î ¿ä±¸ÇÏ´Â Á¦ ÇÑÀûÀÎ ¹æ¹ý¿¡ °üÇÑ Ãß°¡ Á¤º¸´Â 14.9.4 ÀýÀ» ÂüÁ¶ÇÑ´Ù. ¿ø¼­¹ö°¡ HTTP/1.1 ij½Ã°¡ ¸ðµç ¿ä±¸¸¦ °ËÁõÇϵµ·Ï ÇÏ·Á¸é ¾î¶² ¹æ½ÄÀ¸·Î ȯ°æÀÌ ¼³Á¤µÇ¾úµç "must-revalidate" Cache-Control Áö½ÃÀÚ(14.9 Àý ÂüÁ¶)¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. ¼­¹ö´Â Expires Çì´õ ¶Ç´Â Cache-Control Çì´õÀÇ max-age Áö½ÃÀÚ¸¦ »ç¿ëÇÏ¿© ºÐ¸íÇÏ°Ô À¯È¿ ½Ã °£À» ¸í½ÃÇÑ´Ù. À¯È¿ ½Ã°£Àº »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ ÀÚ¿øÀ» È­¸é¿¡ Ç¥½ÃÇϰųª °»½ÅÇϵµ·Ï ¸¸µå´Â µ¥ »ç¿ëÇÒ ¼ö ¾ø´Ù. ÀÌ Àǹ̴ ij½Ã ¸ÞÄ¿´ÏÁò¿¡¸¸ Àû¿ëµÇ¸ç ÀÌ·¯ÇÑ ¸ÞÄ¿´ÏÁòÀº ÇØ´ç ÀÚ¿ø¿¡ ´ëÇÑ »õ·Î¿î ¿ä ±¸°¡ ½ÃÀ۵ǾúÀ» ¶§ ÀÚ¿øÀÇ À¯È¿ÀÏ »óŸ¸À» Á¡°ËÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ij½Ã¿Í history ¸ÞÄ¿´ÏÁòÀÇ Â÷ÀÌÁ¡¿¡ ´ëÇÑ ¼³¸íÀº 13.13 ÀýÀ» Âü°íÇÑ´Ù. 13.2.2 ½º½º·Î À¯È¿ÀÏÀ» ãÀ½(Heuristic Expiration) ¿ø¼­¹ö°¡ ¾ðÁ¦³ª ¸í¹éÇÑ À¯È¿ ½Ã°£À» Á¦°øÇÏ´Â °ÍÀÌ ¾Æ´Ï¹Ç·Î HTTP ij½Ã´Â ÀüÇüÀûÀ¸·Î ±×·² µíÇÑ À¯È¿ ½Ã°£À» ÁüÀÛÇϱâ À§ÇØ ´Ù¸¥ Çì´õ °ª(Last-Modified ½Ã°£°ú °°Àº)À» »ç¿ëÇÏ´Â ¾Ë°í¸® ÁòÀ» È°¿ëÇÏ´Â ¹ß°ß¹ý(heuristic) À¯È¿ ½Ã°£À» ÇÒ´çÇÑ´Ù. HTTP/1.1 ±Ô°ÝÀº »ó¼¼ÇÑ ¾Ë°í¸®ÁòÀ» Á¦ °øÇÏÁö´Â ¾ÊÁö¸¸ °á°ú¿¡ ´ëÇÑ ÃÖ¾ÇÀÇ °æ¿ì Á¦ÇÑ »çÇ×À» ºÎ°úÇÏ°í ÀÖ´Ù. ¹ß°ß¹ý¿¡ ÀÇÇÑ À¯È¿ ½Ã°£Àº ÀÇ¹Ì Åõ¸í¼º ¶§¹®¿¡ Á¤È®ÇÏÁö ¾ÊÀ» ¼öµµ Àֱ⠶§¹®¿¡ Á¶½ÉÇؼ­ »ç¿ëÇØ¾ß ÇÏ¸ç ¿ì¸®´Â ¿ø¼­¹ö°¡ °¡´ÉÇÑ ÇÑ ºÐ¸íÇÑ À¯È¿ ½Ã°£À» Á¦°øÇϵµ·Ï ±Ç°íÇÑ´Ù. [Page 76] 13.2.3 °æ°ú ½Ã°£ °è»ê(Age Calculations) ij½Ã µÈ ¿£Æ®¸®°¡ »õ·Î¿î °ÍÀÎÁö È®ÀÎÇϱâ À§Çؼ­ ij½Ã´Â ij½ÃÀÇ °æ°ú ½Ã°£ÀÌ ½Å¼±ÇÑ ±â°£ (freshness lifetime)À» ÃÊ°úÇß´ÂÁö ¾Ë ÇÊ¿ä°¡ ÀÖ´Ù. ½Å¼±ÇÑ ±â°£À» °è»êÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼ­´Â 13.2.4 Àý¿¡¼­ ÅäÀÇÇÏ°í ÀÌ Àý¿¡¼­´Â ÀÀ´äÀ̳ª ij½Ã ¿£Æ®¸®ÀÇ °æ°ú ½Ã°£À» °è»êÇÏ´Â ¹æ¹ýÀ» ¼³ ¸íÇÑ´Ù. ÀÌ ¼³¸í¿¡¼­ ¿ì¸®´Â "Áö±Ý" À̶ó´Â ¿ë¾î¸¦ "°è»êÀ» ¼öÇàÇϴ ȣ½ºÆ® ½Ã°èÀÇ ÇöÀç °ª"À» ÀÇ¹Ì ÇÏ´Â °ÍÀ¸·Î »ç¿ëÇÑ´Ù. HTTP ¸¦ »ç¿ëÇϴ ȣ½ºÆ®, ƯÈ÷ ¿ø¼­¹ö¿Í ij½Ã¸¦ ¿î¿µÇÏ´Â ¼­¹ö´Â NTP [28] ³ª À¯»ç ±Ô¾àÀ» »ç¿ëÇÏ¿© ÀÚ½ÅÀÇ ½Ã°è¸¦ ±¹Á¦ÀûÀ¸·Î Á¤È®ÇÑ ½Ã°£ ±âÁØ°ú µ¿½ÃÈ­ÇØ¾ß ÇÑ´Ù. HTTP/1.1Àº ¿ø¼­¹ö°¡ ¸ðµç ÀÀ´ä¿¡ ÀÀ´äÀÌ »ý¼ºµÈ ½Ã°£À» ¾Ë·Á ÁÖ´Â Date Çì´õ¸¦ Æ÷ÇÔÇÏ¿© ¹ß ¼ÛÇÒ °ÍÀ» ¿ä±¸ÇÑ´Ù´Â Á¡¿¡ ÁÖÀÇÇÑ´Ù. ¿ì¸®´Â "date_value"¶ó´Â ¿ë¾î¸¦ Date Çì´õÀÇ °ªÀ» »çÄ¢ ¿¬»ê¿¡ ÀûÇÕÇÑ Çü½ÄÀ¸·Î Ç¥½ÃÇÏ´Â °ÍÀ¸·Î »ç¿ëÇÑ´Ù. HTTP/1.1Àº Age Response-HeaderÀ» »ç¿ëÇÏ¿© ij½Ã »çÀÌÀÇ °æ°ú ½Ã°£ Á¤º¸¸¦ Àü´ÞÇÑ´Ù. Age Çì ´õ °ªÀº ÀÀ´äÀÌ ¿ø¼­¹ö¿¡¼­ »ý¼ºµÈ ÀÌÈÄÀÇ ¹ß¼ÛÀÚÀÇ ¿¹ÃøÀÌ´Ù. ¿ø¼­¹ö°¡ °ËÁõÇÑ Ä³½Ã µÈ ÀÀ´ä ÀÇ °æ¿ì Age °ªÀº ¿ø·¡ÀÇ ÀÀ´äÀÌ ¾Æ´Ñ Àç°ËÁõ ½Ã°£¿¡ ±âÃÊÇÑ´Ù. ÇÙ½ÉÀûÀ¸·Î Age °ªÀº ¿ø¼­¹ö·ÎºÎÅÍÀÇ °æ·Î¸¦ µû¶ó¼­ ÀÀ´äÀÌ °¢ ij½Ã¿¡ º¸°üµÇ¾î ÀÖ´ø ½Ã°£ÀÇ ÃÑÇÕ ¹× ³×Æ®¿öÅ© °æ·Î¸¦ µû¶ó¼­ À̵¿µÇ¾ú´ø ½Ã°£ÀÇ ¾çÀÌ´Ù. ¿ì¸®´Â "date_value"¶ó´Â ¿ë¾î¸¦ Date Çì´õÀÇ °ªÀ» »çÄ¢¿¬»ê¿¡ ÀûÇÕÇÑ Çü½ÄÀ¸·Î Ç¥½ÃÇÏ´Â °ÍÀ¸ ·Î »ç¿ëÇÑ´Ù. ÀÀ´äÀÇ °æ°ú ½Ã°£Àº ¿ÏÀüÈ÷ µ¶¸³ÀûÀÎ µÎ °¡Áö ¹æ¹ýÀ¸·Î °è»êÇÒ ¼ö ÀÖ´Ù. 1. ÇöÀç ¸¶À̳ʽº date_value, Áö¿ª ½Ã°è°¡ ¿ø¼­¹ö ½Ã°è¿Í ºñ±³Àû Àß µ¿½ÃÈ­ µÇ¾î ÀÖÀ» °æ¿ì. °á°ú °ªÀÌ ¸¶À̳ʽºÀÌ¸é °á°ú¸¦ Á¦·Î·Î ´ëüÇÑ´Ù. 2. age_value, ÀÀ´ä °æ·Î¿¡ µû¸¥ ¸ðµç ij½Ã°¡ HTTP/1.1À» ±¸ÇöÇÒ °æ¿ì. ÀÀ´äÀ» ¼ö½ÅÇÏ¿´À» ¶§ ÀÀ´äÀÇ °æ°ú ½Ã°£À» °è»êÇϱâ À§ÇÑ µÎ °¡ÁöÀÇ µ¶¸³ÀûÀÎ ¹æ¹ýÀ» °¡Áö°í ÀÖ´Ù°í °¡Á¤ÇÏ¸é ¿ì¸®´Â ±×°ÍµéÀ» ´ÙÀ½Ã³·³ °áÇÕÇÒ ¼ö ÀÖ´Ù. corrected_received_age = max(now - date_value, age_value) ¿ì¸®°¡ °ÅÀÇ µ¿½ÃÈ­ µÈ ½Ã°è¿Í ¸ðµç HTTP/1.1 °æ·Î¸¦ °¡Áö°í ÀÖ´Ù¸é ½Å·ÚÇÒ ¸¸ÇÑ(Á¶½É½º·¯¿î) °á°ú¸¦ ¾òÀ» ¼ö ÀÖ´Ù. [Page 77] ÀÌ·¯ÇÑ ¼öÁ¤Àº °æ·Î¸¦ µû¶ó °¢°¢ÀÇ HTTP/1.1 ij½Ã¿¡ Àû¿ëµÇ±â ¶§¹®¿¡ °æ·Î¿¡ HTTP/1.0 ij½Ã °¡ ÀÖÀ¸¸é ¼öÁ¤µÈ ¼ö½Å °æ°ú ½Ã°£À» ¼ö½ÅÇϴ ij½ÃÀÇ ½Ã°è°¡ °ÅÀÇ µ¿½ÃÈ­ µÇ¾î ÀÖ´Â ÇÑ °è»ê ÇÒ ¼ö ÀÖ´Ù. ¾çÆí ¸ðµÎÀÇ ½Ã°è°¡ µ¿½ÃÈ­ µÉ ÇÊ¿ä´Â ¾øÀ¸¸ç(¹Ù¶÷Á÷Çϱâ´Â ÇÏÁö¸¸) ½Ã°è¸¦ ¸í¹é ÇÏ°Ô µ¿½ÃÈ­(synchronization) ÇÏ´Â ÀýÂ÷´Â ¾ø´Ù. ³×Æ®¿öÅ©°¡ ºÎ°úÇÑ Áö¿¬¶§¹®¿¡ ¼­¹ö°¡ ÀÀ´äÀ» »ý¼ºÇÑ ½Ã°£ ¶Ç´Â ´ÙÀ½ÀÇ ¿ÜºÎ ¹æÇâ ij½Ã³ª Ŭ ¶óÀ̾ðÆ®°¡ ¼ö½ÅÇÑ ½Ã°£ ÀÌÈÄ·Î Áß¿äÇÑ Áß°£ ½Ã°£ÀÌ °æ°úÇßÀ» ¼öµµ ÀÖ´Ù. ¼öÁ¤ÇÏÁö ¾ÊÀ¸¸é ÀÌ ·¯ÇÑ Áö¿¬Àº ºÎÀûÀýÇÏ°Ô ÂªÀº °æ°ú½Ã°£À» ÃÊ·¡ÇÒ ¼öµµ ÀÖ´Ù. ¸®ÅÏ µÈ Age °ªÀ» »ý»êÇÏ´Â ¿ä±¸´Â ¹Ýµå½Ã ÇØ´ç Age °ªÀÌ »ý»êµÇ±â ÀÌÀü¿¡ ½ÃÀ۵Ǿî¾ß Çϱ⠶§¹®¿¡ ¿ä±¸°¡ ½ÃÀÛµÈ ½Ã°£À» ±â·ÏÇÔÀ¸·Î½á ³×Æ®¿öÅ©°¡ ºÎ°úÇÑ Áö¿¬ ½Ã°£À» °áÁ¤ÇÒ ¼ö ÀÖ´Ù. µû¶ó¼­ Age °ªÀÌ ¼ö½ÅµÇ¸é ¹Ýµå½Ã ÀÀ´äÀÌ ¼ö½ÅµÈ ½Ã°£ÀÌ ¾Æ´Ñ ¿ä±¸°¡ ½ÃÀÛµÈ ½Ã°£°ú »ó´ëÀû À¸·Î Çؼ®ÇØ¾ß ÇÑ´Ù. ÀÌ ¾Ë°í¸®ÁòÀº ¾ó¸¶³ª ¸¹Àº Áö¿¬ ½Ã°£ÀÌ ¹ß»ýÇߴ°¡¿¡ °ü°è¾øÀÌ Á¶½É½º ·¯¿î ÇàŸ¦ ³º°Ô µÈ´Ù. µû¶ó¼­ ¿ì¸®´Â ´ÙÀ½°ú °°ÀÌ °è»êÇÑ´Ù. corrected_initial_age = corrected_received_age + (now - request_time) ¿©±â¼­ "request_time"Àº ÀÌ ÀÀ´äÀ» À̲ø¾î ³½ ÀÀ´äÀÌ ¹ß¼ÛµÈ ½Ã°£(Áö¿ª ½Ã°èÀÇ ½Ã°£¿¡ µû¶ó)ÀÌ ´Ù. ij½Ã°¡ ÀÀ´äÀ» ¼ö½ÅÇßÀ» ¶§ °æ°ú ½Ã°£ °è»ê ¾Ë°í¸®ÁòÀÇ ¿ä¾àÀº ´ÙÀ½°ú °°´Ù. /* * age_value * ´Â AgeÀÇ °ªÀÌ´Ù: ij½Ã°¡ ÀÌ ÀÀ´ä°ú ´õºÒ¾î ¼ö½ÅÇÑ Çì´õ * date_value * ´Â ¿ø¼­¹öÀÇ Date °ªÀÌ´Ù: Çì´õ * request_time * ´Â ÀÌ Ä³½Ã µÈ ÀÀ´äÀ» ¸¸µé¾î ³½ ¿ä±¸¸¦ ij½Ã°¡ ¿ä±¸ÇÑ * (Áö¿ª)½Ã°£ÀÌ´Ù. * response_time * ´Â ij½Ã°¡ ÀÀ´äÀ» ¼ö½ÅÇÑ (Áö¿ª)½Ã°£ÀÌ´Ù. * now * ´Â ÇöÀç (Áö¿ª) ½Ã°£ÀÌ´Ù. */ apparent_age = max(0, response_time - date_value); [Page 78] corrected_received_age = max(apparent_age, age_value); response_delay = response_time - request_time; corrected_initial_age = corrected_received_age + response_delay; resident_time = now - response_time; current_age = corrected_initial_age + resident_time; ij½Ã°¡ ÀÀ´äÀ» ¼Û½ÅÇÏ¿´À» ¶§ ij½Ã´Â ÀÀ´äÀÌ Áö¿ªÀûÀ¸·Î º¸°üµÇ¾ú´ø ½Ã°£ÀÇ ¾çÀ» corrected_initial_age¿¡ Ãß°¡ÇÏ¿©¾ß ÇÑ´Ù. ±×·± ´ÙÀ½ ij½Ã´Â ÀÌ ÇÕ»êµÈ °æ°ú ½Ã°£À» Age Çì´õ ¸¦ ÀÌ¿ëÇÏ¿© ´ÙÀ½ ¼ö½ÅÃø ij½Ã·Î Àü´ÞÇØ¾ß ÇÑ´Ù. Ŭ¶óÀ̾ðÆ®´Â ÀÀ´äÀÌ Ã³À½À̶ó´Â °ÍÀ» ½Å·Ú¼º ÀÖ°Ô ¸»ÇÒ ¼ö ¾øÀ½À» ÁÖÀÇÇØ¾ß ÇÑ´Ù. ±×·¯³ª Age Çì´õ°¡ ÀÖ´Ù´Â °ÍÀº ÀÀ´äÀÌ ºÐ¸í óÀ½Àº ¾Æ´Ï¶ó´Â °ÍÀ» Ç¥½ÃÇÑ´Ù. ¶ÇÇÑ ÀÀ´äÀÇ Date°¡ Ŭ¶óÀ̾ðÆ®ÀÇ Áö¿ª ¿ä±¸ ½Ã°£º¸´Ù ¾Õ¼³ °æ¿ì ÇØ´ç ÀÀ´äÀº ¾Æ¸¶µµ ù ÀÀ´äÀÌ ¾Æ´Ò °ÍÀÌ´Ù.(½É °¢ÇÒ Á¤µµ·Î ½Ã°èÀÇ ½Ã°£ÀÌ ºø³ª°¡Áö ¾Ê¾ÒÀ» ¶§) 13.2.4 À¯È¿ÀÏ °è»ê ÀÀ´äÀÌ ½Å¼±ÇÑÁö ³°Àº °ÍÀÎÁö °áÁ¤Çϱâ À§ÇØ ¿ì¸®´Â °æ°úµÈ ½Ã°£°ú ½Å¼±ÇÑ ±â°£(freshness lifetime)À» ºñ±³ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. °æ°úµÈ ½Ã°£Àº 13.2.3 Àý¿¡¼­ ¼³¸íÇÑ ´ë·Î °è»êÇÑ´Ù. ÀÌ ÀýÀº ½Å¼±ÇÑ ±â°£À» °è»êÇÏ´Â ¹æ¹ýÀ» ±â¼úÇÏ°í ÀÀ´äÀÌ ¸¸·áµÇ¾ú´ÂÁö °áÁ¤ÇÑ´Ù. ¾Æ·¡ÀÇ ¼³¸í¿¡¼­ °ª Àº »çÄ¢¿¬»ê ¼öÇà¿¡ ÀûÇÕÇÑ ¾î¶°ÇÑ Çü½ÄÀ¸·Îµµ Ç¥ÇöµÉ ¼ö ÀÖ´Ù. ¿ì¸®´Â "expires_value" ¶ó´Â ¿ë¾î¸¦ Expires Çì´õ °ªÀ» Ç¥½ÃÇÏ´Â °ÍÀ¸·Î »ç¿ëÇÑ´Ù. ¶ÇÇÑ ¿ì¸®´Â "max_age_value" ¶ó´Â ¿ë¾î¸¦ ÀÀ´ä(14.10 Àý ÂüÁ¶)¿¡ ÀÖ´Â Cache-Control Çì´õÀÇ max-age Áö½ÃÀÚ °¡ °¡Áö°í ÀÖ´Â ÀûÀýÇÑ ÃÊ °ªÀ» ÀǹÌÇÏ´Â °ÍÀ¸·Î »ç¿ëÇÑ´Ù. max-age Áö½ÃÀÚ´Â Expiresº¸´Ù ¿ì¼±±ÇÀ» °®´Â´Ù. µû¶ó¼­ ÀÀ´ä¿¡ max-age°¡ ÀÖÀ¸¸é °è»êÀº °£ ´ÜÈ÷ ´ÙÀ½°ú °°´Ù. freshness_lifetime = max_age_value ±×·¸Áö ¾Ê°í Expires°¡ ÀÀ´ä¿¡ ÀÖÀ¸¸é °è»êÀº: freshness_lifetime = expires_value - date_value ¸ðµÐ Á¤º¸°¡ ¿ø¼­¹ö¿¡¼­ ¿À±â ¶§¹®¿¡ µÎ °è»ê ¹æ¹ý ¸ðµÎ Á¤È®ÇÏÁö ¾Ê´Â ½Ã°è¿¡ Ãë¾àÇÏÁö ¾Ê´Ù ´Â Á¡¿¡ À¯ÀÇÇÑ´Ù. Expires ¹×Cache-Control: max-age ¸ðµÎ°¡ ÀÀ´ä¿¡ ¾øÀ¸¸é ÇØ´ç ÀÀ´äÀº ij½Ã¿¡ ´ëÇÑ Á¦¾à »çÇ×À» Æ÷ÇÔÇÏÁö ¾Ê´Â´Ù. [Page 79] ÀÌ ¶§ ij½Ã´Â ¹ß°ß¹ý »ç¿ëÇÏ¿© ½Å¼±ÇÑ ±â°£À» »êÃâÇÑ´Ù. °ªÀÌ 24½Ã°£º¸´Ù Ŭ ¶§´Â ij½Ã´Â Warning 13À», ÀÌ °æ°í°¡ Ãß°¡µÇÁö ¾Ê¾Ò´Ù¸é °æ°ú ½Ã°£ÀÌ 24½Ã°£ ÀÌ»óÀÎ, ÀÀ´ä¿¡ ÷°¡ÇØ¾ß ÇÑ ´Ù. ¶ÇÇÑ ÀÀ´äÀÌ Last-Modified ½Ã°£À» Æ÷ÇÔÇÏ°í ÀÖ´Ù¸é ¹ß°ß¹ý¿¡ ÀÇÇÑ À¯È¿ÀÏ °ªÀº ±× ½Ã°£ ÀÌÈÄ ÀÇ Áß°£ ½Ã°£ÀÇ ÇÑ ºÎºÐº¸´Ù Ä¿¼­´Â ¾È µÈ´Ù. ÀÌ ºÎºÐÀÇ ÀüÇüÀûÀÎ ¼³Á¤°ªÀº 10%°¡ µÉ °ÍÀÌ´Ù. ÀÀ´äÀÌ ¸¸·áµÇ¾ú´ÂÁö °áÁ¤Çϱâ À§ÇÑ °è»êÀº ±²ÀåÈ÷ ´Ü¼øÇÏ´Ù: response_is_fresh = (freshness_lifetime > current_age) 13.2.5 À¯È¿ÀÏ °ªÀ» ¸íÈ®ÇÏ°Ô Çϱâ À¯È¿ÀÏ °ªÀÌ ³«ÃµÀûÀ¸·Î ºÎ¿©µÇ±â ¶§¹®¿¡ µÎ ij½Ã°¡ ³»¿ëÀÌ ´Ù¸¥ µ¿ÀÏÇÑ ÀÚ¿ø¿¡ ´ëÇÑ ½Å¼±µµ °ªÀ» Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. Á¶È¸ ÀÛ¾÷À» ¼öÇàÇϴ Ŭ¶óÀ̾ðÆ®°¡ ¿ä±¸¿¡ ´ëÇØ ÀÌ¹Ì ÀÚü ij½Ã¿¡¼­ ½Å¼±Çß´ø óÀ½ÀÌ ¾Æ´Ñ ÀÀ´äÀ» ¼ö½ÅÇÏ¸é ±âÁ¸ ij½Ã ¿£Æ®¸®ÀÇ Date Çì´õ´Â »õ·Î¿î ÀÀ´äÀÇ Dateº¸´Ù »õ·Î¿î °ÍÀÌ´Ù. ÀÌ ¶§ Ŭ¶óÀ̾ðÆ®´Â ÀÀ´äÀ» ¹«½ÃÇÒ ¼ö ÀÖ´Ù. ¸¸¾à ±×·¸´Ù¸é Ŭ¶óÀ̾ðÆ®´Â ¿ø¼­¹ö°¡ Á¡°ËÇϵµ·Ï °­¿äÇϱâ À§ÇØ "Cache-Control: max-age=0" Áö½ÃÀÚ(14.9 Àý ÂüÁ¶)¸¦ Æ÷ÇÔÇÑ ¿ä±¸¸¦ ´Ù½Ã ½ÃµµÇÒ ¼ö ÀÖ´Ù. ij½Ã°¡ »óÀÌÇÑ °ËÁõÀÚÀÇ µ¿ÀÏÇÑ Ç¥ÇöÀ» À§ÇÑ µÎ°³ÀÇ »õ·Î¿î ÀÀ´äÀ» °¡Áö°í ÀÖÀ¸¸é °¡Àå ÃÖ±Ù ÀÇ Date Çì´õ¸¦ °¡Áö°í ÀÖ´Â °ÍÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. ÀÌ »óȲÀº ij½Ã°¡ ´Ù¸¥ ij½Ã·ÎºÎÅÍ ÀÀ´äÀ» ¸ðÀ» ¼ö(pooling) ÀÖ°í Ŭ¶óÀ̾ðÆ®°¡ ºÐ¸íÈ÷ »õ·Î¿î ij½Ã ¿£Æ®¸®¸¦ °»½Å ¶Ç´Â Àç°ËÁõÇϵµ·Ï ¿ä ±¸ÇÒ ¼ö Àֱ⠶§¹®¿¡ ¹ß»ýÇÒ ¼ö ÀÖ´Ù. 13.2.6 º¹¼öÀÇ ÀÀ´äÀ» ¸íÈ®ÇÏ°Ô Çϱâ Ŭ¶óÀ̾ðÆ®°¡ º¹¼öÀÇ °æ·Î¸¦ ÅëÇØ ÀÀ´äÀ» ¼ö½ÅÇÒ ¼ö Àֱ⠶§¹®¿¡(¾î¶² ÀÀ´äÀº ÇÑ Ä³½Ã ¼¼Æ®¸¦ ÅëÇؼ­ ¿À°í ´Ù¸¥ ÀÀ´äÀº ´Ù¸¥ ij½Ã ¼¼Æ®¸¦ ÅëÇØ ¿Ã ¼ö Àֱ⠶§¹®¿¡) Ŭ¶óÀ̾ðÆ®´Â ÀÀ´äÀ» ¿ø ¼­¹ö°¡ ¹ß¼ÛÇÑ ¼ø¼­¿Í ´Ù¸£°Ô ¼ö½ÅÇÒ ¼öµµ ÀÖ´Ù. ÀÌÀüÀÇ ÀÀ´äÀÌ ¾ÆÁ÷µµ ºÐ¸í »õ·Ó´Ù ÇÒÁö¶óµµ ¿ì¸®´Â Ŭ¶óÀ̾ðÆ®°¡ °¡Àå ÃÖ±Ù¿¡ »ý¼ºµÈ ÀÀ´äÀ» »ç¿ëÇϱ⠹ٶõ´Ù. ³ªÁßÀÇ ÀÀ´äÀÌ ÀǵµÀûÀ¸·Î ´õ ºü¸¥ À¯È¿ ½Ã°£À» °¡Áö°í ÀÖÀ» ¼ö Àֱ⠶§¹®¿¡ ¿£Æ®¸® ű׳ª À¯È¿ÀÏ °ª ¸ðµÎ ÀÀ´äÀÇ ¼ø¼­¿¡ ´ëÇÏ¿© ¿µÇâÀ» ¹ÌÄ¥ ¼ö ¾ø´Ù. ±×·¯³ª HTTP/1.1 ±Ô°ÝÀº ¸ðµç ÀÀ ´ä¿¡ Date Çì´õ¸¦ Àü¼ÛÇØ¾ß Çϸç Date °ªÀº 1 ÃÊ ´ÜÀ§·Î ¼ø¼­°¡ ¸Å°ÜÁ®¾ß ÇÑ´Ù. [Page 80] Ŭ¶óÀ̾ðÆ®°¡ ij½Ã ¿£Æ®¸®ÀÇ Àç°ËÁõÀ» ½ÃµµÇÒ ¶§, ¼ö½ÅÇÏ´Â ÀÀ´äÀÌ ±âÁ¸ ¿£Æ®¸®ÀÇ Date Çì´õ º¸´Ù ´õ ¿À·¡µÈ °Íó·³ º¸ÀÌ´ÂDate Çì´õ¸¦ Æ÷ÇÔÇÒ ¶§ Ŭ¶óÀ̾ðÆ®´Â ¿ä±¸¸¦ ¹«Á¶°ÇÀûÀ¸·Î ¹Ý º¹ÇØ¾ß ÇÏ¸ç ´ÙÀ½À» Æ÷ÇÔÇØ¾ß ÇÑ´Ù. Cache-Control: max-age=0 Áß°£ ij½Ã¿¡°Ô ÀÚ½ÅÀÇ »çº»À» ¿ø¼­¹ö¿Í Á÷Á¢ÀûÀ¸·Î °ËÁõÇϵµ·Ï °­¿äÇÑ´Ù. Cache-Control: no-cache Áß°£ ij½Ã¿¡°Ô ¿ø¼­¹ö¿¡¼­ »õ·Î¿î »çº»À» ¾òµµ·Ï °­¿äÇÑ´Ù. Date °ªÀÌ µ¿µîÇϸé Ŭ¶óÀ̾ðÆ®´Â ¾çÂÊ ÀÀ´äÀ» ¸ðµÎ »ç¿ëÇÒ ¼ö ÀÖ´Ù. (¶Ç´Â ÃæºÐÈ÷ ½ÅÁßÇÏ´Ù¸é »õ·Î¿î ÀÀ´äÀ» ¿ä±¸ÇÒ ¼ö ÀÖ´Ù.) ¼­¹ö´Â µÎ ÀÀ´äÀÇ À¯È¿ÀÏÀÌ ÁßøµÈ´Ù¸é Ŭ¶óÀ̾ðÆ®°¡ µ¿ÀÏÇÑ ½Ã°£¿¡ »ý¼ºµÈ ÀÀ´ä Áß¿¡¼­ Çϳª¸¦ °ú°¨ÇÏ°Ô ¼±ÅÃÇÒ ¼ö ÀÖ´Ù°í ¹Ï¾î¼­´Â Àý´ë ¾È µÈ´Ù. 13.3 °ËÁõ ¸ðµ¨ ij½Ã°¡ Ŭ¶óÀ̾ðÆ® ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î »ç¿ëÇÏ°íÀÚ ÇÏ´Â ³°Àº ¿£Æ®¸®¸¦ °¡Áö°í ÀÖÀ» ¶§ ij ½Ã µÈ ¿£Æ®¸®¸¦ ¾ÆÁ÷µµ »ç¿ëÇÒ ¼ö ÀÖ´ÂÁö ¾Ë¾Æº¸±â À§Çؼ­ Ŭ¶óÀ̾ðÆ®´Â ¸ÕÀú ¿ø¼­¹ö(»õ·Î¿î ÀÀ´äÀ» °¡Áø Áß°£ ij½ÃÀÏ ¼öµµ ÀÖ´Ù.)¸¦ Á¡°ËÇØ¾ß ÇÑ´Ù. ¿ì¸®´Â ÀÌ°ÍÀ» ij½Ã ¿£Æ®¸®¸¦ "°ËÁõÇÑ ´Ù"°í ÇÑ´Ù. ¿ì¸®´Â ij½Ã µÈ ¿£Æ®¸®ÀÇ »óÅ°¡ ÁÁÀ» ¶§ Àüü ÀÀ´äÀ» ÀçÀü¼ÛÇØ¾ß ÇÏ´Â ¿À¹öÇìµå ¸¦ °®±æ ¿øÇÏÁö ¾Ê±â ¶§¹®¿¡, ¶ÇÇÑ Ä³½Ã µÈ ¿£Æ®¸®°¡ À¯È¿ÇÏÁö ¾ÊÀ» ¶§ ¿Õº¹ ¿©ÇàÀ» ÇØ¾ß ÇÏ ´Â ¿À¹öÇìµå¸¦ °®±â ¿øÇÏÁö ¾Ê±â ¶§¹®¿¡ HTTP/1.1 ±Ô¾àÀº Á¶°ÇÀûÀÎ method »ç¿ëÀ» Áö¿øÇÑ´Ù. Á¶°ÇÀû method¸¦ Áö¿øÇÏ´Â ÇÙ½É ±Ô¾à ±â´ÉÀº "ij½Ã °ËÁõÀÚ"¿¡ °ü·ÃµÈ °ÍµéÀÌ´Ù. ¿ø¼­¹ö°¡ ¿Ï ÀüÇÑ ÀÀ´äÀ» »ý¼ºÇÒ ¶§ ¼­¹ö´Â ÀÏÁ¾ÀÇ °ËÁõÀÚ¸¦ ºÎÂøÇϸç ÀÌ°ÍÀº ij½Ã ¿£Æ®¸®¿Í ÇÔ²² º¸°üµÈ ´Ù. Ŭ¶óÀ̾ðÆ®(»ç¿ëÀÚ ¿¡ÀÌÀüÆ® ¶Ç´Â ÇÁ¶ô½Ã ij½Ã)°¡ ij½Ã ¿£Æ®¸®¸¦ °¡Áö°í ÀÖ´Â ÀÚ¿ø¿¡ ´ëÇÑ Á¶°ÇÀûÀÎ ¿ä±¸¸¦ ÇÒ ¶§ Ŭ¶óÀ̾ðÆ®´Â ¿ä±¸¿¡ °ü·ÃµÈ °ËÁõÀÚ¸¦ Æ÷ÇÔÇÑ´Ù. ±×·± ´ÙÀ½ ¼­¹ö´Â ÇØ´ç °ËÁõÀÚ¸¦ ¿£ÅÍƼÀÇ ÇöÀç °ËÁõÀÚ¿¡ ºñÃß¾î Á¡°ËÇÑ´Ù. ¼­·Î ÀÏÄ¡ÇÏ¸é ¼­ ¹ö´Â Ư¼ö »óÅ ÄÚµå(´ë°³ÀÇ °æ¿ì 304 (Not Modified))¿Í Entity-Body°¡ ¾ø´Â °ÍÀ¸·Î ÀÀ´äÇÑ´Ù. µû¶ó¼­ ¿ì¸®´Â °ËÁõÀÚ°¡ ÀÏÄ¡Çϸé Àüü ÀÀ´ä Àü¼ÛÀ» ÇÇÇÒ ¼ö ÀÖ°í ÀÏÄ¡ÇÏÁö ¾ÊÀ¸¸é Ãß°¡ÀûÀÎ ¿Õº¹ ¿©ÇàÀ» ÇÇÇÒ ¼ö ÀÖ´Ù. [Page 81] ÁÖÀÇ : °ËÁõÀÚ°¡ ÀÏÄ¡ÇÏ´ÂÁö ¿©ºÎ¸¦ °áÁ¤ÇÏ´Â µ¥ »ç¿ëµÇ´Â ºñ±³ ±â´ÉÀº 13.3.3 Àý¿¡ ±ÔÁ¤µÇ ¾î ÀÖ´Ù. HTTP/1.1¿¡¼­ Á¶°ÇÀûÀÎ ¿ä±¸´Â ¿ä±¸°¡ method(´ë°³ GET)¸¦ Á¶°ÇÀûÀ¸·Î º¯°æ½ÃÅ°´Â Ư¼ö Çì´õ (°ËÁõÀÚ¸¦ Æ÷ÇÔÇÏ´Â)¸¦ °¡Áö°í ÀÖ´Â °æ¿ì¸¦ Á¦¿ÜÇÏ°í´Â µ¿ÀÏÇÑ ÀÚ¿ø¿¡ ´ëÇÑ Á¤»óÀûÀÎ ¿ä±¸¿Í Á¤È®ÇÏ°Ô µ¿ÀÏÇÑ °Íó·³ º¸ÀδÙ. ±Ô¾àÀº ±àÁ¤Àû ¹× ºÎÁ¤Àû ÀǹÌÀÇ Cache-Validation Á¶°ÇÀ» Æ÷ÇÔÇÑ´Ù. ÀÌ´Â °ËÁõÀÚ°¡ ÀÏÄ¡ÇÏ´Â °æ¿ì ¹× ÀÏÄ¡ÇÏÁö ¾Ê´Â °æ¿ì ¸ðµÎ method¸¦ ¼öÇàÇϵµ·Ï ¿ä±¸ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. ÁÖÀÇ : °ËÁõÀÚ°¡ ¾ø´Â ÀÀ´äµµ Cache-Control Áö½ÃÀÚ°¡ ºÐ¸íÇÏ°Ô ±ÝÁöÇÏÁö ¾Ê´Â ÇÑ Ä³½ÃÇÒ ¼ö ÀÖÀ¸¸ç ¸¸·áµÉ ¶§±îÁö »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª ij½Ã´Â ¿£ÅÍƼ¿¡ ´ëÇÑ °ËÁõÀÚ°¡ ¾øÀ¸¸é Á¶°Ç ÀûÀÎ Á¶È¸¸¦ ÇÒ ¼ö ¾ø´Ù. À̴ ij½Ã°¡ ¸¸·áµÈ ´ÙÀ½¿¡´Â °»½ÅÇÒ ¼ö ¾ø´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. 13.3.1 ÃÖÁ¾ °»½Å ³¯Â¥(Last-modified Dates) Last-Modified Entity-Header ÇÊµå °ªÀº Á¾Á¾ ij½Ã °ËÁõÀÚ·Î »ç¿ëµÈ´Ù. °£´ÜÈ÷ ¸»Çϸé ij½Ã ¿£Æ® ¸®´Â ¿£ÅÍƼ°¡ Last-Modified °ª ÀÌÈÄ¿¡ º¯°æµÇÁö ¾Ê¾ÒÀ¸¸é À¯È¿ÇÑ °ÍÀ¸·Î °£Áֵȴٴ °ÍÀÌ´Ù. 13.3.2 ¿£ÅÍƼ ÅÂ±× Ä³½Ã °ËÁõÀÚ(Validators) ETag Entity-Header ÇÊµå °ª, ¿£ÅÍƼ ű״ "ºÒÅõ¸íÇÑ" ij½Ã °ËÁõÀÚ¸¦ Á¦°øÇÑ´Ù. ÀÌ °ËÁõÀÚ´Â º¯°æµÈ ³¯Â¥¸¦ ÀúÀåÇÏ´Â °ÍÀÌ ºÒÆíÇÑ »óȲ¿¡¼­, HTTP ³¯Â¥ °ªÀ» 1ÃÊ µ¿¾È ºÐ¼®ÇÏ´Â °ÍÀÌ Ãæ ºÐÇÏÁö ¾ÊÀº »óȲ¿¡¼­ ¶Ç´Â ¿ø¼­¹ö°¡ º¯°æµÈ ³¯Â¥¸¦ »ç¿ëÇÏ¿© ¹ß»ýÇϴ ƯÁ¤ ¿ª¼³À» ÇÇÇÏ°íÀÚ ÇÏ´Â »óȲ¿¡¼­ Á»´õ ½Å·Ú¼º ÀÖ´Â °ËÁõÀ» °¡´ÉÇÏ°Ô ÇÑ´Ù. ¿£ÅÍƼ ű״ 3.11 Àý¿¡ ±â¼úµÇ¾î ÀÖ°í ¿£ÅÍƼ ű׿¡ »ç¿ëµÇ´Â Çì´õ´Â 14.20, 14.25, 14.26 ¹× 14.43 Àý¿¡ ±â¼úµÇ¾î ÀÖ´Ù. 13.3.3 ¾àÇÑ/°­ÇÑ °ËÁõÀÚ ¿ø¼­¹ö ¹× ij½Ã ¸ðµÎ´Â °ËÁõÀÚ°¡ µ¿ÀÏÇÑ ¿£ÅÍƼ¸¦ Ç¥ÇöÇÏ´ÂÁö »óÀÌÇÑ ¿£ÅÍƼ¸¦ Ç¥½ÃÇÏ´ÂÁö °á Á¤Çϱâ À§ÇØ µÎ °ËÁõÀÚ¸¦ ºñ±³Çϱ⠶§¹®¿¡ ¿ì¸®´Â ¿£ÅÍƼ(Entity-Body ¶Ç´Â ¸ðµç Entity-Header) °¡ ¾î¶² ½ÄÀ¸·Îµç º¯°æµÇ¸é ¿¬°üµÈ °ËÁõÀÚµµ ¶ÇÇÑ º¯°æµÇ¸®¶ó ¿¹»óÇÒ ¼ö ÀÖ´Ù. ÀÌ°ÍÀÌ »ç½ÇÀÌ ¶ó¸é ¿ì¸®´Â ÀÌ °ËÁõÀÚ¸¦ "°­ÇÑ °ËÁõÀÚ"¶ó°í ºÎ¸¥´Ù. ±×·¯³ª ¼­¹ö°¡ ¿£ÅÍƼÀÇ ¹Ì¹ÌÇÑ Ãø¸éÀÌ º¯È­ÇÒ ¶§º¸´Ù´Â Àǹ̻óÀ¸·Î Áß´ëÇÑ º¯È­¿¡ ´ëÇؼ­¸¸ °ËÁõÀÚ¸¦ º¯°æÇÏ·Á ÇÏ´Â °æ¿ì°¡ ÀÖÀ» ¼ö ÀÖ´Ù. [Page 82] ÀÚ¿øÀÌ º¯È­ÇÒ ¶§¸¶´Ù º¯È­ÇÏÁö ¾Ê´Â °ËÁõÀÚ°¡ "¾àÇÑ °ËÁõÀÚ" ÀÌ´Ù. ¿£ÅÍƼ ű״ ´ë°³ "°­ÇÑ °ËÁõÀÚ"ÀÌÁö¸¸ ±Ô¾àÀº ¿£ÅÍƼ ű׸¦ "¾àÇÑ" °ÍÀ¸·Î ű׸¦ ºÙÀÏ ¼ö ÀÖ´Â ¸ÞÄ¿´ÏÁòÀ» Á¦°øÇÑ´Ù. ¿ì¸®´Â °­ÇÑ °ËÁõÀÚ¸¦ ¿£ÅÍƼÀÇ ÀÏ ºÎºÐÀÌ¶óµµ º¯ÇÏ¸é µû¶ó¼­ º¯ÇÏ´Â °ÍÀÌ°í ¾àÇÑ °ªÀº ¿£ÅÍƼÀÇ Àǹ̰¡ º¯È­ÇÒ ¶§¸¶´Ù º¯È­ÇÑ´Ù°í »ý°¢ÇÒ ¼ö ÀÖ´Ù. ´Ù¸£°Ô Ç¥ÇöÇÏ¸é °­ÇÑ °ËÁõÀڴ ƯÁ¤ ¿£ÅÍƼ¿¡ »ç¿ëµÇ´Â ½Äº°ÀÚÀÇ ÀϺκÐÀ¸·Î ¾àÇÑ °ËÁõÀÚ´Â Àǹ̻ó À¸·Î µ¿ÀÏÇÑ ¿£ÅÍƼ ¼¼Æ®¸¦ À§ÇÑ ½Äº°ÀÚÀÇ ÀϺζó°í »ý°¢ÇÒ ¼ö ÀÖ´Ù. ÁÖÀÇ : °­ÇÑ °ËÁõÀÚÀÇ ÇÑ ¿¹´Â ¿£ÅÍƼ°¡ º¯ÇÒ ¶§¸¶´Ù ºÒº¯ ±â¾ïÀåÄ¡ ³»¿¡¼­ Áõ°¡µÇ´Â Á¤¼ö ÀÌ´Ù. ¿£ÅÍƼÀÇ º¯°æ ½Ã°£Àº ÀÏ ÃÊ µ¿¾ÈÀÇ ºÐ¼®À¸·Î Ç¥½ÃµÈ´Ù¸é ¾àÇÑ °ËÁõÀÚÀÏ ¼ö ÀÖ´Ù. ÀÚ¿øÀÌ ÀÏ ÃÊ µ¿¾È µÎ ¹ø º¯°æµÉ ¼ö Àֱ⠶§¹®ÀÌ´Ù. ¾àÇÑ °ËÁõÀÚ¸¦ Áö¿øÇÏ´Â °ÍÀº ¼±Åà »çÇ×ÀÌ´Ù. ±×·¯³ª ¾àÇÑ °ËÁõÀÚ´Â µ¿ÀÏÇÑ °´Ã¼¿¡ ´ëÇÑ Á» ´õ È¿°úÀûÀΠij½Ã¸¦ °¡´ÉÇÏ°Ô ÇÑ´Ù. ¿¹¸¦ µé¾î »çÀÌÆ®ÀÇ ¹æ¹® Ä«¿îÅÍ´Â 2 - 3ÀÏ ¶Ç´Â ÁÖ¸¶´Ù °»½ÅÇصµ ÃæºÐÇÏ´Ù. ¶ÇÇÑ ÀÌ ±â°£ µ¿¾ÈÀÇ °ªÀº ÃæºÐÈ÷ µ¿ÀÏÇÑ °ÍÀ¸·Î °£ÁÖÇÒ ¼ö ÀÖ´Ù. °ËÁõÀÚ¸¦ »ç¿ëÇÏ´Â °ÍÀº Ŭ¶óÀ̾ðÆ®°¡ ¿ä±¸¸¦ »ý¼ºÇÏ¿© °ËÁõ Çì´õ Çʵ忡 °ËÁõÀÚ¸¦ Æ÷ÇÔÇÒ ¶§ ¶Ç´Â ¼­¹ö°¡ µÎ °ËÁõÀÚ¸¦ ºñ±³ÇÏ´Â ¶§ÀÌ´Ù. °­ÇÑ °ËÁõÀÚ´Â ¾î¶² »óȲ¿¡¼­µçÁö À¯¿ëÇÏ´Ù. ¾àÇÑ °ËÁõÀÚ´Â ¿£ÅÍƼ°¡ ¿Ïº®ÇÏ°Ô µ¿ÀÏÇÏÁö ¾Ê¾Æ µµ µÇ´Â »óȲ¿¡¼­ À¯¿ëÇÏ´Ù. ¿¹¸¦ µé¾î °­ÇÑ °ËÁõÀÚ¸¸ÀÌ ÇϺÎ-¿µ¿ª °Ë»ö¿¡ À¯¿ëÇÏ´Ù. ±×·¸Áö ¾Ê´Ù¸é Ŭ¶óÀ̾ðÆ®´Â ³»ºÎÀûÀ¸·Î ÀÏÄ¡ÇÏÁö ¾ÊÀº ¿£ÅÍƼ·Î Á¾°áµÉ °ÍÀÌ´Ù. HTTP/1.1 ±Ô¾àÀÌ °ËÁõÀÚ¿¡ ±ÔÁ¤ÇÑ À¯ÀÏÇÑ ±â´ÉÀº ºñ±³ÀÌ´Ù. ºñ±³ »óȲÀÌ ¾àÇÑ °ËÁõÀÚÀÇ »ç¿ë À» Çã¿ëÇϴ°¡ ¿©ºÎ¿¡ µû¶ó µÎ °³ÀÇ °ËÁõÀÚ ºñ±³ ±â´ÉÀÌ ÀÖ´Ù. ? °­ÇÑ ºñ±³ ±â´É : µ¿µîÇÑ °ÍÀ¸·Î °£ÁֵDZâ À§Çؼ­ µÎ °ËÁõÀÚ´Â ¸ðµç ¸é¿¡¼­ µ¿ÀÏÇØ¾ß ÇÏ ¸ç ¸ðµÎ ´Ù ¾àÇÑ °ËÁõÀÚÀÌ¸é ¾È µÈ´Ù. ? ¾àÇÑ ºñ±³ ±â´É : µ¿µîÇÑ °ÍÀ¸·Î °£ÁֵDZâ À§Çؼ­ µÎ °ËÁõÀÚ´Â ¸ðµç ¸é¿¡¼­ µ¿ÀÏÇØ¾ß ÇÏ ³ª µÑ ÁßÀÇ Çϳª ¶Ç´Â ¸ðµÎ°¡ °á°ú¿¡ ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê°í "¾àÇÑ" °ÍÀ¸·Î ű׸¦ ºÙÀÏ ¼ö ÀÖ´Ù. ¾àÇÑ ºñ±³ ±â´ÉÀº °£´ÜÇÑ(ÇϺΠ¿µ¿ªÀÌ ¾Æ´Ñ) GET ¿ä±¸¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Ù. °­ÇÑ ºñ±³ ¿ä±¸´Â ¸ðµç ´Ù¸¥ °æ¿ì¿¡ ¹Ýµå½Ã »ç¿ëÇØ¾ß ÇÑ´Ù. [Page 83] ¿£ÅÍƼ ű״ ºÐ¸íÇÏ°Ô ¾àÇÑ °ÍÀ¸·Î ű׸¦ ºÙÀÌÁö ¾Ê´Â ÇÑ °­ÇÏ´Ù. 3.11 Àý¿¡ ¿£ÅÍƼ ű×ÀÇ Àǹ̷ÐÀÌ ÀÖ´Ù. ¿ä±¸ÀÇ °ËÁõÀÚ·Î »ç¿ëµÇ¾úÀ» ¶§ Last-Modified ½Ã°£Àº ´ÙÀ½ÀÇ ±ÔÄ¢À» »ç¿ëÇÏ¿© °­ÇÑ °ÍÀ¸·Î ¿¬ ¿ªÇÒ ¼ö ¾ø´Â ÇÑ ÇÔÃàÀûÀÎ Àǹ̿¡¼­ ¾àÇÏ´Ù. ? ¿ø¼­¹ö°¡ ¿£ÅÍƼÀÇ ½ÇÁ¦ÀûÀÎ ÇöÀç °ËÁõÀÚ¿Í °ËÁõÀÚ¸¦ ºñ±³ÇÏ°í Àְųª ? ¿ø¼­¹ö°¡ ½Å·ÚÇÒ ¼ö ÀÖÀ» Á¤µµ·Î °ü·ÃµÈ ¿£ÅÍƼ°¡ Á¦½ÃµÈ °ËÁõÀÚ°¡ ´Ù·ç°í ÀÖ´Â µ¿¾È µÎ ¹ø º¯°æµÇÁö ¾Ê¾Ò´Ù´Â »ç½ÇÀ» ¾Ë ¼ö ÀÖ´Ù. ? Ŭ¶óÀ̾ðÆ®°¡ ¿¬°üµÈ ¿£ÅÍƼÀÇ Ä³½Ã ¿£Æ®¸®¸¦ °¡Áö°í Àֱ⠶§¹®¿¡ If-Modified-Since ¶Ç´Â If-Unmodified-Since Çì´õ¿¡¼­ °ËÁõÀÚ¸¦ »ç¿ëÇÏ·Á°í ÇÑ´Ù. ? ÇØ´ç ij½Ã ¿£Æ®¸®°¡ ¿ø¼­¹ö°¡ ¿ø·¡ÀÇ ÀÀ´äÀ» ¹ß¼ÛÇÑ ½Ã°£À» ¾Ë·Á ÁÖ´Â Date °ªÀ» Æ÷ÇÔÇÏ °í ÀÖ´Ù. ? Á¦½ÃµÈ Last-Modified ½Ã°£ÀÌ ÃÖ¼ÒÇÑ Date °ªº¸´Ù 60ÃÊ ÀÌÀüÀÌ´Ù. ¶Ç´Â ? Áß°£ ij½Ã°¡ °ËÁõÀÚ¿Í ¿£ÅÍƼ¿¡ »ç¿ëµÇ´Â ij½Ã ¿£Æ®¸®¿¡ ÀúÀåµÈ °ËÁõÀÚ¸¦ ºñ±³ÇÏ°í ÀÖ´Â ÁßÀÌ´Ù. ? ÇØ´ç ij½Ã ¿£Æ®¸®°¡ ¿ø¼­¹ö°¡ ¿ø·¡ÀÇ ÀÀ´äÀ» ¹ß¼ÛÇÑ ½Ã°£À» ¾Ë·Á ÁÖ´Â Date °ªÀ» Æ÷ÇÔÇÏ °í ÀÖ´Ù. ? Á¦½ÃµÈ Last-Modified ½Ã°£ÀÌ ÃÖ¼ÒÇÑ Date °ªº¸´Ù 60ÃÊ ÀÌÀüÀÌ´Ù. ÀÌ method´Â ¿ø¼­¹ö°¡ µÎ °³ÀÇ ´Ù¸¥ ÀÀ´äÀ» °°Àº ½Ã°£¿¡ ¹ß¼ÛÇßÀ¸³ª µÑ ¸ðµÎ µ¿ÀÏÇÑ Last- Modified ½Ã°£À» °¡Áö°í ÀÖÀ¸¸é ÀÌ ÀÀ´ä Áß ÃÖ¼ÒÇÑ Çϳª´Â Date °ªÀÌ Last-Modified ½Ã°£°ú µ¿ µîÇÏ´Ù´Â »ç½Ç¿¡ ±âÃÊÇÏ°í ÀÖ´Ù. ÀÓÀÇÀûÀÎ 60ÃÊ Á¦ÇÑÀº Date ¿Í Last-Modified °ªÀÌ º°µµÀÇ ½Ã °è¿¡¼­ »ý¼ºµÇ¾ú°Å³ª ÀÀ´äÀ» ÁغñÇÏ´Â µ¿¾È ´Ù¸¥ ½Ã°£´ë¿¡ »ý¼ºµÇ¾úÀ» °¡´É¼º¿¡ ´ëºñ½ÃÄÑ ÁØ ´Ù. ±¸Çö ¹æ¹ý¿¡ 60ÃÊ°¡ ³Ê¹« ª´Ù°í »ý°¢µÇ¸é 60ÃÊ ÀÌ»óÀÇ °ªÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. Ŭ¶óÀ̾ðÆ®°¡ Last-Modified ½Ã°£°ú ºÒÅõ¸íÇÏÁö ¾ÊÀº °ËÁõÀÚ¸¦ °¡Áö°í ÀÖ´Â °ª¿¡ ´ëÇÏ¿© ÇϺΠ¿µ¿ª Á¶È¸¸¦ ¼öÇàÇÏ°í ½ÍÀ¸¸é Last-Modified ½Ã°£ÀÌ ¿©±â¿¡¼­ ±â¼úÇÑ Àǹ̿¡¼­ °­ÇÒ °æ¿ì¿¡¸¸ ¼öÇàÇÒ ¼ö ÀÖ´Ù. [Page 84] Àüü-º»¹® GET ¿ä±¸ ÀÌ¿ÜÀÇ Cache-Conditional ¿ä±¸¸¦ ¼ö½ÅÇÏ°í Àִ ij½Ã ¶Ç´Â ¿ø¼­¹ö´Â ¹Ýµå ½Ã Á¶°ÇÀ» Æò°¡Çϱâ À§ÇØ °­ÇÑ ºñ±³ ±â´ÉÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ ±ÔÄ¢Àº HTTP/1.1 ij½Ã¿Í Ŭ¶óÀ̾ðÆ®°¡ HTTP/1.0 ¼­¹ö¿¡¼­ ȹµæµÈ °ª¿¡ ´ëÇÏ¿© ÇϺΠ¿µ¿ª Á¶È¸¸¦ ¾ÈÀüÇÏ°Ô ¼öÇàÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. 13.3.4 ¿£ÅÍƼ ÅÂ±×¿Í ÃÖÁ¾ °»½Å ³¯Â¥¸¦ »ç¿ëÇÒ ¶§¸¦ °áÁ¤ÇÏ´Â ±ÔÄ¢ ¾î¶°ÇÑ ¸ñÀûÀÌ°Ç ´Ù¾çÇÑ °ËÁõÀÚ À¯ÇüÀ» »ç¿ëÇØ¾ß ÇÒ ¶§ÀÇ ¿ø¼­¹ö, Ŭ¶óÀ̾ðÆ® ¹× ij½Ã¸¦ À§ÇÑ ÀÏ·ÃÀÇ ±ÔÄ¢°ú ±Ç°í¾ÈÀ» äÅÃÇÏ¿´´Ù. HTTP/1.1 ¿ø¼­¹ö: ? »õ·Î¿î °ÍÀ» »ý¼ºÇÏ´Â °ÍÀÌ ºÒ°¡´ÉÇÏÁö ¾Ê´Â ÇÑ ¿£ÅÍƼ ÅÂ±× °ËÁõÀÚ¸¦ ¹ß¼ÛÇØ¾ß ÇÑ´Ù. ? ¼º´É¿¡ ´ëÇØ °í·ÁÇßÀ» ¶§ ¾àÇÑ ¿£ÅÍƼ ű׸¦ »ç¿ëÇصµ µÉ ¶§ ¶Ç´Â °­ÇÑ ¿£ÅÍƼ ű׸¦ ¹ß¼ÛÇÏ´Â °ÍÀÌ ½ÇÇö¼ºÀÌ ¾øÀ» ¶§ °­ÇÑ ¿£ÅÍƼ ÅÂ±× ´ë½Å ¾àÇÑ ¿£ÅÍƼ ű׸¦ ¹ß¼ÛÇÒ ¼öµµ ÀÖ´Ù. ? If-Modified-Since Çì´õÀÇ ³¯Â¥¸¦ »ç¿ëÇϸé ÀÇ¹Ì Åõ¸í¼ºÀÌ Æı«µÉ À§Ç輺ÀÌ ½É°¢ÇÑ ¹®Á¦¸¦ ÃÊ·¡ÇÏÁö ¾Ê´Â ÇÑ, Last-Modified°ªÀ» ¹ß¼ÛÇÏ´Â °ÍÀÌ °¡´ÉÇÏ¸é °ªÀ» º¸³»¾ß ÇÑ´Ù. ´Þ¸® Ç¥ÇöÇϸé HTTP/1.1 ¿ø¼­¹öÀÇ ¹Ù¶÷Á÷ÇÑ ÇàÅ´ °­ÇÑ ¿£ÅÍƼ ÅÂ±×¿Í Last-Modified °ª ¸ðµÎ ¸¦ ¹ß¼ÛÇÏ´Â °ÍÀÌ´Ù. ÇÕ¹ýÀûÀÌ¸é °­ÇÑ ¿£ÅÍƼ ű״ °ü·ÃµÈ ¿£ÅÍƼ °ªÀÌ ¾î¶² ½ÄÀ¸·Îµç º¯°æµÉ ¶§¸¶´Ù º¯°æµÇ¾î¾ß ÇÑ´Ù. ¾àÇÑ ¿£ÅÍƼ ű״ °ü·ÃµÈ ¿£ÅÍƼ°¡ Àǹ̻ó »ó´çÈ÷ º¯°æµÇ¾úÀ¸¸é º¯°æµÇ¾î¾ß ÇÑ´Ù. ÁÖÀÇ : Àǹ̻ó Åõ¸íÇÑ Ä³½Ã¸¦ Á¦°øÇϱâ À§Çؼ­ ¿ø¼­¹ö´Â µÎ °³ÀÇ º°µµ ¿£ÅÍƼ¿¡ ƯÁ¤ÇÑ °­ ÇÑ ¿£ÅÍƼ °ªÀ» Àç»ç¿ëÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù. ij½Ã ¿£Æ®¸®´Â À¯È¿ ½Ã°£¿¡ °ü°è¾øÀÌ ÀÓÀÇÀûÀ¸·Î ±ä ±â°£µ¿¾È Áö¼ÓµÉ ¼ö ÀÖ´Ù. µû¶ó¼­ °ú°ÅÀÇ Æ¯Á¤ ½ÃÁ¡¿¡ ȹµæÇÑ °ËÁõÀÚ¸¦ »ç¿ëÇϴ ij½Ã°¡ °áÄÚ ¿£ÅÍƼ¸¦ °ËÁõÇÏ·Á ½ÃµµÇÏÁö ¾Ê´Â´Ù°í ¿¹»óÇÏ´Â °ÍÀº ÀûÀýÇÏÁö ¾Ê´Ù. HTTP/1.1 Ŭ¶óÀ̾ðÆ®: ? ¼­¹ö°¡ ¿£ÅÍƼ ű׸¦ Á¦°øÇÏ¿´À¸¸é Ŭ¶óÀ̾ðÆ®´Â ¾î¶°ÇÑ Cache-Conditional ¿ä±¸¿¡¼­µç Áö ±× ¿£ÅÍƼ ű׸¦ ¹Ýµå½Ã »ç¿ëÇØ¾ß ÇÑ´Ù.(If-Match ¶Ç´Â If-None-Match¸¦ »ç¿ë) [Page 85] ? ¿ø¼­¹ö°¡ ´ÜÁö Last-Modified °ª¸¸À» Á¦°øÇßÀ» ¶§ Ŭ¶óÀ̾ðÆ®´Â ÇϺΠ¿µ¿ªÀÌ ¾Æ´Ñ Cache-Conditional ¿ä±¸¿¡ ±× °ªÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. (If-Modified-Since¸¦ »ç¿ë) ? HTTP/1.0 ¿ø¼­¹ö°¡ Last-Modified °ª¸¸À» Á¦°øÇßÀ» ¶§ Ŭ¶óÀ̾ðÆ®´Â ±× °ªÀ» ÇϺΠ¿µ¿ª ÀÇ Cache-Conditional ¿ä±¸¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Ù.(If-Unmodified-Since:¸¦ »ç¿ë). »ç¿ëÀÚ ¿¡ÀÌÀü Æ®´Â Àå¾Ö°¡ ÀÖÀ» °æ¿ì ÀÌ ±â´ÉÀ» ÁßÁö½Ãų ¹æ¹ýÀ» Á¦°øÇØ¾ß ÇÑ´Ù. ? ¿ø¼­¹ö°¡ ¿£ÅÍƼ ÅÂ±× ¹× Last-Modified °ª ¸ðµÎ¸¦ Á¦°øÇßÀ» ¶§ Ŭ¶óÀ̾ðÆ®´Â ¾çÂÊ °ËÁõ ÀÚ¸¦ Cache-Conditional ¿ä±¸¿¡ »ç¿ëÇØ¾ß ÇÑ´Ù. ÀÌ°ÍÀº HTTP/1.1 ¹× HTTP/1.0 ¸ðµÎ°¡ Àû ÀýÈ÷ ÀÀ´äÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ¿ä±¸¸¦ Á¢¼öÇÏÀÚ¸¶ÀÚ HTTP/1.1 ij½Ã´Â Ŭ¶óÀ̾ðÆ®ÀÇ Ä³½Ã ¿£Æ®¸®°¡ ij½Ã ÀÚ½ÅÀÇ Ä³½Ã ¿£Æ® ¸®¿Í ÀÏÄ¡ÇÏ´ÂÁö ¿©ºÎ¸¦ °áÁ¤ÇÒ ¶§ °¡Àå Á¦ÇÑÀûÀÎ °ËÁõÀÚ¸¦ ¹Ýµå½Ã »ç¿ëÇØ¾ß ÇÑ´Ù. ÀÌ°ÍÀº ¿ä±¸°¡ ¿£ÅÍƼ ÅÂ±×¿Í last-modified-date °ËÁõÀÚ(If-Modified-Since ¶Ç´Â If-Unmodified-Since) ¸ð µÎ¸¦ Æ÷ÇÔÇÏ°í ÀÖÀ» ¶§¸¸ ¹®Á¦½Ã µÈ´Ù. ³í¸®¿¡ ´ëÇÑ ÁÖ¼® : ÀÌ ±ÔÄ¢ µÚÀÇ ÀϹÝÀûÀÎ ¿øÄ¢Àº HTTP/1.1 ¼­¹ö¿Í Ŭ¶óÀ̾ðÆ®´Â ÀÚ½ÅÀÇ ÀÀ´ä ¹× ¿ä±¸¿¡¼­ ÃÖ´ëÇÑ ÁßøµÇÁö ¾Ê´Â Á¤º¸¸¦ Àü´ÞÇØ¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù. ÀÌ Á¤º¸¸¦ ¼ö½ÅÇÏ ´Â HTTP/1.1 ½Ã½ºÅÛÀº ÀÚ½ÅÀÌ ¼ö½ÅÇÏ´Â °ËÁõÀÚ¿¡ °üÇÑ °¡Àå Á¶½É½º·¯¿î °¡Á¤À» ÇÒ °ÍÀÌ´Ù. HTTP/1.0 Ŭ¶óÀ̾ðÆ®¿Í ij½Ã´Â ¿£ÅÍƼ ű׸¦ ¹«½ÃÇÒ °ÍÀÌ´Ù. ÀϹÝÀûÀ¸·Î ÀÌ ½Ã½ºÅÛµéÀÌ ¼ö ½ÅÇϰųª »ç¿ëÇÏ´Â Last-Modified °ªÀº Åõ¸íÇϰųª È¿°úÀûÀΠij½Ã¸¦ Áö¿øÇϱ⠶§¹®¿¡ HTTP/1.1 ¿ø¼­¹ö´Â Last-Modified °ªÀ» Á¦°øÇØ¾ß ÇÑ´Ù. HTTP/1.0 ½Ã½ºÅÛÀÌ Last-Modified °ªÀ» °ËÁõÀÚ·Î »ç¿ëÇÏ¿© ½É°¢ÇÑ ¹®Á¦¸¦ ÃÊ·¡ÇÏ´Â ±ØÈ÷ µå¹® °æ¿ì¿¡´Â HTTP/1.1 ¿ø¼­¹ö´Â °ªÀ» Á¦ °øÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù. 13.3.5 °ËÁõÀ» ÇÏÁö ¾Ê´Â Á¶°Ç¹ý ¿£ÅÍƼ ÅÂ±× µÚÀÇ ¿øÄ¢Àº ¼­ºñ½º ÀúÀÛÀÚ¸¸ÀÌ ÀÚ¿øÀÇ Àǹ̸¦ ÃæºÐÈ÷ ¾Ë¾Æ¼­ ÀûÇÕÇÑ Ä³½Ã °ËÁõ ¸ÞÄ¿´ÏÁòÀ» ¼±ÅÃÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. ¹ÙÀÌÆ®-µ¿µî(byte-equality) ºñ±³º¸´Ù ´õ º¹ÀâÇÑ °ËÁõÀÚ ºñ ±³ ±â´ÉÀ» ¿­°ÅÇÏ¸é ¾ÆÁÖ º¹ÀâÇÏ°Ô µÉ °ÍÀÌ´Ù. µû¶ó¼­ ij½Ã ¿£Æ®¸®¸¦ °ËÁõÇÒ ¸ñÀûÀ¸·Î ´Ù¸¥ ¾î¶² Çì´õÀÇ ºñ±³(HTTP/1.0°úÀÇ È£È¯¼ºÀ» À§ÇØ Last-Modified´Â Á¦¿Ü) µµ »ç¿ëÇؼ­´Â ¾È µÈ´Ù. 13.4 ÀÀ´äÀ» ij½ÃÇÒ ¼ö ÀÖ´Â Á¤µµ(Cachability) Cache-Control (14.9 Àý) Áö½ÃÀÚ°¡ Ưº°È÷ ÅëÁ¦ÇÏÁö ¾Ê´Â ÇÑ Ä³½Ã ½Ã½ºÅÛÀº ¾ðÁ¦³ª ¼º°øÀûÀÎ ÀÀ ´äÀ» ij½Ã ¿£Æ®¸®·Î¼­ ÀúÀåÇÒ ¼ö ÀÖ°í, »õ·Î¿î °ÍÀ̶ó¸é °ËÁõ ¾øÀÌ ¸®ÅÏÇÒ ¼ö ÀÖÀ¸¸ç ¼º°øÀû ÀÎ °ËÁõ ÈÄ¿¡ ¸®ÅÏÇÒ ¼öµµ ÀÖ´Ù. [Page 86] ij½Ã °ËÁõÀÚµµ ¾ø°í ÀÀ´ä°ú °ü·ÃµÈ ¸íÈ®ÇÑ À¯È¿ ½Ã°£µµ ¾øÀ¸¸é ¿ì¸®´Â ±×°ÍÀ» ij½ÃÇÒ ¼ö ÀÖ´Ù °í ±â´ëÇÏÁö ¾Ê´Â´Ù. ±×·¯³ª ƯÁ¤ÇÑ Ä³½Ã´Â ÀÌ·¯ÇÑ ±â´ë¸¦ À§¹ÝÇÒ ¼öµµ ÀÖ´Ù.(¿¹¸¦ µé¾î ³×Æ® ¿öÅ©°¡ ¾àÇÏ°Ô ¿¬°áµÇ¾ú°Å³ª ¿¬°áµÇÁö ¾Ê¾ÒÀ» ¶§). Ŭ¶óÀ̾ðÆ®´Â º¸Åë ÀÌ·¯ÇÑ ÀÀ´äÀÌ Ä³½Ã¿¡ ¼­ ³ª¿Ô´Ù´Â °ÍÀ» Date Çì´õ¿Í ÇöÀç ½Ã°£À» ºñ±³ÇÏ¿© ŽÁöÇÒ ¼ö ÀÖ´Ù. ¸î¸î HTTP/1.0 ij½Ã´Â ¾Æ¹«·± Warning µµ Á¦°øÇÏÁö ¾Ê°í ÀÌ·¯ÇÑ ±â´ë¸¦ À§¹ÝÇÏ´Â °ÍÀ¸·Î ¾Ë ·ÁÁ³´Ù´Â Á¡¿¡ ÁÖÀÇÇÑ´Ù. ±×·¯³ª ¾î¶² °æ¿ì¿¡´Â ij½Ã°¡ ¿£ÅÍƼ¸¦ º¸À¯ÇÏ°í ÀÖ´Â °ÍÀÌ, ¶Ç´Â ij½Ã¸¦ °è¼ÓµÇ´Â ¿ä±¸¿¡ ´ë ÇÑ ÀÀ´äÀ¸·Î ¸®ÅÏÇÏ´Â °ÍÀÌ ÀûÀýÇÏÁö ¾ÊÀ» ¼ö ÀÖ´Ù. ÀÌ´Â ¼­ºñ½º ÀúÀÛÀÚ´Â Àý´ëÀûÀÎ ÀÇ¹Ì Åõ ¸í¼ºÀ» ´ç¿¬ÇÑ °ÍÀ¸·Î ¿©±â°í Àֱ⠶§¹®À̰ųª ¶Ç´Â º¸¾ÈÀ̳ª »ç»ýÈ° º¸È£¿¡ °üÇÑ °í·Á »çÇ× ¶§¹®ÀÌ´Ù. µû¶ó¼­ ´Ù¸¥ °í·Á »çÇ׿¡ °ü°è¾øÀÌ Æ¯Á¤ ¿£ÅÍƼ ¶Ç´Â ¿£ÅÍƼÀÇ ÀϺθ¦ ij½ÃÇÒ ¼ö ¾ø´Ù´Â °ÍÀ» Ç¥½ÃÇϱâ À§ÇØ Æ¯Á¤ Cache-Control Áö½ÃÀÚ°¡ Á¦°øµÇ¾ú´Ù. 14.8 ÀýÀº ´ë°³ ¿ä±¸°¡ Authorization Çì´õ¸¦ Æ÷ÇÔÇÏ°í ÀÖÀ¸¸é °øÀ¯µÈ ij½Ã°¡ ÀÌÀü ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ» ÀúÀåÇϰųª ¸®ÅÏÇÒ ¼ö ¾ø°Ô ÇÑ´Ù´Â Á¡¿¡ ÁÖÀÇÇÑ´Ù. Cache-Control Áö½ÃÀÚ°¡ ij½Ã¸¦ ±ÝÁöÇÏÁö ¾Ê´Â ÇÑ »óÅ ÄÚµå 200, 203, 206, 300, 301 ¶Ç´Â 410¿Í ´õºÒ¾î ¼ö½ÅÇÑ ÀÀ´äÀº À¯È¿ÀÏ ¸ÞÄ¿´ÏÁòÀ» Á¶°ÇÀ¸·Î ÇÏ¿© ij½Ã·Î ÀúÀåÇÒ ¼ö ÀÖ°í °è¼ÓµÇ´Â ¿ä ±¸¿¡ ´ëÇÑ ÀÀ´ä¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª Range ¹× Content-Range Çì´õ¸¦ Áö¿øÇÏÁö ¾Ê´Â ij ½Ã´Â 206(Partial Content) ÀÀ´äÀ» Àý´ë·Î ij½ÃÇؼ­´Â ¾È µÈ´Ù. ´Ù¸¥ »óÅ ÄÚµå¿Í ÇÔ²² ¼ö½ÅµÈ ÀÀ´äÀº Cache-Control Áö½ÃÀÚ³ª À̸¦ ¸í¹éÇÏ°Ô Çã¿ëÇÏ´Â Çì´õ°¡ ¾øÀ¸¸é °è¼ÓµÇ´Â ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î Àý´ë ¸®ÅÏÇؼ­´Â ¾È µÈ´Ù. ¿¹¸¦ µé¾î ÀÌ·¯ÇÑ °ÍµéÀº ´ÙÀ½°ú °°´Ù. - Expires Çì´õ (14.21 Àý); "max-age", "must-revalidate", "proxy-revalidate", "public" ¶Ç ´Â "private" Cache-Control Áö½ÃÀÚ (14.9 Àý). 13.5 ij½Ã¿¡¼­ ÀÀ´äÀ» ±¸ÃàÇϱâ HTTP ij½ÃÀÇ ¸ñÀûÀº ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î ¼ö½ÅµÈ Á¤º¸¸¦ ÀúÀåÇÏ¿© ¹Ì·¡ÀÇ ¿ä±¸¿¡ ´ëÇÑ ÀÀ´ä À» »ç¿ëÇϱâ À§ÇÔÀÌ´Ù. ¸¹Àº °æ¿ì¿¡ ij½Ã´Â ´Ü¼øÈ÷ ¿ä±¸ÀÚ¿¡°Ô ÀÀ´äÀÇ ÀûÇÕÇÑ ºÎºÐÀ» ¸®ÅÏÇÑ ´Ù. ±×·¯³ª ij½Ã°¡ ÀÌÀü ÀÀ´ä¿¡ ±âÃÊÇÑ Ä³½Ã ¿£Æ®¸®¸¦ º¸À¯ÇÏ°í ÀÖÀ¸¸é »õ·Î¿î ÀÀ´äÀÇ ÀÏ ºÎ ºÐ°ú ±âÁ¸ ij½Ã ¿£Æ®¸®¿¡ º¸°üÇÏ°í ÀÖ´ø °ÍÀ» °áÇÕÇؾ߸¸ ÇÑ´Ù. [Page 87] 13.5.1 End-to-end ¹× Hop-by-hop Çì´õ ij½Ã¿Í ij½Ã¸¦ Áö¿øÇÏÁö ¾Ê´Â ÇÁ¶ô½ÃÀÇ ÇàŸ¦ ±ÔÁ¤ÇÒ ¸ñÀûÀ¸·Î ¿ì¸®´Â HTTP Çì´õ¸¦ µÎ Á¾·ù µµ ±¸ºÐÇÏ¿´´Ù. ? End-to-end Çì´õ - ¿ä±¸³ª ÀÀ´äÀÇ ±Ã±ØÀûÀÎ ¼ö½ÅÃø¿¡°Ô Àü´ÞµÇ¾î¾ß ÇÑ´Ù. ÀÀ´äÀÇ End-to- end Çì´õ´Â ij½Ã ¿£Æ®¸®ÀÇ ÀÏ ºÎºÐÀ¸·Î ÀúÀåµÇ¾î¾ß ÇÏ°í ij½Ã ¿£Æ®¸®¿¡¼­ ±¸¼ºµÈ ¾î¶°ÇÑ ÀÀ´ä¿¡µµ Àü¼ÛµÇ¾î¾ß ÇÑ´Ù. ? Hop-by-hop Çì´õ - ´ÜÀÏ-Àü¼Û-¼öÁØ Á¢¼Ó¿¡¸¸ Àǹ̰¡ ÀÖÀ¸¸ç ij½Ã°¡ ÀúÀåÇÏÁöµµ ¾Ê°í ÇÁ¶ô ½Ã°¡ Àü¼ÛÇÏÁöµµ ¾Ê´Â´Ù. ´ÙÀ½ÀÇ HTTP/1.1 Çì´õµéÀÌ hop-by-hop Çì´õÀÌ´Ù: ? Connection ? Keep-Alive ? Public ? Proxy-Authenticate ? Transfer-Encoding ? Upgrade HTTP/1.1ÀÌ ±ÔÁ¤ÇÑ ´Ù¸¥ ¸ðµç Çì´õ´Â end-to-end Çì´õÀÌ´Ù. HTTP ÇâÈÄ ¹öÀü¿¡ ¼Ò°³µÉ Hop-by-hop Çì´õ´Â 14.10 Àý¿¡ ±â¼úÇÑ °Íó·³ ¹Ýµå½Ã Connection Çì ´õ¿¡ ¿­°ÅµÇ¾î¾ß ÇÑ´Ù. 13.5.2 º¯°æÇÒ ¼ö ¾ø´Â Çì´õ Digest Authentication °ú °°Àº HTTP/1.1 ±Ô¾àÀÇ ¸î¸î ±â´ÉÀº ƯÁ¤ end-to-end Çì´õ °ª¿¡ ÀÇÁ¸ÇÑ ´Ù. ij½Ã³ª ij½Ã¸¦ Áö¿øÇÏÁö ¾Ê´Â ÇÁ¶ô½Ã´Â ÇØ´ç Çì´õÀÇ ±ÔÁ¤ÀÌ À̸¦ ¿ä±¸Çϰųª Ưº°È÷ Çã¿ë ÇÏÁö ¾Ê´Â ÇÑ end-to-endÇì´õ¸¦ º¯°æÇؼ­´Â ¾È µÈ´Ù. ij½Ã³ª ij½Ã¸¦ Áö¿øÇÏÁö ¾Ê´Â ÇÁ¶ô½Ã´Â ¿ä±¸³ª ÀÀ´ä¿¡¼­ ´ÙÀ½ÀÇ Çʵå Áß ¾î¶² °Íµµ º¯°æÇؼ­ ´Â ¾È µÇ¸ç ±âÁ¸¿¡ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é Ãß°¡Çؼ­µµ ¾È µÈ´Ù. ? Content-Location ? ETag ? Expires ? Last-Modified [Page 88] ij½Ã³ª ij½Ã¸¦ Áö¿øÇÏÁö ¾Ê´Â ÇÁ¶ô½Ã´Â º¯È¯ ±ÝÁö Cache-Control Áö½Ã¾î¸¦ Æ÷ÇÔÇÑ ÀÀ´ä ¶Ç´Â ¾î¶°ÇÑ ¿ä±¸¿¡¼­µµ ´ÙÀ½ÀÇ Çʵå Áß ¾î¶² °Íµµ º¯°æÇϰųª Ãß°¡Çؼ­´Â ¾È µÈ´Ù. ? Content-Encoding ? Content-Length ? Content-Range ? Content-Type ij½Ã³ª ij½Ã¸¦ Áö¿øÇÏÁö ¾Ê´Â ÇÁ¶ô½Ã´Â º¯È¯ ±ÝÁö(no-transform)¸¦ Æ÷ÇÔÇÏÁö ¾ÊÀº ÀÀ´ä¿¡¼­ ÀÌ ·¯ÇÑ Çʵ带 º¯°æÇϰųª Ãß°¡Çؼ­´Â ¾È µÈ´Ù. ±×·¸°Ô Çß´Ù¸é ÀÀ´ä¿¡ Warning 14(Modification Applied)°¡ ¾øÀ¸¸é À̸¦ Ãß°¡ÇØ¾ß ÇÑ´Ù. °æ°í : ºÒÇÊ¿äÇÑ end-to-end Çì´õÀÇ º¯°æÀº HTTPÀÇ ÀÌÈÄ ¹öÀü¿¡¼­ ´õ °­·ÂÇÑ ÀÎÁõ ȹµæ ¸Þ Ä¿´ÏÁòÀÌ µµÀԵȴٸé ÀÎÁõ ȹµæ ½ÇÆи¦ ÃÊ·¡ÇÒ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ ÀÎÁõ ȹµæ ¸ÞÄ¿´ÏÁòÀº ¿©±â ¿¡ ¿­°ÅµÇÁö ¾ÊÀº Çì´õ ÇÊµå °ª¿¡ ÀÇÁ¸ÇÒ ¼ö ÀÖ´Ù. 13.5.3 Çì´õÀÇ °áÇÕ Ä³½Ã°¡ ¼­¹ö¿¡°Ô °ËÁõ ¿ä±¸¸¦ ÇÏ°í ¼­¹ö°¡ 304(Not Modified) ÀÀ´äÀ» ÁÖ¾úÀ» ¶§ ij½Ã´Â ¿ä±¸ÇÑ Å¬¶óÀ̾ðÆ®¿¡°Ô ¹ß¼ÛÇϱâ À§ÇØ ÀÀ´äÀ» ±¸ÃàÇØ¾ß ÇÑ´Ù. ij½Ã´Â ij½Ã ¿£Æ®¸®¿¡ º¸°üµÈ Entity- Body¸¦ ÀÌ ¹ß¼Û ÀÀ´äÀÇ Entity-Body·Î »ç¿ëÇÑ´Ù. ij½Ã ¿£Æ®¸®¿¡ ÀúÀåµÈ end-to-end Çì´õ´Â 304 ÀÀ´äÀÌ Á¦°øÇÑ end-to-end Çì´õ°¡ ij½Ã ¿£Æ®¸®¿¡¼­ »óÀÀÇÏ´Â Çì´õ¸¦ ¹Ýµå½Ã ´ëüÇؾ߸¸ ÇÏ´Â °æ¿ì¸¦ Á¦¿ÜÇÏ°í ±¸ÃàµÈ ÀÀ´äÀ» À§ÇØ »ç¿ëµÈ´Ù. ij½Ã°¡ ij½Ã ¿£Æ®¸®¸¦ Á¦°ÅÇϱâ·Î °áÁ¤ÇÏÁö ¾Ê´Â ÇÑ Ä³½Ã´Â ¹Ýµå½Ã ij½Ã ¿£Æ®¸®¿¡ ÀúÀåµÈ end-to-end Çì´õ¸¦ µé¾î¿À´Â ÀÀ´ä¿¡¼­ ¼ö½ÅÇÑ Çì ´õ·Î ´ëüÇØ¾ß ÇÑ´Ù. ´Þ¸® Ç¥ÇöÇÏ¸é µé¾î¿À´Â ¸Þ½ÃÁö¿¡¼­ ¼ö½ÅÇÑ end-to-end Çì´õ ¼¼Æ®°¡ ij½Ã ¿£Æ®¸®¿¡ ÀúÀåµÈ ¸ð µç end-to-end Çì´õ¸¦ ¹«½ÃÇÑ´Ù´Â °ÍÀÌ´Ù. ÀÌ Ä³½Ã´Â ÀÌ ¼¼Æ®¿¡ Warning Çì´õ¸¦ Ãß°¡ÇÒ ¼ö ÀÖ ´Ù.(14.45 Àý ÂüÁ¶) µé¾î¿À´Â ÀÀ´äÀÇ Çì´õ Çʵå À̸§ÀÌ Ä³½Ã ¿£Æ®¸®ÀÇ Çì´õ¿Í Çϳª ÀÌ»ó ÀÏÄ¡Çϸé ÀÌ·¯ÇÑ ¸ðµç ¿À ·¡µÈ Çì´õ´Â ´ëüµÈ´Ù. ÁÖÀÇ : ÀÌ ±ÔÄ¢Àº ¿ø¼­¹ö°¡ 304(Not Modified) ÀÀ´äÀ» »ç¿ëÇÏ¿© µ¿ÀÏ ¿£ÅÍƼ¿¡ ´ëÇÑ ÀÌÀü ÀÀ ´ä¿¡ °ü·ÃµÈ Çì´õ¸¦ °»½ÅÇÒ ¼ö ÀÖµµ·Ï ÇØ ÁØ´Ù. ÀÌ·¸°Ô ÇÏ´Â °ÍÀÌ Ç×»ó Àǹ̰¡ Àְųª ¿Ã¹Ù ¸¦ °ÍÀº ¾Æ´Ò ¼ö ÀÖ´Ù. ÀÌ ±ÔÄ¢Àº ¿ø¼­¹ö°¡ 304(Not Modified) ÀÀ´äÀ» »ç¿ëÇÏ¿© ÀÌÀü ÀÀ´ä¿¡ Á¦°øÇß´ø Çì´õ¸¦ ¿ÏÀüÈ÷ »èÁ¦ÇÒ ¼ö ÀÖµµ·Ï Çã¿ëÇÏ´Â °ÍÀº ¾Æ´Ï´Ù. [Page 89] 13.5.4 ¹ÙÀÌÆ® ¿µ¿ª(Byte Ranges)ÀÇ °áÇÕ ÀÀ´äÀº ¿ä±¸°¡ Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ Range ±Ô°ÝÀ» Æ÷ÇÔÇÏ°í Àְųª Á¢¼ÓÀÌ Á¶±â¿¡ ´ÜÀýµÇ¾ú ±â ¶§¹®¿¡ Entity-Body ¹ÙÀÌÆ®ÀÇ ÇϺΠ¿µ¿ª¸¸À» Àü¼ÛÇÒ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ ¹æ½ÄÀ¸·Î ¸î ¹ø Àü¼ÛÇÏ ¸é ij½Ã´Â µ¿ÀÏÇÑ Entity-BodyÀÇ ¸î¸î ¿µ¿ªÀ» ¼ö½ÅÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ij½Ã°¡ ¿£ÅÍƼÀÇ ÀúÀåµÇ¾î ÀÖ°í °ø¹éÀÌ ¾Æ´Ñ ÇϺΠ¿µ¿ª ¼¼Æ®¸¦ °¡Áö°í ÀÖ°í ¶ÇÇÑ µé¾î¿À´Â ÀÀ ´äÀÌ ´Ù¸¥ ÇϺΠ¿µ¿ªÀ» Àü¼ÛÇÑ´Ù¸é ij½Ã´Â »õ·Î¿î ÇϺΠ¿µ¿ªÀ» ±âÁ¸ÀÇ ¼¼Æ®¿Í °áÇÕÇÒ ¼ö ÀÖ´Ù. (¾Æ·¡ÀÇ µÎ Á¶°ÇÀ» ¸ðµÎ ¸¸Á·ÇØ¾ß ÇÑ´Ù.) ? µé¾î¿À´Â ÀÀ´ä°ú ij½Ã ¿£Æ®¸® ¸ðµÎ ij½Ã °ËÁõÀÚ¸¦ °¡Áö°í ÀÖ¾î¾ß ÇÑ´Ù. ? µÎ ij½Ã °ËÁõÀÚ´Â °­ÇÑ ºñ±³ ±â´É(13.3.3 Àý ÂüÁ¶)À» »ç¿ëÇÏ¿© ¼­·Î ÀÏÄ¡ÇØ¾ß ÇÑ´Ù. µÎ Á¶°Ç ¸ðµÎ°¡ ¸¸Á·µÇÁö ¾ÊÀ¸¸é ij½Ã´Â °¡Àå ÃÖ±ÙÀÇ ºÎºÐ ÀÀ´ä(¸ðµç ÀÀ´ä°ú ÇÔ²² Àü¼ÛµÇ´Â Date °ª¿¡ ±âÃÊÇϰųª ¶Ç´Â ÀÌ °ªÀÌ µ¿µîÇϰųª ºüÁ® ÀÖÀ¸¸é µé¾î¿À´Â ÀÀ´äÀ» »ç¿ëÇÏ¿©)¸¸À» »ç¿ëÇØ¾ß ÇÏ°í ´Ù¸¥ ºÎºÐ Á¤º¸´Â Æó±âÇØ¾ß ÇÑ´Ù. 13.6 Çù»óÀ» ÅëÇÑ ÀÀ´äÀ» ij½ÃÇϱâ ÀÀ´äÀÇ Vary Çì´õ ÇʵåÀÇ Á¸Àç·Î Ç¥½ÃµÇ´Â ¼­¹ö°¡ ÁÖµµÇÏ´Â ³»¿ë Çù»ó(12 Àå)ÀÇ »ç¿ëÀº ij½Ã °¡ °è¼ÓÀûÀÎ ¿ä±¸¿¡ ´ëÇÑ ÀÀ´ä¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â Á¶°Ç ¹× ÀýÂ÷¸¦ º¯°æÇÑ´Ù. ¼­¹ö´Â Vary Çì´õ Çʵå(14.43 Àý)¸¦ »ç¿ëÇÏ¿© ij½Ã¿¡°Ô ¾î¶² Çì´õ Çʵå Â÷¿øÀ» ÀÌ¿ëÇÏ¿© ij½Ã ÇÒ ¼ö ÀÖ´Â ÀÀ´äÀÇ ´Ù¾çÇÑ Ç¥½Ã ¹æ¹ý Áß¿¡¼­ Çϳª¸¦ ¼±ÅÃÇÏ¿´´ÂÁö ¾Ë·Á ÁØ´Ù. ij½Ã´Â ÇØ´ç ÀÚ ¿ø¿¡ ´ëÇÑ °è¼ÓÀûÀÎ ¿ä±¸¿¡ ÀÀ´äÇϱâ À§ÇÏ¿© °è¼ÓµÇ´Â ¿ä±¸°¡ Vary Response-Header ¾È¿¡ ¸í½Ã µÈ ¸ðµç Çì´õ ÇʵåÀÇ µ¿ÀÏ ¶Ç´Â µ¿µîÇÑ °ªÀ» °¡Áö°í ÀÖÀ» ¶§¸¸ ¼±ÅÃµÈ Ç¥½Ã ¹æ¹ý(ƯÁ¤ ÀÀ´ä¿¡ Æ÷ÇÔµÈ ¿£ÅÍƼ)À» ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù. Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ ÀÌ·¯ÇÑ Çì´õ Çʵ带 °¡Áø ¿ä±¸´Â ¿ø ¼­¹ö·Î Àü¼ÛµÉ °ÍÀÌ´Ù. ¿£ÅÍƼ űװ¡ Ç¥½Ã ¹æ¹ý¿¡ ºÎ¿©µÇ¾úÀ» ¶§ Àü¼ÛµÈ ¿ä±¸´Â Á¶°ÇÀûÀ̾î¾ß Çϸç Request-URIÀÇ ¸ðµç ij½Ã ¿£Æ®¸®·ÎºÎÅÍÀÇ If-None-Match Çì´õ Çʵ忡 ÀÖ´Â ¿£ÅÍƼ ű׸¦ Æ÷ÇÔÇØ¾ß ÇÑ´Ù. ÀÌ °ÍÀº ÇöÀç ij½Ã°¡ °¡Áö°í ÀÖ´Â ¿£ÅÍƼ ¼¼Æ®¸¦ ¼­¹ö¿¡°Ô Àü´ÞÇÑ´Ù. ÀÌ·¸°Ô ÇÔÀ¸·Î½á ¸¸¾à ÀÌ ¿£ÅÍƼ Áß Çϳª¶óµµ ¿ä±¸µÈ ¿£ÅÍƼ¿Í ÀÏÄ¡ÇÑ´Ù¸é ¼­¹ö´Â 304 (Not Modified) ÀÀ´äÀÇ ETag Çì´õ ¸¦ ÀÌ¿ëÇÏ¿© ¾î¶² ¿£Æ®¸®°¡ ÀûÇÕÇÑÁö ij½Ã¿¡°Ô ¾Ë·Á ÁØ´Ù. »õ·Î¿î ÀÀ´äÀÇ Entity-Tag°¡ ±âÁ¸ ¿£Æ®¸®ÀÇ Entity-Tag¿Í ÀÏÄ¡ÇÑ´Ù¸é »õ·Î¿î ÀÀ´äÀ» ÀÌ¿ëÇÏ¿© ±âÁ¸ ¿£Æ®¸®ÀÇ Çì´õ Çʵ带 °»½Å ÇØ¾ß ÇÏ°í °á°ú´Â Ŭ¶óÀ̾ðÆ®¿¡°Ô µ¹·ÁÁÖ¾î¾ß ÇÑ´Ù. [Page 90] ¶ÇÇÑ Vary Çì´õ Çʵå´Â ij½Ã¿¡°Ô Request-Header¿¡ ÇÑÁ¤µÇÁö ¾ÊÀº ¹üÁÖ¸¦ ÀÌ¿ëÇÏ¿© Ç¥½Ã ¹æ¹ý ÀÌ ¼±ÅõǾúÀ½À» ¾Ë¸± ¼ö ÀÖ´Ù. ÀÌ °æ¿ì ij½Ã´Â ij½Ã°¡ »õ·Î¿î ¿ä±¸¸¦ Á¶°ÇÀûÀÎ ¿ä±¸·Î ¿ø¼­ ¹ö¿¡°Ô Áß°èÇϰųª ¼­¹ö°¡ ¿£ÅÍƼ ÅÂ±× ¶Ç´Â ¾î¶² ¿£ÅÍƼ¸¦ »ç¿ëÇÏ¿©¾ß ÇÏ´ÂÁö Ç¥½ÃÇÏ´Â Content-LocationÀ» Æ÷ÇÔÇÏ¿© 304(Not Modified)·Î ÀÀ´äÇÏÁö ¾Ê´Â ÇÑ ÀÀ´äÀ» °è¼ÓµÇ´Â ¿ä±¸¿¡ ´ë ÇÑ ´ë´äÀ¸·Î »ç¿ëÇؼ­´Â Àý´ë ¾È µÈ´Ù. ±âÁ¸ÀÇ Ä³½Ã ¿£Æ®¸® Áß ¾î¶² °ÍÀÌ¶óµµ °ü·ÃµÈ ¿£ÅÍƼÀÇ ºÎºÐÀûÀÎ ³»¿ëÀ» Æ÷ÇÔÇÏ°í ÀÖ´Ù¸é ¿ä ±¸°¡ ÇØ´ç ¿£Æ®¸®°¡ ÃæºÐÈ÷ ÃæÁ·½Ãų ¼ö ÀÖ´Â ¿µ¿ª¿¡ °üÇÑ °ÍÀÌ ¾Æ´Ñ ÀÌ»ó ±×°ÍÀÇ Entity-Tag ¸¦ If-None-Match Çì´õ¿¡ Æ÷ÇÔÇؼ­´Â ¾È µÈ´Ù. ij½Ã°¡ Content-Location Çʵ尡 µ¿ÀÏÇÑ Request-URI¸¦ À§ÇÑ ±âÁ¸ ij½Ã ¿£Æ®¸®ÀÇ ±×°Í°ú ÀÏÄ¡ Çϸç Date°¡ ±âÁ¸ ¿£Æ®¸®ÀÇ ±×°Íº¸´Ù ÃÖ½ÅÀÎ ¼º°øÀûÀÎ ÀÀ´äÀ» ¼ö½ÅÇÏ¿´À¸¸é ±âÁ¸ÀÇ ¿£Æ®¸®¸¦ ÇâÈÄ ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î ¸®ÅÏÇؼ­´Â ¾È µÇ¸ç ij½Ã¿¡¼­ »èÁ¦ÇØ¾ß ÇÑ´Ù. 13.7 °øÀ¯/ºñ°øÀ¯ ij½Ã º¸¾È ¹× »ç»ýÈ° º¸È£ÀÇ ÀÌÀ¯ ¶§¹®¿¡ "°øÀ¯" ¹× " ºñ°øÀ¯" ij½Ã¸¦ ±¸º°ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ºñ°øÀ¯ ij½Ã´Â ´ÜÀÏ »ç¿ëÀÚ¸¸ Á¢±ÙÇÒ ¼ö Àִ ij½ÃÀÌ´Ù. ÀÌ °æ¿ìÀÇ Á¢±Ù¼ºÀº ÀûÀýÇÑ º¸¾È ¸ÞÄ¿´ÏÁòÀ¸ ·Î ÁýÇàµÈ´Ù. ´Ù¸¥ ¸ðµç ij½Ã´Â "°øÀ¯"µÈ ij½Ã·Î °£ÁֵȴÙ. ÀÌ ±Ô°ÝÀÇ ´Ù¸¥ ¼½¼Ç¿¡¼­´Â °øÀ¯µÈ ij½ÃÀÇ ¿î¿µ¿¡ ´ëÇØ »ç»ýÈ° º¸È£¿Í Á¢±Ù ÅëÁ¦ ½ÇÆи¦ ¹æÁöÇϱâ À§ÇÏ¿© ¾î¶°ÇÑ Á¦ÇÑÀ» µÎ°í ÀÖ ´Ù. 13.8 ¿¡·¯ ¶Ç´Â ºÒ¿ÏÀüÇÑ ÀÀ´ä ij½Ã ÇàÅ ºÒ¿ÏÀüÇÑ ÀÀ´äÀ» ¼ö½ÅÇϴ ij½Ã(¿¹¸¦ µé¾î Content-Length Çì´õ¿¡ ¸í½ÃµÈ °Íº¸´Ù ÀûÀº µ¥ÀÌÅÍ) ´Â ÀÀ´äÀ» ÀúÀåÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª ij½Ã´Â ÀÌ°ÍÀ» ºÎºÐÀû ÀÀ´äÀ¸·Î ó¸®Çؼ­´Â ¾È µÈ´Ù. ºÎºÐ Àû ÀÀ´äÀº 13.5.4 Àý¿¡¼­ ±â¼úÇÑ °Íó·³ °áÇÕÇÒ ¼ö ÀÖ´Ù. ±× °á°ú´Â ¿ÏÀüÇÑ ÀÀ´äÀÌ µÉ ¼öµµ ÀÖ °í ¿©ÀüÈ÷ ºÎºÐÀûÀÏ ¼öµµ ÀÖ´Ù. ij½Ã´Â Ŭ¶óÀ̾ðÆ®¿¡°Ô ºÐ¸íÇÏ°Ô 206(Partial Content) »óÅ ÄÚµå ¸¦ »ç¿ëÇÏ¿© ±×·¸´Ù°í Ç¥½ÃÇÏÁö ¾Ê°í´Â ºÎºÐÀû ÀÀ´äÀ» ¸®ÅÏÇؼ­´Â ¾È µÈ´Ù. ij½Ã´Â »óÅ ÄÚµå 200(OK)À» ÀÌ¿ëÇÏ¿© ºÎºÐÀû ÀÀ´äÀ» ¸®ÅÏÇؼ­´Â Àý´ë·Î ¾È µÈ´Ù. ij½Ã°¡ ¿£Æ®¸®¸¦ Àç°ËÁõÇÏ·Á ½ÃµµÇÏ´Â µ¿¾È 5xx ÀÀ´äÀ» ¼ö½ÅÇϸé ij½Ã´Â ÀÌ ÀÀ´äÀ» ¿ä±¸ÇÑ Å¬ ¶óÀ̾ðÆ®¿¡°Ô Àü¼ÛÇϵçÁö ¼­¹ö°¡ ÀÀ´ä¿¡ ½ÇÆÐÇÑ °Íó·³ ó¸®ÇØ¾ß ÇÑ´Ù. ÈÄÀÚÀÇ °æ¿ì ij½Ã µÈ ¿£Æ®¸®°¡ "must-revalidate" Cache-Control Áö½ÃÀÚ(14.9 Àý ÂüÁ¶)¸¦ Æ÷ÇÔÇÏ°í ÀÖÁö ¾ÊÀ¸¸é ij½Ã´Â ÀÌÀü¿¡ ¼ö½ÅµÈ ÀÀ´äÀ» ¸®ÅÏÇÒ ¼öµµ ÀÖ´Ù. [Page 91] 13.9 GET ¹× HEADÀÇ ºÎÀÛ¿ë ¿ø¼­¹ö°¡ ºÐ¸íÇÏ°Ô ÀÚ½ÅÀÇ ÀÀ´äÀ» ij½ÃÇÏ´Â °ÍÀ» ±ÝÁöÇÏÁö ¾Ê´Â ÇÑ GET ¹× HEAD method¸¦ ¾î¶² ÀÚ¿ø¿¡ Àû¿ëÇÏ´Â °ÍÀº ÀÌ·¯ÇÑ ÀÀ´äÀÌ Ä³½Ã¿¡¼­ ¿Ô´Ù¸é À߸øµÈ ÇàÅ·ΠÀ̲ô´Â ºÎÀÛ¿ëÀ» °®Áö ¾Ê¾Æ¾ß ÇÑ´Ù. ±×·¡µµ ºÎÀÛ¿ëÀº ÀÖÀ» ¼ö ÀÖÀ¸³ª ij½Ã´Â ij½Ã ½ÇÇà ¿©ºÎ¿¡ ´ëÇÑ °áÁ¤À» ÇÒ ¶§ ÀÌ·¯ÇÑ ºÎÀÛ¿ëÀ» °í·ÁÇϵµ·Ï ¿ä±¸ ¹ÞÁö´Â ¾Ê´Â´Ù. ij½Ã´Â Ç×»ó ¿ø¼­¹öÀÇ Ä³½Ã¿¡ ´ëÇÑ ¸í¹é ÇÑ Á¦ÇÑ »çÇ×À» ÁؼöÇÒ °ÍÀ¸·Î ¿¹»óµÈ´Ù. ¿ì¸®´Â ÀÌ ±ÔÄ¢¿¡ ´ëÇÑ ¿¹¿Ü Çϳª¸¦ ±â·ÏÇÏ°íÀÚ ÇÑ´Ù: ¸î¸î ¾ÖÇø®ÄÉÀ̼ÇÀº ÀüÅëÀûÀ¸·Î GET °ú HEAD¸¦ ÁúÀÇ URL(rel_path part¿¡ "?"¸¦ Æ÷ÇÔÇÑ URL)°ú ÇÔ²² »ç¿ëÇÏ¿© »ó´çÇÑ ºÎÀÛ¿ëÀ» °¡Áø ÀÛ¾÷À» ¼öÇàÇß´Ù. ij½Ã´Â ¼­¹ö°¡ ºÐ¸íÇÑ À¯È¿ ½Ã°£À» Á¦°øÇÏÁö ¾Ê´Â ÇÑ ÀÌ·¯ÇÑ URL¿¡ ´ëÇÑ ÀÀ´äÀ» »õ·Î¿î °ÍÀ¸·Î Ãë±ÞÇؼ­´Â ¾È µÈ´Ù. ÀÌ°ÍÀº ƯÈ÷ HTTP/1.0 ¼­¹ö·ÎºÎÅÍÀÇ ÀÀ´äÀ» ij½Ã¿¡¼­ °¡Á®¿Í¼­´Â ¾È µÈ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. °ü·ÃµÈ Á¤º¸¸¦ 9.1.1 ÀýÀ» Âü°íÇÑ´Ù. 13.10 °»½Å ¶Ç´Â »èÁ¦ ÈÄÀÇ ¹«È¿È­ ¿ø¼­¹ö¿¡¼­ ƯÁ¤ methodÀÇ °á°ú´Â Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ ±âÁ¸ ij½Ã ¿£Æ®¸®¸¦ Åõ¸íÇÏÁö ¾Ê°Ô ¹«È¿ÇÑ °ÍÀ¸·Î ¸¸µé ¼ö ÀÖ´Ù. ÀÌ´Â ºñ·Ï ij½Ã°¡ °è¼ÓÇؼ­ "»õ·ÓÁö¸¸" ÀÌ°ÍÀÌ ¿ø¼­¹ö°¡ »õ·Î¿î ¿ä±¸¸¦ ¹Þ¾ÒÀ» ¶§ ¸®ÅÏÇÒ °ÍÀ» Á¤È®ÇÏ°Ô ¹Ý¿µÇÏÁö´Â ¾Ê´Â´Ù. HTTP ±Ô¾àÀÌ ¸ðµç ÀÌ·¯ÇÑ Ä³½Ã¸¦ ¹«È¿ÇÑ °ÍÀ¸·Î Ç¥½ÃÇÑ´Ù´Â º¸ÀåÀ» ÇÒ ¹æ¹ýÀÌ ¾ø´Ù. ¿¹¸¦ µé ¾î ¿ø¼­¹öÀÇ º¯È­¸¦ ÃÊ·¡ÇÑ ¿ä±¸°¡ ij½Ã ¿£Æ®¸®°¡ ÀúÀåµÇ¾î ÀÖ´Â ÇÁ¶ô½Ã¸¦ °ÅÄ¡Áö ¾Ê¾ÒÀ» ¼ö µµ ÀÖ´Ù. ±×·¯³ª ¸î¸î ±ÔÄ¢ÀÌ À߸øµÈ ÇàÅ°¡ ¹ß»ýÇÒ ¼ö ÀÖ´Â °æ¿ì¸¦ °¨¼Ò½ÃÄÑ ÁØ´Ù. ÀÌ ¼½¼Ç¿¡¼­ "¿£Æ®¸®¸¦ ¹«È¿È­ ÇÑ´Ù"´Â °ÍÀº ij½Ã°¡ ÇØ´ç ¿£ÅÍƼÀÇ ¸ðµç °æ¿ì(instance)¸¦ ÀúÀå Àå¼Ò¿¡¼­ »èÁ¦ÇÏ°í, "¹«È¿"·Î Ç¥½ÃÇÏ¸ç °è¼ÓµÇ´Â ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î ¸®ÅÏÇϱâ Àü¿¡ Àǹ«Àû À¸·Î Àç°ËÁõÀ» ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. [Page 92] ¸î¸î HTTP method´Â ¿£ÅÍƼ¸¦ ¹«È¿È­ÇÒ ¼ö ÀÖ´Ù. ±×°ÍÀº Request-URI·Î ÂüÁ¶Çϰųª Location ¶Ç´Â Content-Location Response-Header(Á¸ÀçÇÑ´Ù¸é)·Î ÂüÁ¶ÇÏ´Â ¿£ÅÍƼÀÌ´Ù. ±×·¯ÇÑ method´Â: ? PUT ? DELETE ? POST ¼­ºñ½º ½ÃµµÀÇ °ÅÀýÀ» ¹æÁöÇϱâ À§ÇØ Location ¶Ç´Â Content-Location Çì´õÀÇ URI¿¡ ±âÃÊÇÑ ¹« È¿È­´Â ¿ÀÁ÷ È£½ºÆ® ºÎºÐÀÌ Request-URIÀÇ È£½ºÆ® ºÎºÐ°ú µ¿ÀÏÇÒ °æ¿ì¿¡¸¸ ½ÇÇàÇØ¾ß ÇÑ´Ù. 13.11 Àǹ«ÀûÀ¸·Î ¼­¹ö¸¦ ÅëÇÏ¿© ±âÀÔ(Write-Through Mandatory) ¿ø¼­¹ö ÀÚ¿ø¿¡ ´ëÇÑ º¯°æÀ» ÃÊ·¡ÇÒ °ÍÀ¸·Î ¿¹»óµÇ´Â ¸ðµç method´Â ¿ø¼­¹ö¸¦ ÅëÇÏ¿© ±âÀÔÇØ ¾ß ÇÑ´Ù. ÇöÀç ÀÌ°ÍÀº GET ¹× HEAD¸¦ Á¦¿ÜÇÑ ¸ðµç method¸¦ Æ÷ÇÔÇÑ´Ù. ij½Ã´Â ¼ö½ÅÇÏ´Â ÂÊ ¼­¹ö·Î ¿ä±¸¸¦ Àü´ÞÇϱâ Àü ¹× ¼ö½ÅÇÏ´Â ÂÊ ¼­¹ö·ÎºÎÅÍ »óÀÀÇÏ´Â ÀÀ´äÀ» ¼ö½ÅÇϱâ Àü¿¡ Àý´ë ·Î Ŭ¶óÀ̾ðÆ®¿¡¼­ ÀÌ·¯ÇÑ ¿ä±¸¿¡ ÀÀ´äÇؼ­´Â ¾È µÈ´Ù. ÀÌ°ÍÀÌ Ä³½Ã°¡ ¼ö½ÅÇÏ´Â ÂÊ ¼­¹ö°¡ ÀÀ ´äÇϱâ Àü¿¡ 100 (Continue) ÀÀ´äÀ» ¹ß¼ÛÇÏ´Â °ÍÀ» ¹æÁöÇÏÁö´Â ¸øÇÑ´Ù. ´ë¾È("¿ªÀ¸·Î ¾²±â(write-back)" ¶Ç´Â "¿ªÀ¸·Î º¹»ç(copy-back)" ij½Ã·Î ¾Ë·ÁÁø)Àº ¿ªÀ¸·Î ¾²±â (write-back) ÀÌÀüÀÇ ¼­¹ö, ij½Ã ¶Ç´Â ³×Æ®¿öÅ© ½ÇÆÐ ¶§¹®¿¡ ¹ß»ýÇÏ´Â ¹®Á¦¿Í Áö¼ÓÀûÀÎ °»½ÅÀ» Á¦°øÇϱ⠾î·Æ±â ¶§¹®¿¡ HTTP/1.1¿¡¼­ Çã¿ëµÇÁö ¾Ê´Â´Ù. 13.12 ij½Ã ´ëü ¸ðµç µ¿ÀÏÇÑ ÀÚ¿ø¿¡ ´ëÇÑ ±âÁ¸ ÀÀ´äÀÌ Ä³½ÃµÇ¾úÀ» ¶§ »õ·Î¿î ij½ÃÇÒ ¼ö ÀÖ´Â(14.9.2, 13.2.5, 13.2.6 ¹×13.8 Àý ÂüÁ¶) ÀÀ´äÀ» ÀÚ¿øÀ¸·ÎºÎÅÍ ¼ö½ÅÇÏ¿´À¸¸é ij½Ã´Â ÇöÀç ÀÇ ¿ä±¸¿¡ ´ëÇÑ ´ë´ä À» ÇÒ ¶§ »õ·Î¿î ÀÀ´äÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. ij½Ã´Â ±×°ÍÀ» ij½Ã ÀúÀå¼Ò¿¡ »ðÀÔÇÏ°í ¸ðµç ´Ù¸¥ Á¶ °ÇÀÌ ÃæÁ·µÇ¸é ÀÌÀü ÀÀ´äÀÌ ¸®ÅÏ µÇ¾úÀ» ¼öµµ ÀÖ´Â ¹Ì·¡ÀÇ ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î »ç¿ëÇÑ´Ù. »õ·Î¿î ÀÀ´äÀ» ij½Ã ÀúÀå¼Ò¿¡ »ðÀÔÇÑ´Ù¸é 13.5.3 ÀýÀÇ ±ÔÄ¢À» µû¶ó¾ß ÇÑ´Ù. ÁÖÀÇ : ±âÁ¸¿¡ ij½ÃµÈ ÀÀ´äº¸´Ù ¿À·¡µÈ Date Çì´õ °ªÀ» °¡Áø »õ·Î¿î ÀÀ´äÀ» ij½ÃÇÒ ¼ö ¾ø´Ù. 13.13 È÷½ºÅ丮 ¸ñ·Ï(History list) »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â Á¾Á¾ "ÀÌÀü" ¹öÆ°°ú history ¸ñ·Ï°ú °°Àº history ¸ÞÄ¿´ÏÁòÀ» »ç¿ëÇÑ´Ù. ÀÌ°ÍÀº ¼¼¼Ç¿¡¼­ ÀÌÀü¿¡ Á¶È¸ÇÑ ¿£ÅÍƼ¸¦ ´Ù½Ã È­¸é¿¡ Ç¥½ÃÇϱâ À§ÇØ »ç¿ëÇÑ´Ù. [Page 93] history ¸ÞÄ¿´ÏÁò°ú ij½Ã´Â ´Ù¸£´Ù. ƯÈ÷ history ¸ÞÄ¿´ÏÁòÀº ÀÚ¿øÀÇ ÇöÀç »óŸ¦ Àǹ̻ó Åõ¸íÇÑ ¸ð¾çÀ¸·Î º¸¿© ÁÖ·Á ½ÃµµÇؼ­´Â ¾È µÈ´Ù. history ¸ÞÄ¿´ÏÁòÀº ÀÚ¿øÀ» Á¶È¸ÇßÀ» ¶§ »ç¿ëÀÚ°¡ º» °Í°ú µ¿ÀÏÇÑ °ÍÀ» º¸¿© ÁÖ±â À§ÇÑ °ÍÀÌ´Ù. ±âº»ÀûÀ¸·Î À¯È¿ ½Ã°£Àº history ¸ÞÄ¿´ÏÁò¿¡ Àû¿ëµÇÁö ¾Ê´Â´Ù. ¿£ÅÍƼ°¡ ¿©ÀüÈ÷ ÀúÀå¼Ò¿¡ ÀÖÀ¸ ¸é history ¸ÞÄ¿´ÏÁòÀº ¿£ÅÍƼ°¡ ¸¸·áµÇ¾ú´Ù ÇÒÁö¶óµµ »ç¿ëÀÚ°¡ ¸¸·áµÈ history ¹®¼­¸¦ °»½ÅÇÏ µµ·Ï »ó¼¼ÇÏ°Ô ¿¡ÀÌÀüÆ®ÀÇ È¯°æÀ» ¼³Á¤ÇÏÁö ¾ÊÀº ÇÑ ÀÌ°ÍÀ» º¸¿© ÁÖ¾î¾ß ÇÑ´Ù. ÀÌ°ÍÀº history ¸ÞÄ¿´ÏÁòÀÌ »ç¿ëÀÚ¿¡°Ô ÇöÀç ÀÇ È­¸éÀÌ ³°Àº °ÍÀÏ ¼öµµ ÀÖÀ½À» ¾Ë¸®´Â °ÍÀ» ±Ý ÁöÇÏ´Â °ÍÀ¸·Î Çؼ®Çؼ­´Â ¾È µÈ´Ù. ÁÖÀÇ : History ¸ñ·Ï ¸ÞÄ¿´ÏÁòÀÌ ºÒÇÊ¿äÇÏ°Ô »ç¿ëÀÚ°¡ ³°Àº ÀÚ¿øÀ» º¼ ¼ö ¾øµµ·Ï ÇÑ´Ù¸é ÀÌ´Â ¼­ºñ½º ÀúÀÛÀڵ鿡°Ô ±×·¸Áö ¾Ê¾Ò´õ¶ó¸é »ç¿ëÇÏ°í ½Í¾îÇÏ´Â HTTP À¯È¿ÀÏ Á¦¾î ¹× ij½Ã Á¦ ¾îÀÇ »ç¿ëÀ» ÇÇÇϵµ·Ï °­¿äÇÒ ¼ö ÀÖ´Ù. ¼­ºñ½º ÀúÀÛÀÚµéÀº ±×µéÀÌ ¿îÇà Á¦¾î("ÀÌÀü" ¹öÆ°°ú °°Àº navigation control)¸¦ »ç¿ëÇÏ¿© ÀÌÀü¿¡ °¡Á®¿Â ÀÚ¿øÀ» º¸°íÀÚ ÇÒ ¶§ »ç¿ëÀÚ¿¡°Ô ¿¡·¯ ¸Þ ½ÃÁö³ª °æ°í ¸Þ½ÃÁö¸¦ Ç¥½ÃÇÏÁö ¾Ê´Â °ÍÀÌ Áß¿äÇÏ´Ù°í »ý°¢ÇÒ ¼ö ÀÖ´Ù. ¶§¶§·Î ÀÌ·¯ÇÑ ÀÚ¿ø À» ij½ÃÇÏÁö ¸»°Å³ª »¡¸® ¸¸·áÇØ¾ß ÇÒ ¼öµµ ÀÖÁö¸¸ ¼­ºñ½º ÀúÀÛÀÚµéÀº »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º¸¦ °í·ÁÇÏ¿© »ç¿ëÀÚ°¡ history ¸ÞÄ¿´ÏÁòÀÌ ºÎÀûÇÕÇÏ°Ô ÀÛµ¿ÇÏ¿© °íÅëÀ» ¹ÞÁö ¾Êµµ·Ï ij½Ã¸¦ ¹æ ÁöÇÒ ¼ö ÀÖ´Â(¿¹¸¦ µé¾î "once-only" URL) ´Ù¸¥ ¹æ¹ý¿¡ È£¼ÒÇϵµ·Ï ¸¸µç´Ù. 14 Çì´õÇʵå Á¤ÀÇ ÀÌ ¼½¼ÇÀº HTTP/1.1ÀÇ ¸ðµç Ç¥ÁØ Çì´õ Çʵ忡 Çü½Ä°ú Àǹ̸¦ Á¤ÀÇÇÑ´Ù. Entity-Header Çʵ忡 ¼­ ¹ß¼ÛÀÚ¿Í ¼ö½ÅÃøÀº ´©°¡ ¿£ÅÍƼ¸¦ ¹ß¼ÛÇÏ°í ´©°¡ ¿£ÅÍƼ¸¦ ¼ö½ÅÇϴ°¡¿¡ µû¶ó Ŭ¶óÀ̾ð Æ® ¶Ç´Â ¼­¹ö ¸ðµÎ¸¦ ÁöĪÇÒ ¼ö ÀÖ´Ù. [Page 94] 14.1 Accept Accept request-header Çʵå´Â ÀÀ´ä¿¡ »ç¿ëÇÒ ¼ö Àִ ƯÁ¤ media typeÀ» ¸í½ÃÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ´Ù. Accept Çì´õ´Â ¶óÀο¡ Æ÷ÇÔµÈ À̹ÌÁö(in-line image)¿¡ ´ëÇÑ ¿ä±¸Ã³·³ ¿ä±¸°¡ »ó¼¼ÇÏ°Ô ¿ø ÇÏ´Â À¯ÇüÀÇ ÀÛÀº ¼¼Æ®¿¡ ÇÑÁ¤µÇ¾î ÀÖÀ½À» Ç¥½ÃÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. Accept = "Accept" ":" #( media-range [ accept-params ] ) media-range = ( "*/*" | ( type "/" "*" ) | ( type "/" subtype ) ) *( ";" parameter ) accept-params = ";" "q" "=" qvalue *( accept-extension ) accept-extension = ";" token [ "=" ( token | quoted-string ) ] º°Ç¥("*") ¹®ÀÚ´Â media typeÀ» ¿µ¿ªÀ¸·Î ±×·ìÇÎÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. "*/*"´Â ¸ðµç media typeÀ», "type/*Àº ÇØ´ç typeÀÇ ¸ðµç subtypeÀ» Ç¥½ÃÇÑ´Ù. Media-range´Â ÇØ´ç ¿µ¿ª¿¡ Àû¿ëÇÒ ¼ö ÀÖ´Â media type ÆĶó¹ÌÅ͸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. ¸ðµç media-range¿¡´Â Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ »ó´ëÀû Ç°Áú ¿ä¼Ò¸¦ Ç¥½ÃÇÏ´Â "q" ÆĶó¹ÌÅÍ·Î ½Ã ÀÛÇÏ´Â accept-params°¡ µÚµû¸¥´Ù. óÀ½ÀÇ "q" ÆĶó¹ÌÅÍ(ÀÖ´Ù¸é)´Â media-range ÆĶó¹ÌÅ͸¦ accept-params·ÎºÎÅÍ ºÐ¸®½ÃŲ´Ù. Ç°Áú ¿ä¼Ò(quality factor)´Â »ç¿ëÀÚ ¶Ç´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ qvalue(¼½¼Ç 3.9) ôµµ¸¦ 0ºÎÅÍ 1±îÁö »ç¿ëÇÏ¿© ÇØ´ç media-range¿¡ ´ëÇÑ »ó´ëÀû ¼±È£µµ¸¦ Ç¥ ½ÃÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ±âº»°ªÀº q=1ÀÌ´Ù. ÁÖÀÇ : "q" ÆĶó¹ÌÅÍ À̸§À» media type ÆĶó¹ÌÅ͸¦ Accept È®Àå ÆĶó¹ÌÅͷκÎÅÍ ºÐ¸®ÇÏ´Â µ¥ »ç¿ëÇÏ´Â °ÍÀº °è¼ÓÀûÀÎ °üÇà ¶§¹®ÀÌ´Ù. ÀÌ °üÇàÀÌ ¾î¶°ÇÑ media type ÆĶó¹ÌÅÍ¿¡µµ "q"¶ó´Â À̸§À» media range¿¡ »ç¿ëÇÒ ¼ö ¾ø°Ô ÇÏÁö¸¸ IATA media type µî·ÏÇ¥¿¡¼­ "q" ÆĶó¹ÌÅÍ°¡ ¸¹ ÀÌ »ç¿ëµÇÁö ¾Ê°í ÀÖ°í Accept¿¡¼­ media type ÆĶó¹ÌÅ͸¦ Àß »ç¿ëÇÏÁö ¾Ê´Â´Ù´Â Á¡À» °¨¾È ÇÒ ¶§ ÀÌ·¯ÇÑ °æ¿ì´Â ¹ß»ýÇϱ⠾î·Æ´Ù. ÇâÈÄ media typeÀº "q"¶ó´Â À̸§ÀÇ ÆĶó¹ÌÅ͸¦ µî·Ï ÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù. ¿¹: Accept: audio/*; q=0.2, audio/basic À§ÀÇ ¹®ÀåÀº "³ª´Â audio/basicÀ» ¼±È£ÇÏÁö¸¸ 80% ÀÌÇÏ·Î ÁúÀÌ ¶³¾îÁö¸é »ç¿ëÇÒ ¼ö ÀÖ´Â °¡Àå ÁÁÀº ´Ù¸¥ audio typeÀ» ¹ß¼ÛÇØ ÁֽÿÀ."·Î Çؼ®ÇØ¾ß ÇÑ´Ù. [Page 95] Accept Çì´õ Çʵ尡 ¾ø´Ù¸é Ŭ¶óÀ̾ðÆ®°¡ ¸ðµç media typeÀ» ¼ö¿ëÇÑ´Ù°í °¡Á¤ÇÑ´Ù. Accept Çì´õ Çʵ尡 ÀÖ°í ¼­¹ö°¡ °áÇÕµÈ Accpet ÇÊµå °ª¿¡ ÀûÇÕÇÑ ÀÀ´äÀ» ¹ß¼ÛÇÒ ¼ö ¾øÀ» ¶§ ¼­¹ö´Â 406 (not acceptable) ÀÀ´äÀ» ¹ß¼ÛÇØ¾ß ÇÑ´Ù. Á»´õ ÀÚ¼¼ÇÑ ¿¹´Â Accept: text/plain ; q=0.5, text/html, text/x-dvi; q=0.8, text/x-c ¸»·Î Ç¥ÇöÇÑ´Ù¸é ÀÌ°ÍÀ» "text/html ¹× text/x-c°¡ ¼±È£ÇÏ´Â media typeÀÌÁö¸¸ ÀÌ°ÍÀÌ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é text/x-dvi ¿£ÅÍƼ¸¦ ¹ß¼ÛÇÏ°í Á¸ÀçÇϸé text/plain ¿£ÅÍƼ¸¦ ¹ß¼ÛÇϽÿÀ."¶ó°í Çؼ®ÇÒ ¼ö ÀÖ´Ù. Media ranges´Â Á»´õ »ó¼¼ÇÑ media range ¹× media type¿¡ ÀÇÇÏ¿© ¹«½ÃµÉ ¼ö ÀÖ´Ù. ƯÁ¤ type¿¡ Çϳª ÀÌ»óÀÇ media range¸¦ Àû¿ëÇßÀ» ¶§ °¡Àå »ó¼¼ÇÑ °ÍÀÌ ¿ì¼±±ÇÀ» °®´Â´Ù. ¿¹¸¦ µé¸é, Accept: text/*, text/html, text/html;level=1, */* Àº ´ÙÀ½ÀÇ ¿ì¼±¼øÀ§¸¦ °¡Áø´Ù. 1) text/html;level=1 2) text/html 3) text/* 4) */* ƯÁ¤ type°ú °ü·ÃµÈ media type Ç°Áú ¿ä¼Ò´Â ÇØ´ç type¿¡ ÀÏÄ¡ÇÏ´Â media range Áß ÃÖ°íÀÇ ¿ì¼± ±ÇÀ» °®´Â °ÍÀ» ¹ß°ßÇÏ¿© °áÁ¤ÇÑ´Ù. ¿¹¸¦ µé¾î, Accept: text/*;q=0.3, text/html;q=0.7, text/html;level=1, text/html;level=2;q=0.4, */*;q=0.5 ´Â ¾Æ·¡¿Í °°Àº °ªÀÌ ¿¬°üµÇµµ·Ï ÇÑ´Ù. text/html;level=1 = 1 text/html = 0.7 text/plain = 0.3 image/jpeg = 0.5 text/html;level=2 = 0.4 text/html;level=3 = 0.7 ÁÖÀÇ : »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â ƯÁ¤ media range¿¡ ´ëÇÑ Ç°ÁúÀÇ ±âº» °ª ¼¼Æ®¸¦ °¡Áö°í ÀÖÀ» ¼ö ÀÖ´Ù. [Page 96] ±×·¯³ª »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ ´Ù¸¥ Ç¥½Ã ¿¡ÀÌÀüÆ®¿Í »óÈ£ ÀÛ¿ëÇÒ ¼ö ¾ø´Â Æó¼âµÈ ½Ã½ºÅÛÀÌ ¾Æ ´Ï¶ó¸é ±âº» °ª ¼¼Æ®´Â »ç¿ëÀÚ°¡ ¼³Á¤ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. 14.2 Accept-Charset Accept-Charset request-header Çʵå´Â ÀÀ´ä¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ¹®ÀÚ Á¶ÇÕÀ» Ç¥½ÃÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. ÀÌ Çʵå´Â ±¤¹üÀ§ÇÏ°í Àü¹®ÀûÀÎ ¸ñÀûÀÇ ¹®ÀÚ Á¶ÇÕÀ» ÀÌÇØÇÒ ¼ö Àִ Ŭ¶óÀ̾ðÆ®°¡ ÀÌ·¯ÇÑ ¹® ÀÚ Á¶ÇÕÀ¸·Î ¹®¼­¸¦ Ç¥½ÃÇÒ ¼ö ÀÖ´Â ¼­¹ö¿¡°Ô ÀÚ½ÅÀÇ ´É·ÂÀ» ¾Ë·Á ÁÙ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ¸ðµç Ŭ¶óÀ̾ðÆ®´Â ISO-8859-1¹®ÀÚ Á¶ÇÕÀ» »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀ¸·Î °¡Á¤ÇÑ´Ù. Accept-Charset = "Accept-Charset" ":" 1#( charset [ ";" "q" "=" qvalue ] ) ¹®ÀÚ Á¶ÇÕ °ªÀº 3.4 Àý¿¡ ¼³¸íµÇ¾î ÀÖ´Ù. °¢°¢ÀÇ charset´Â ÇØ´ç charset¿¡ ´ëÇÑ »ç¿ëÀÚÀÇ ¼±È£ »çÇ×À» Ç¥½ÃÇÏ´Â °ü·ÃµÈ Ç°Áú °ªÀ» °¡Áú ¼ö ÀÖ´Ù. ±âº»°ªÀº q=1ÀÌ¸ç ¿¹´Â ´ÙÀ½°ú °°´Ù. Accept-Charset: iso-8859-5, unicode-1-1;q=0.8 Accept-Charset Çì´õ°¡ ÀÖÀ¸¸é ±âº»°ªÀº ¸ðµç ¹®ÀÚ Á¶ÇÕÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. Accept-Charset Çì´õ °¡ ÀÖ°í ¼­¹ö°¡ Accept-Charset Çì´õ¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Â ÀÀ´äÀ» ¹ß¼ÛÇÒ ¼ö ¾øÀ» ¶§ ºñ·Ï ÀÀ´äÀ» ¹ß¼ÛÇÒ ¼ö´Â ÀÖÁö¸¸ ¼­¹ö´Â 406 (not acceptable) »óÅ ÄÚµåÀÇ ¿¡·¯ ¸Þ½ÃÁö¸¦ ¹ß¼ÛÇØ¾ß ÇÑ´Ù. 14.3 Accept-Encoding Accept-Encoding request-header Çʵå´Â Accept¿Í À¯»çÇÏÁö¸¸ ÀÀ´ä¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Â content- coding °ª(¼½¼Ç 14.12)¿¡ Á¦ÇÑÀÌ ÀÖ´Ù. Accept-Encoding = "Accept-Encoding" ":" #( content-coding ) ÀÌÀÇ »ç¿ë ¿¹´Â, Accept-Encoding: compress, gzip ¿äû¿¡ Accept-Encoding Çì´õ°¡ ¾øÀ¸¸é ¼­¹ö´Â Ŭ¶óÀ̾ðÆ®°¡ ¾î¶°ÇÑ content codingµµ Á¢¼öÇÒ ¼ö ÀÖ´Ù°í °¡Á¤ÇÒ ¼ö ÀÖ´Ù. Accept-Encoding Çì´õ°¡ ÀÖ°í ¼­¹ö°¡ Accept- Encoding Çì´õ¸¦ »ç¿ë ÇÒ ¼ö ÀÖ´Â ÀÀ´äÀ» ¹ß¼ÛÇÒ ¼ö ¾øÀ» ¶§ ºñ·Ï ÀÀ´äÀ» ¹ß¼ÛÇÒ ¼ö´Â ÀÖÁö¸¸ ¼­¹ö´Â 406 (not acceptable) »óÅ ÄÚµåÀÇ ¿¡·¯ ¸Þ½ÃÁö¸¦ ¹ß¼ÛÇØ¾ß ÇÑ´Ù. [Page 97] °ªÀÌ ºñ¾î ÀÖÀ¸¸é ¾Æ¹« °Íµµ Á¢¼öÇÒ ¼ö ¾øÀ½À» Ç¥½ÃÇÑ´Ù. 14.4 Accept-Language Accept-Language request-header Çʵå´Â Accept¿Í À¯»çÇÏÁö¸¸ ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ÀÚ¿¬½º·¯¿î ¾ð¾î(natural languages) ¼¼Æ®¿¡ Á¦ÇÑÀÌ ÀÖ´Ù. Accept-Language = "Accept-Language" ":" 1#( language-range [ ";" "q" "=" qvalue ] ) language-range = ( ( 1*8ALPHA *( "-" 1*8ALPHA ) ) | "*" ) °¢°¢ÀÇ language-range´Â ÇØ´ç range°¡ ¸í½ÃÇÏ´Â ¾ð¾î¿¡ ´ëÇÑ »ç¿ëÀÚÀÇ ¿¹»ó ¼±È£ »óŸ¦ Ç¥½Ã ÇÏ´Â °ü·Ã Ç°Áú °ªÀ» °¡Áö°í ÀÖ´Ù. Ç°Áú ±âº» °ªÀº "q=1" ÀÌ¸ç ¿¹´Â ´ÙÀ½°ú °°´Ù. Accept-Language: da, en-gb;q=0.8, en;q=0.7 ÀÌ°ÍÀº "³ª´Â µ§¸¶Å©¾î¸¦ ¼±È£ÇÏÁö¸¸ ¿µ±¹ ¿µ¾î ¹× ´Ù¸¥ À¯ÇüÀÇ ¿µ¾îµµ Á¢¼öÇÒ °ÍÀÌ´Ù."¸¦ ÀÇ ¹ÌÇÑ´Ù. űװ¡ ¿ÏÀüÈ÷ µ¿ÀÏÇϰųª Á¢µÎ»ç µÚÀÇ Ã¹ ÅÂ±× ¹®ÀÚ°¡ "-" À̸é language-range ´Â language-tag ¿Í ÀÏÄ¡ÇÑ´Ù. Ư¼ö ¿µ¿ª(special range) "*"°¡ Accept-Language Çʵ忡 ÀÖÀ¸¸é Accept- Language Çʵ忡 ÀÖ´Â ´Ù¸¥ range¿¡ ÀÏÄ¡ÇÏÁö ¾Ê´Â ¸ðµç ű׸¦ ÀÏÄ¡½ÃÄÑ ÁØ´Ù. ÁÖÀÇ : Á¢µÎ»ç ÀÏÄ¡ ¿øÄ¢ÀÇ »ç¿ëÀº ¾ð¾î űװ¡ "»ç¿ëÀÚ°¡ ƯÁ¤ ű×ÀÇ ¾ð¾î¸¦ ÀÌÇØÇÑ´Ù¸é ÀÌ »ç¿ëÀÚ´Â ÀÌ Å±װ¡ Á¢µÎ»ç·Î ¾²ÀÎ ¸ðµç ¾ð¾î ű׸¦ ÀÌÇØÇÒ °ÍÀÌ´Ù."¶ó´Â °ÍÀÌ Ç×»ó »ç ½ÇÀ̶ó´Â ¹æ½ÄÀ¸·Î ºÎ¿© µÇ¾ú´Ù´Â °ÍÀ» ÀǹÌÇÏÁö´Â ¾Ê´Â´Ù. Á¢µÎ»ç ¿øÄ¢Àº ´Ü¼øÈ÷ ÀÌ°ÍÀÌ »ç½ÇÀÏ °æ¿ì¿¡¸¸ Á¢µÎ»ç »ç¿ëÀ» Çã¶ôÇÏ´Â °ÍÀÌ´Ù. Accept-Language ÇʵåÀÇ language-tag°¡ ºÎ¿©ÇÑ ¾ð¾î Ç°Áú ¿ä¼Ò´Â language-tag¿Í ÀÏÄ¡ÇÏ´Â Çʵå ÀÇ °¡Àå ±ä language-range Ç°Áú °ªÀÌ´Ù. ÇʵåÀÇ language-range¿Í ÀÏÄ¡Çϴ űװ¡ ¾øÀ¸¸é ¾ð¾î Ç°Áú ¿ä¼Ò´Â 0À¸·Î ºÎ¿©µÈ´Ù. ¿ä±¸¿¡ Accept-Language Çì´õ°¡ ¾øÀ¸¸é ¼­¹ö´Â ¸ðµç ¾ð¾î¸¦ µ¿ µîÇÏ°Ô ¼ö¿ëÇÒ ¼ö ÀÖ´Ù°í °¡Á¤ÇØ¾ß ÇÑ´Ù. Accept-Language Çì´õ°¡ ÀÖÀ¸¸é 0 ÀÌ»óÀÇ Ç°Áú ¿ä¼Ò ¸¦ ºÎ¿© ¹ÞÀº ¸ðµç ¾ð¾î¸¦ ¼ö¿ëÇÒ ¼ö ÀÖ´Ù. ¸ðµç ¿ä±¸¿¡ »ç¿ëÀÚÀÇ ÀüüÀûÀÎ ¾ð¾î ¼±È£ »óŸ¦ Æ÷ÇÔÇÑ Accept-Language Çì´õ¸¦ ¹ß¼ÛÇÏ´Â °ÍÀÌ »ç¿ëÀÚÀÇ »ç»ýÈ° º¸È£¿¡ ´ëÇÑ ±â´ë¿¡ ¿ªÇàÇÒ ¼öµµ ÀÖ´Ù. ÀÌ ¹®Á¦¿¡ °üÇÑ ÅäÀÇ´Â 15.7 Àý À» ÂüÁ¶ÇÑ´Ù. [Page 98] ÁÖÀÇ : ÀÌÇØÁ¤µµ(intelligibility)´Â °³º°ÀûÀÎ »ç¿ëÀÚ¿¡ µû¶ó ´Ù¸£¹Ç·Î Ŭ¶óÀ̾ðÆ® ¾ÖÇø®ÄÉÀÌ¼Ç Àº »ç¿ëÀÚ°¡ ¿øÇÏ´Â ¾ð¾î¸¦ ¼±ÅÃÇÒ ¼ö ÀÖµµ·Ï ÇÒ °ÍÀ» ÃßõÇÑ´Ù. ¼±ÅÃÀ» ÇÒ ¼ö ¾øÀ¸¸é ¿ä±¸ ¿¡ Accept-Language Çì´õ Çʵ带 Á¦°øÇؼ­´Â ¾È µÈ´Ù. 14.5 Accept-Ranges Accept-Ranges response-header Çʵå´Â ¼­¹ö°¡ ÀÚ¿ø¿¡ ´ëÇÑ ¿µ¿ª ¿ä±¸(range requests)¸¦ Á¢¼öÇÏ¿´ ´Ù´Â °ÍÀ» Ç¥½ÃÇÑ´Ù. Accept-Ranges = "Accept-Ranges" ":" acceptable-ranges acceptable-ranges = 1#range-unit | "none" Byte-range ¿ä±¸¸¦ Á¢¼öÇÑ ¿ø¼­¹ö´Â ´ÙÀ½°ú °°ÀÌ ¹ß¼ÛÇÒ ¼ö ÀÖ´Ù. Accept-Ranges: bytes ±×·¯³ª ¹Ýµå½Ã ÀÌ·¸°Ô ÇØ¾ß ÇÏ´Â °ÍÀº ¾Æ´Ï´Ù. Ŭ¶óÀ̾ðÆ®´Â °ü·ÃµÈ ÀÚ¿ø¿¡ ´ëÇØ ÀÌ Çì´õ¸¦ ¼ö½ÅÇÏÁö ¾Ê°íµµ byte-range ¿ä±¸¸¦ »ý»êÇÒ ¼ö ÀÖ´Ù. ¾î¶°ÇÑ ÇüÅÂÀÇ byte-range ¿ä±¸µµ Á¢¼öÇÏÁö ¾Ê´Â ¿ø¼­¹ö´Â ´ÙÀ½À» ¹ß¼ÛÇÏ¿© Ŭ¶óÀ̾ðÆ®°¡ ¿µ¿ª ¿ä±¸¸¦ ½ÃµµÇÏÁö ¸»µµ·Ï Ãæ°íÇÒ ¼ö ÀÖ´Ù. Accept-Ranges: none 14.6 Age Age response-header Çʵå´Â ¿ø¼­¹ö°¡ ÀÀ´ä(¶Ç´Â ÀÌÀÇ °ËÁõ)À» »ý¼ºÇÑ ÀÌÈÄ ½Ã°£¿¡ ´ëÇÑ ¹ß¼ÛÀÚ ÀÇ ¿¹»ó °ªÀ» Àü´ÞÇÑ´Ù. ij½ÃµÈ ÀÀ´äÀº °æ°ú ½Ã°£ÀÌ ½Å¼±ÇÑ ½Ã°£(freshness lifetime)À» ÃÊ°úÇÏÁö ¾Ê¾ÒÀ¸¸é "½Å¼±ÇÏ´Ù." °æ°ú ½Ã°£ °ªÀº 13.2.3Àý¿¡ ±â¼úÇÑ ¹Ù¿Í °°ÀÌ »êÃâÇÑ´Ù. Age = "Age" ":" age-value age-value = delta-seconds °æ°ú ½Ã°£ °ªÀº À½¼ö°¡ ¾Æ´Ñ ½ÊÁø¼ö Á¤¼öÀÌ¸ç ½Ã°£À» ÃʷΠǥ½ÃÇÑ´Ù. [Page 99] ij½Ã°¡ °¡Àå Å©°Ô Ç¥½ÃÇÒ ¼ö ÀÖ´Â Á¤¼ö °ªº¸´Ù Å« °ªÀ» ¼ö½ÅÇϰųª °æ°ú ½Ã°£ °è»êÀÌ ¿À¹öÇà ·Î¿ì(overflow)µÇ¸é Age Çì´õÀÇ °ªÀ» ¹Ýµå½Ã 2147483648 (2^31)·Î Àü¼ÛÇØ¾ß ÇÑ´Ù. HTTP/1.1 ij½Ã ´Â ¸ðµç ÀÀ´ä¿¡ ¹Ýµå½Ã Age Çì´õ¸¦ ¹ß¼ÛÇØ¾ß ÇÑ´Ù. ij½Ã´Â ÃÖ¼Ò 31 ºñÆ® ¹üÀ§ÀÇ »çÄ¢¿¬»ê À¯ Çü °ªÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. 14.7 Allow Allow entity-header Çʵå´Â Request-URI °¡ ½Äº°ÇÑ ÀÚ¿øÀÌ Áö¿øÇÏ´Â method ¼¼Æ® ¸ñ·ÏÀ» Ç¥½ÃÇÑ ´Ù. ÀÌ ÇʵåÀÇ ¿ëµµ´Â ¾ö°ÝÇÏ°Ô ÀÚ¿ø°ú °ü·ÃµÈ À¯È¿ÇÑ methodÀÇ ¼ö½ÅÀ» ¾Ë¸®±â À§ÇÔÀÌ´Ù. Allow Çì´õ Çʵå´Â ¹Ýµå½Ã 405 (Method Not Allowed) ÀÀ´ä ³»¿¡ Ç¥½ÃµÇ¾î¾ß ÇÑ´Ù. Allow = "Allow" ":" 1#method ÀÌÀÇ »ç¿ë ¿¹´Â, Allow: GET, HEAD, PUT ÀÌ Çʵå´Â Ŭ¶óÀ̾ðÆ®°¡ ´Ù¸¥ methods¸¦ »ç¿ëÇÏ°íÀÚ ½ÃµµÇÏ´Â °ÍÀ» ¹æÁöÇÒ ¼ö´Â ¾ø´Ù. ±×·¯³ª Allow Çì´õ Çʵ尡 Ç¥½ÃÇÏ´Â ³»¿ëÀº ÁؼöÇؾ߸¸ ÇÑ´Ù. »ç¿ëÇÒ ¼ö ÀÖ´Â ½ÇÁ¦ ¼¼Æ®´Â °¢ ¿ä±¸°¡ ¹ß¼ÛµÇ´Â ½ÃÁ¡¿¡¼­ ¿ø¼­¹ö°¡ °áÁ¤ÇÑ´Ù. Allow Çì´õ Çʵ忡 PUT ¿äûÀ» »õ·Ó°Å³ª º¯°æµÈ ÀÚ¿øÀÌ Áö¿øÇÏ´Â method¸¦ ÃßõÇϱâ À§ÇØ Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. ¼­¹ö°¡ ¹Ýµå½Ã ÀÌ·¯ÇÑ method¸¦ Áö¿øÇÒ ÇÊ¿ä´Â ¾øÀ¸³ª ½ÇÁ¦ÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Â method¸¦ Á¦°øÇÏ´Â Allow Çì´õ Çʵ带 ÀÀ´ä¿¡ Æ÷ÇÔÇؾ߸¸ ÇÑ´Ù. ÇÁ¶ô½Ã´Â ¸í½ÃµÈ ¸ðµç method¸¦ ÀÌÇØÇÏÁö ¸øÇÏ´õ¶óµµ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ ´Ù¸¥ ¼ö´ÜÀ» ÅëÇÏ¿© ¿ø¼­¹ö¿Í Åë½ÅÇÒ ¼öµµ Àֱ⠶§¹®¿¡ Allow Çì´õ Çʵ带 º¯°æÇؼ­´Â Àý´ë·Î ¾È µÈ´Ù. Allow Çì´õ Çʵå´Â ¼­¹ö ¼öÁØ¿¡¼­ ¾î¶°ÇÑ method°¡ ±¸ÇöµÇ¾ú´Â°¡ Ç¥½ÃÇÏÁö ¾Ê´Â´Ù. ¼­¹ö´Â Àü üÀûÀ¸·Î ¼­¹ö »ó¿¡¼­ ¾î¶°ÇÑ method°¡ ±¸ÇöµÇ¾ú´Â°¡ Ç¥½ÃÇϱâ À§ÇØ Public response-header ÇÊ µå(¼½¼Ç 14.35)¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. 14.8 Authorization ¼­¹ö¿¡¼­ ÀÚ½ÅÀ» ÀÎÁõÇÏ°íÀÚ ÇÏ´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â(²À ±×·± °ÍÀº ¾Æ´ÏÁö¸¸ ´ë°³ÀÇ °æ¿ì 401 ÀÀ´äÀ» ¼ö½ÅÇÑ ÈÄ) ¿ä±¸¿¡ Authorization request-header Çʵ带 Æ÷ÇÔÇÏ¿© ÀÚ½ÅÀÇ ÀÎÁõ ȹµæÀ» ½Ã µµÇÒ ¼ö ÀÖ´Ù. Authorization ÇÊµå °ªÀº ¿ä±¸ÇÏ°í ÀÖ´Â ÀÚ¿øÀÇ ¿µ¿ª¿¡ ´ëÇÑ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®ÀÇ ÀÎÁõ ȹµæ Á¤º¸¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Â º¸Áõ¼­(credentials)·Î ±¸¼ºµÇ¾î ÀÖ´Ù. [Page 100] Authorization = "Authorization" ":" credentials HTTP Á¢¼Ó ÀÎÁõ ȹµæÀº 11Àå¿¡ ±â¼úµÇ¾î ÀÖ´Ù. ¿ä±¸¿¡ ´ëÇÑ ÀÎÁõÀ» ȹµæÇÏ°í ¿µ¿ªÀÌ ¸í½ÃµÇ ¸é µ¿ÀÏÇÑ º¸Áõ¼­´Â ÇØ´ç ¿µ¿ª ³»ÀÇ ´Ù¸¥ ¿ä±¸¿¡ ´ëÇؼ­µµ À¯È¿ÇØ¾ß ÇÑ´Ù. °øÀ¯µÈ ij½Ã(13.Àý ÂüÁ¶)°¡ Çʵ尡 Æ÷ÇÔµÈ ¿ä±¸¸¦ ¼ö½ÅÇϸé ij½Ã´Â ´ÙÀ½¿¡ ¸í½ÃµÈ ¿¹¿Ü »çÇ× ÀÌ¿Ü¿¡´Â ´Ù¸¥ ¿ä±¸¿¡ ´ëÇÑ ´ë´äÀ¸·Î¼­ ÇØ´ç ÀÀ´äÀ» ¸®ÅÏÇؼ­´Â Àý´ë ¾È µÈ´Ù. 1. ÀÀ´äÀÌ "proxy-revalidate" Cache-Control Áö½ÃÀÚ¸¦ Æ÷ÇÔÇÏ°í ÀÖÁö ¾ÊÀ¸¸é ij½Ã´Â ÇØ´ç ÀÀ ´äÀ» °è¼ÓµÇ´Â ¿ä±¸¿¡ ´ëÇÑ ´ë´äÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª ÇÁ¶ô½Ã ij½Ã´Â ¿ø¼­¹ö°¡ »õ·Î¿î ¿ä±¸¸¦ ÀÎÁõÇÒ ¼ö ÀÖµµ·Ï »õ·Î¿î ¿ä±¸ÀÇ request-header¸¦ ÀÌ¿ëÇÏ¿© ¹Ýµå½Ã ¸ÕÀú »õ·Î¿î ¿ä±¸¸¦ Àç°ËÁõÇØ¾ß ÇÑ´Ù. 2. ÀÀ´äÀÌ "proxy-revalidate" Cache-Control Áö½ÃÀÚ¸¦ Æ÷ÇÔÇÏ°í ÀÖÀ¸¸é ij½Ã´Â ÇØ´ç ÀÀ´äÀ» °è¼ÓµÇ´Â ¿ä±¸¿¡ ´ëÇÑ ´ë´äÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª ¸ðµç ij½Ã´Â ¿ø¼­¹ö°¡ ¸ðµç ¿ä ±¸¸¦ ÀÎÁõÇÒ ¼ö ÀÖµµ·Ï »õ·Î¿î ¿ä±¸ÀÇ request-header¸¦ ÀÌ¿ëÇÏ¿© ¹Ýµå½Ã ¸ÕÀú »õ·Î¿î ¿ä±¸¸¦ Àç°ËÁõÇØ¾ß ÇÑ´Ù. 3. ÀÀ´äÀÌ " public" Cache-Control Áö½ÃÀÚ¸¦ Æ÷ÇÔÇÏ°í ÀÖÀ¸¸é À̸¦ °è¼ÓµÇ´Â ¿ä±¸¿¡ ´ëÇÑ ´ë ´äÀ¸·Î ¸®ÅÏÇÒ ¼ö ÀÖ´Ù. 14.9 Cache-Control Cache-Control general-header Çʵå´Â Request/Response chain¿¡ µû¶ó ¸ðµç ij½Ã ¸ÞÄ¿´ÏÁòÀÌ ¹Ýµå ½Ã µû¶ó¾ß ÇÏ´Â Áö½ÃÀÚ¸¦ Ç¥½ÃÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. Áö½ÃÀڴ ij½Ã°¡ ¿ä±¸³ª ÀÀ´äÀ» ¹Ù¶÷Á÷ÇÏÁö ¸øÇÏ°Ô ¹æÇØÇÏÁö ¸øÇϵµ·Ï ÇÏ´Â ÇàÅÂ(behavior)¸¦ ¸í½ÃÇÑ´Ù. ÀÌ·¯ÇÑ Áö½ÃÀÚµéÀº ´ë°³ ±âº»ÀûÀΠij½Ã ¾Ë°í¸®ÁòÀ» ¹«½ÃÇÑ´Ù. ij½Ã Áö½ÃÀÚ ¿ä±¸¿¡ Áö½ÃÀÚ°¡ Á¸ÀçÇÑ´Ù´Â °ÍÀÌ ÀÀ´ä¿¡µµ µ¿ÀÏÇÑ Áö½ÃÀÚ¸¦ ºÎ¿©ÇØ¾ß ÇÑ´Ù´Â °ÍÀÇ ÀǹÌÇÏÁö ¾Ê´Ù´Â Àǹ̿¡¼­ ´Ü ¹æÇâ(unidirectional)ÀÌ´Ù. HTTP/1.0 ij½Ã´Â Cache-ControlÀ» ±¸ÇöÇÏ°í ÀÖÁö ¾ÊÀ¸¸é Pragma: no-cache (14.32Àý ÂüÁ¶)¸¸À» ±¸ÇöÇÏ°í ÀÖ´Ù´Â °Í¿¡ ÁÖÀÇÇÑ´Ù. ij½Ã Áö½ÃÀÚ´Â Request/Response chain¸¦ µû¶ó¼­ ¸ðµç ¼ö½ÅÃø¿¡°Ô Àû¿ëÇÒ ¼ö Àֱ⠶§¹®¿¡ ÇØ´ç ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ Â÷ÁöÇÏ´Â Áß¿äµµ¿¡ °ü°è ¾øÀÌ ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌ ¾ÖÇø®ÄÉÀ̼ÇÀº ÀÌ Áö½Ã ÀÚ¸¦ ¹Ýµå½Ã Åë°ú½ÃÄÑ¾ß ÇÑ´Ù. ƯÁ¤ÇÑ Ä³½Ã¸¦ À§ÇÑ cache-directive¸¦ ¸í½ÃÇÏ´Â °ÍÀÌ ºÒ°¡´ÉÇÏ Áö´Â ¾Ê´Ù. Cache-Control = "Cache-Control" ":" 1#cache-directive cache-directive = cache-request-directive | cache-response-directive [Page 101] cache-request-directive = "no-cache" [ "=" <"> 1#field-name <"> ] | "no-store" | "max-age" "=" delta-seconds | "max-stale" [ "=" delta-seconds ] | "min-fresh" "=" delta-seconds | "only-if-cached" | cache-extension cache-response-directive = "public" | "private" [ "=" <"> 1#field-name <"> ] | "no-cache" [ "=" <"> 1#field-name <"> ] | "no-store" | "no-transform" | "must-revalidate" | "proxy-revalidate" | "max-age" "=" delta-seconds | cache-extension cache-extension = token [ "=" ( token | quoted-string ) ] Áö½ÃÀÚ¿¡ ¾î¶°ÇÑ 1#field-name ÆĶó¹ÌÅ͵µ ¾øÀ¸¸é ±× Áö½ÃÀÚ´Â Àüü ¿ä±¸ ¶Ç´Â ÀÀ´ä¿¡ Àû¿ëµÈ ´Ù. Áö½ÃÀÚ¿¡ 1#field-name ÆĶó¹ÌÅÍ°¡ ÀÖÀ¸¸é ±× Áö½ÃÀÚ´Â ÇØ´ç ÇÊµå ¶Ç´Â Çʵåµé¿¡°Ô¸¸ Àû¿ë µÇ°í ³ª¸ÓÁö ¿ä±¸³ª ÀÀ´ä¿¡´Â Àû¿ëµÇÁö ¾Ê´Â´Ù. ÀÌ ¸ÞÄ¿´ÏÁòÀÌ È®À强À» Áö¿øÇÑ´Ù. ÇâÈÄ HTTP ±Ô¾àÀÇ ±¸ÇöÀº HTTP/1.1¿¡ Á¤ÀǵÇÁö ¾ÊÀº Çì´õ Çʵ忡 ÀÌ Áö½ÃÀÚ¸¦ Àû¿ëÇÒ ¼öµµ ÀÖ´Ù. Cache-control Áö½ÃÀÚ´Â ´ÙÀ½°ú °°Àº ÀϹÝÀûÀÎ ¹üÁÖ·Î ºÐ·ùÇÒ ¼ö ÀÖ´Ù. ? ij½ÃÇÒ ¼ö ÀÖ´Â °Í¿¡ ´ëÇÑ Á¦ÇÑ: ¿ÀÁ÷ ¿ø¼­¹ö¸¸ÀÌ Á¦ÇÑÀ» µÑ ¼ö ÀÖ´Ù. ? ±âº»ÀûÀÎ À¯È¿ÀÏ ¸ÞÄ¿´ÏÁòÀÇ º¯°æ: ¿ø¼­¹ö ¹× »ç¿ëÀÚ ¿¡ÀÌÀüÆ® ¸ðµÎ°¡ ºÎ°úÇÒ ¼ö ÀÖ´Ù. ? ij½Ã °ËÁõÀ̳ª °»½Å¿¡ ´ëÇÑ ÅëÁ¦: ¿ÀÁ÷ ¿ø¼­¹ö¸¸ÀÌ ÅëÁ¦ÇÒ ¼ö ÀÖ´Ù. ? ¿£ÅÍƼÀÇ º¯Çü¿¡ ´ëÇÑ ÅëÁ¦. ? ij½Ã ½Ã½ºÅÛ¿¡ ´ëÇÑ È®Àå(extensions) [Page 102] 14.9.1 ¹«¾ùÀ» ij½ÃÇÒ ¼ö Àִ°¡ ±âº»ÀûÀ¸·Î ¿ä±¸ methodÀÇ ¿ä±¸»çÇ×, ¿ä±¸ Çì´õ Çʵå, ÀÀ´ä »óÅ°¡ ij½ÃÇÒ ¼ö ÀÖ´Ù°í Ç¥½ÃÇÏ ´Â ÀÀ´äÀº ij½ÃÇÒ ¼ö ÀÖ´Ù. 13.4ÀýÀº ij½ÃÇÒ ¼ö ÀÖ´Â ±âº»°ªµé¿¡ ´ëÇÏ¿© ¿ä¾àÇØ ³õ¾Ò´Ù. ´ÙÀ½ ÀÇ Cache-Control ÀÀ´ä Áö½ÃÀÚ´Â ¿ø¼­¹ö°¡ ÀÀ´äÀÇ Ä³½Ã °¡´É¼ºÀ» ¹«½ÃÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. public º¸Åë ºñ °øÀ¯ ij½Ã ³»¿¡¼­¸¸ ij½ÃÇÒ ¼ö Àְųª ij½ÃÇÒ ¼ö ¾øÁö¸¸ ¾î¶² ij½ÃÀ̵ç ÀÀ´äÀ» ij ½ÃÇÒ ¼ö ÀÖÀ½(cachable)À» Ç¥½ÃÇÑ´Ù.(Ãß°¡ÀûÀÎ Á¤º¸´Â 14.8ÀýÀÇ Authorization ÂüÁ¶) private ÀÀ´ä ¸Þ½ÃÁöÀÇ Àüü ȤÀº ÀϺκÐÀ» ´ÜÀÏ »ç¿ëÀÚ¸¸ÀÌ »ç¿ëÇϸç Àý´ë °øÀ¯ ij½Ã(shared cache) ¿¡ ÀÇÇØ Ä³½ÃÇؼ­´Â ¾ÈµÊÀ» Ç¥½ÃÇÑ´Ù. ¿ø¼­¹ö°¡ ÀÀ´äÀÇ Æ¯Á¤ ºÎºÐÀÌ ´ÜÀÏ »ç¿ëÀÚ¸¸À» À§ÇÑ °ÍÀÌ¸ç ´Ù¸¥ »ç¿ëÀÚÀÇ ¿ä±¸¿¡ ´ëÇÑ À¯È¿ÇÑ ÀÀ´äÀº ¾Æ´Ï¶ó´Â °ÍÀ» ¸í½ÃÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. »çÀûÀÎ(ºñ °øÀ¯) ij½Ã´Â ÀÀ´äÀ» ij½ÃÇÒ ¼öµµ ÀÖ´Ù. ÁÖÀÇ : »çÀûÀ̶ó´Â ´Ü¾î »ç¿ëÀÇ Àǹ̴ ÀÀ´äÀ» ij½ÃÇÒ ¼ö ÀÖ´Â ºÎºÐ¸¸À» ÅëÁ¦ÇÏ´Â °ÍÀÌ¸ç ¸Þ½ÃÁö ³»¿ë¿¡ ´ëÇÑ º¸È£¸¦ È®º¸ÇÒ ¼ö´Â ¾ø´Ù. no-cache ÀÀ´äÀÇ Àüü ȤÀº ºÎºÐÀ» ¹Ýµå½Ã ij½ÃÇØ¾ß ÇÔÀ» Ç¥½ÃÇØ¾ß ÇÑ´Ù. ¿ø¼­¹ö°¡ Ŭ¶óÀ̾ðÆ® ¿ä±¸ ¿¡ ³°Àº ÀÀ´ä(stale response)À» ¸®ÅÏÇϵµ·Ï ¼³Á¤µÈ ij½Ã¿¡ ÀÇÇؼ­µµ ij½Ã¸¦ ÇÏÁö ¸øÇϵµ·Ï ÇÑ ´Ù. ÁÖÀÇ : ´ëºÎºÐÀÇ HTTP/1.0 ij½Ã´Â ÀÌ ÁöħÀ» ÀÎÁöÇÏÁö ¸øÇϰųª µû¸£Áö ¾ÊÀ» °ÍÀÌ´Ù. 14.9.2 ij½Ã¿¡ ÀÇÇØ ¹«¾ùÀ» ÀúÀåÇÒ ¼ö Àִ°¡ ÀúÀå ±ÝÁö(no-store) Áö½ÃÀÚÀÇ ¸ñÀûÀº ºÎÁÖÀÇÇÏ°Ô ¹Î°¨ÇÑ Á¤º¸¸¦ º¸À¯(¿¹¸¦ µé¾î ¹é¾÷ Å×ÀÌÇÁ À§¿¡)Çϰųª ¹èÆ÷ÇÏ´Â °ÍÀ» ¹æÁöÇÏ´Â °ÍÀÌ´Ù. No-store Áö½ÃÀÚ´Â Àüü ¸Þ½ÃÁö¿¡ Àû¿ëµÇ¸é ÀÀ´ä ¹× ¿ä±¸ ¸ðµÎ¿¡ ¹ß¼ÛÇÒ ¼ö ÀÖ´Ù. ¿ä±¸ ³»¿¡ Æ÷ÇÔÇÏ¿© ¹ß¼ÛÇßÀ¸¸é ij½Ã´Â ¿ä±¸ÀÇ ¾î¶² ºÎºÐ ¶Ç ´Â ÀÌ ¿ä±¸¿¡ ´ëÇÑ ¾î¶°ÇÑ ÀÀ´äµµ ij½ÃÇؼ­´Â ¾È µÈ´Ù. ÀÀ´ä¿¡ ¹ß¼ÛÇßÀ¸¸é ij½Ã´Â ÀÌ ÀÀ´äÀÇ ¾î¶² ºÎºÐ ¶Ç´Â ÀÀ´äÀ» À̲ø¾î ³½ ¿ä±¸¸¦ ÀúÀåÇؼ­´Â ¾È µÈ´Ù. ÀÌ Áö½ÃÀÚ´Â ºñ °øÀ¯ ¹× °øÀ¯ ij½Ã¿¡ ¸ðµÎ Àû¿ëµÈ´Ù. ÀÌ ¹®ÀåÀÇ "ÀúÀåÇؼ­´Â ¾È µÈ´Ù"ÀÇ Àǹ̴ ij½Ã°¡ ÀǵµÀûÀ¸·Î °íÁ¤ Àú Àå ¸Åü(non-volatile storage)¿¡ Á¤º¸¸¦ ÀúÀåÇؼ­´Â ¾È µÇ¸ç ºñ °íÁ¤ ÀúÀå ¸Åü¿¡¼­´Â Á¤º¸¸¦ Àü ¼ÛÇÑ ÈÄ ÃÖ´ëÇÑ »¡¸® Á¤º¸¸¦ »èÁ¦Çϵµ·Ï ÃÖ¼±ÀÇ ³ë·ÂÀ» ´ÙÇØ¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù. [Page 103] ÀÌ Áö½ÃÀÚ°¡ ÀÀ´ä°ú °ü·Ã µÇ¾úÀ» ¶§µµ »ç¿ëÀÚ´Â ¸í¹éÇÏ°Ô ÀÌ ÀÀ´äÀ» ij½Ã ½Ã½ºÅÛ ¿ÜºÎ¿¡ ÀúÀå ÇÒ ¼ö ÀÖ´Ù.(¿¹¸¦ µé¾î "Save As" ´ëÈ­»óÀÚ) ±â·Ï ¹öÆÛ´Â ÀÌ·¯ÇÑ ÀÀ´äÀ» ÀϹÝÀû ÀÛ¾÷ÀÇ ÀÏ ºÎºÐ À¸·Î ÀúÀåÇÒ ¼öµµ ÀÖ´Ù. ÀÌ Áö½ÃÀÚÀÇ ¸ñÀûÀº ƯÁ¤ »ç¿ëÀÚÀÇ ¸í½ÃµÈ ÇÊ¿ä Á¶°Ç ¹× ij½Ã µ¥ÀÌÅÍ ±¸Á¶Ã¼¿¡ ¿¹»óÇÏÁö ¸øÇÑ Á¢¼ÓÀ» ÅëÇÑ ¿ì¹ßÀûÀÎ Á¤º¸ÀÇ À¯ÃâÀ» °ÆÁ¤ÇÏ´Â ¼­ºñ½º ÀúÀÛÀÚÀÇ ÇÊ¿ä Á¶°ÇÀ» ÃæÁ·½ÃÅ°´Â °ÍÀÌ ´Ù. ¾î¶² Àǹ̿¡¼­ ÀÌ Áö½ÃÀÚÀÇ »ç¿ëÀÌ »ç»ýÈ° º¸È£¸¦ Çâ»ó ½ÃÄÑ ÁÙ ¼ö ÀÖÁö¸¸ ÀÌ°ÍÀÌ »ç»ýÈ° À» º¸È£ÇÏ´Â ½Å·ÚÇϰųª ÃæºÐÇÑ ¸ÞÄ¿´ÏÁòÀº ¾Æ´Ï¶ó´Â Á¡¿¡ À¯ÀÇÇØ¾ß ÇÑ´Ù. ƯÈ÷ ³ª»Û Àǵµ¸¦ °¡Áö°Å³ª ŸÇùÀûÀΠij½Ã´Â ÀÌ Áö½ÃÀÚ¸¦ ÀÎÁöÇÏÁö ¸øÇϰųª º¹Á¾ÇÏÁö ¾ÊÀ» ¼ö ÀÖ´Ù. ¶ÇÇÑ Åë½Å ³×Æ®¿öÅ©´Â Á¤º¸ À¯Ãâ¿¡ Ãë¾àÇÑ ÆíÀÌ´Ù. 14.9.3 ±âº»ÀûÀÎ ¸¸±âÀÏ ¸ÞÄ¿´ÏÁòÀÇ º¯°æ ¿ø¼­¹ö´Â Expires Çì´õ(14.21Àý ÂüÁ¶)¸¦ ÀÌ¿ëÇÏ¿© ¿£ÅÍƼÀÇ À¯È¿ ½Ã°£À» ¸í½ÃÇÑ´Ù. ´ë¾ÈÀ¸·Î ÀÀ´ä¿¡ max-age Áö½ÃÀÚ¸¦ »ç¿ëÇÏ¿© Ç¥½ÃÇÒ ¼öµµ ÀÖ´Ù. ÀÀ´ä¿¡ Expires ¹× max-age Áö½ÃÀÚ°¡ ¸ðµÎ Æ÷ÇԵǾî ÀÖÀ¸¸é max-age Áö½ÃÀÚ°¡ Expires Çì´õ°¡ ´õ Á¦ÇÑÀûÀ̶ó ÇÒÁö¶óµµ À̸¦ ¹«½ÃÇÑ´Ù. ÀÌ ¿øÄ¢Àº ¿ø¼­¹ö°¡ HTTP/1.0 ij½Ã¿¡ HTTP/1.1 ij½Ã (¶Ç´Â ÀÌÈÄ ¹öÀü)º¸´Ù ±ä À¯È¿½Ã°£À» ÀÀ´ä¿¡ ºÎ¿©ÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ¾î¶°ÇÑ HTTP/1.0 ij½Ã°¡ µ¿½ÃÈ­µÇÁö ¾ÊÀº(desynchronized) ½Ã°è ¶§¹®¿¡ ºÎÀûÀýÇÏ°Ô °æ°ú ½Ã°£À̳ª À¯È¿ ½Ã°£À» °è»êÇßÀ» ¶§ À¯¿ëÇÏ´Ù. ÁÖÀÇ : ÀÌ ±Ô°ÝÀ» µû¸£Áö ¾Ê´Â ´ëºÎºÐÀÇ ÀÌÀü ij½Ã´Â Cache-Control Áö½ÃÀÚ¸¦ ±¸ÇöÇÏÁö ¾Ê´Â ´Ù. Cache-Control Áö½ÃÀÚ¸¦ »ç¿ëÇϱ⠿øÇÏÁö¸¸ HTTP/1.1À» µû¸¥ ij½Ã¸¦ ±ÝÁöÇÏ´Â ¾ÊÁö¸¸ Á¦ ÇÑÇÏ´Â ¿ø¼­¹ö´Â max-age Áö½ÃÀÚ°¡ Expires Çì´õ¸¦ ¹«½ÃÇϸç HTTP/1.1À» µû¸£Áö ¾Ê´Â ij½Ã ´Â max-age Áö½ÃÀÚ¸¦ ÁؼöÇÏÁö ¾Ê´Â´Ù´Â »ç½ÇÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù. ´Ù¸¥ Áö½ÃÀÚ´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ ±âº»ÀûÀÎ À¯È¿ÀÏ ¸ÞÄ¿´ÏÁòÀ» º¯°æÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ÀÌ·¯ ÇÑ Áö½ÃÀÚ´Â ¿ä±¸¿¡ ¸í½ÃÇÒ ¼ö ÀÖ´Ù. max-age Ŭ¶óÀ̾ðÆ®°¡ ÃʷΠǥ½ÃµÈ ½Ã°£º¸´Ù Å©Áö ¾ÊÀº °æ°ú ½Ã°£À» °¡Áø ÀÀ´äÀ» ±â²¨ÀÌ Á¢¼öÇÑ´Ù´Â °ÍÀ» Ç¥½ÃÇÑ´Ù. Max-stale Áö½ÃÀÚµµ Æ÷ÇԵǾî ÀÖÁö ¾ÊÀ¸¸é Ŭ¶óÀ̾ðÆ®´Â ³°Àº ÀÀ´äÀ» Á¢¼öÇÒ Àǻ簡 ¾ø´Â °ÍÀÌ´Ù. min-fresh Ŭ¶óÀ̾ðÆ®°¡ ½Å¼±ÇÑ ±â°£ÀÌ ÃʷΠǥ½ÃµÈ ÇöÀç ÀÇ °æ°ú ½Ã°£º¸´Ù Å©Áö ¾ÊÀº ÀÀ´äÀ» ±â²¨ÀÌ Á¢¼öÇÑ´Ù´Â °ÍÀ» Ç¥½ÃÇÑ´Ù. À̴ Ŭ¶óÀ̾ðÆ®°¡ ÃÖ¼ÒÇÑ ÃʷΠǥ½ÃµÈ ±â°£ µ¿¾È¸¸Àº ½Å¼±ÇÑ ÀÀ´äÀ» ¿øÇÏ´Â °ÍÀÌ´Ù. [Page 104] max-stale Ŭ¶óÀ̾ðÆ®°¡ À¯È¿½Ã°£À» ÃÊ°úÇÑ ÀÀ´äÀ» ±â²¨ÀÌ Á¢¼öÇÑ´Ù´Â °ÍÀ» Ç¥½ÃÇÑ´Ù. Max-stale¿¡ °ªÀÌ ºÎ¿©µÇ¾úÀ¸¸é Ŭ¶óÀ̾ðÆ®´Â ¸í½ÃµÈ Ãʸ¦ ÃÊ°úÇÏÁö ¾Ê´Â ÀÀ´äÀ» ±â²¨ÀÌ Á¢¼öÇÑ´Ù. Max-stale¿¡ °ªÀÌ ºÎ¿©µÇÁö ¾Ê¾ÒÀ¸¸é Ŭ¶óÀ̾ðÆ®´Â ¸ðµç ÀÀ´äÀ» ±â²¨ÀÌ Á¢¼öÇÑ´Ù. ij½Ã°¡ ¿ä±¸ÀÇ max-staleÁö½ÃÀÚ ÀÀ´äÀÇ À¯È¿ ½Ã°£À» ¹«½ÃÇϵµ·Ï ¼³Á¤µÇ¾î ³°Àº ÀÀ´äÀ» ¸®ÅÏÇÏ ¸é ij½Ã´Â ¹Ýµå½Ã Warning 10 (Response is stale)À» ÀÌ¿ëÇÏ¿© Warning Çì´õ¸¦ ³°Àº ÀÀ´ä¿¡ ºÎÂøÇÏ ¿©¾ß ÇÑ´Ù. 14.9.4 ij½ÃÀÇ Àç°ËÁõ ¹× Reload Á¦¾î ¶§¶§·Î »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â ij½Ã°¡ ¿ø¼­¹ö¿¡¼­ ij½Ã¸¦ Àç°ËÁõÇϰųª ¿ø¼­¹ö¿¡¼­ ij½Ã ¿£Æ®¸®¸¦ °»½ÅÇÒ °ÍÀ»(¿ø¼­¹ö·Î ÇâÇÑ °æ·ÎÀÇ ´ÙÀ½ ij½Ã¸¸ÀÌ ¾Æ´Ñ) ¿øÇϰųª °íÁýÇÒ ¼ö ÀÖ´Ù. End-to-end Àç°ËÁõÀº ij½Ã³ª ¿ø¼­¹ö°¡ ij½ÃµÈ ÀÀ´äÀÇ À¯È¿ ½Ã°£À» °ú´ë Æò°¡ÇßÀ» ¶§ ÇÊ¿äÇÒ ¼ö ÀÖ´Ù. End- to-end °»½ÅÀº ¾î¶°ÇÑ ÀÌÀ¯ ¶§¹®¿¡ ij½Ã ¿£Æ®¸®°¡ ¿À¿°µÇ¾úÀ» ¶§ ÇÊ¿äÇÏ´Ù. Ŭ¶óÀ̾ðÆ®°¡ ÀÚ½ÅÀÇ Áö¿ª ij½Ã »çº»À» °¡Áö°í ÀÖÁö ¾Ê°Å³ª("¸í½ÃµÇÁö ¾ÊÀº end-to-end Àç°ËÁõ" À̶ó ºÎ¸¥´Ù), °¡Áö°í ÀÖÀ» ¶§("¸í½ÃµÈ end-to-end Àç°ËÁõÀ̶ó ºÎ¸¥´Ù.)End-to-end Àç°ËÁõÀ» ¿ä±¸ ÇÒ ¼ö ÀÖ´Ù. Ŭ¶óÀ̾ðÆ®´Â Cache-Control Áö½ÃÀÚ¸¦ »ç¿ëÇÏ¿© ´ÙÀ½ÀÇ ¼¼ °¡Áö 󸮸¦ ¸í½ÃÇÒ ¼ö ÀÖ´Ù. End-to-end reload ¿ä±¸¿¡ "no-cache" Cache-Control Áö½ÃÀÚ°¡ Æ÷ÇԵǾî Àְųª HTTP/1.0Ŭ¶óÀ̾ðÆ®¿ÍÀÇ È£È¯¼º À¯Áö¸¦ À§ÇØ "Pragma: no-cache"¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù. ¿äûÀÇ no-cache Áö½ÃÀÚ¿¡´Â ¾Æ¹«·± Çʵå À̸§µµ Æ÷ÇÔµÇÁö ¾Ê´Â´Ù. ¼­¹ö´Â ÀÌ·¯ÇÑ ¿ä±¸¿¡ ÀÀ´äÇÒ ¶§ ij½ÃµÈ »çº»À» »ç¿ëÇؼ­´Â ¾È µÈ ´Ù. Specific end-to-end revalidation ¿ä±¸°¡ ¿ø¼­¹ö·Î ÇâÇÑ °æ·Î¸¦ µû¶ó °¢°¢ÀÇ Ä³½Ã°¡ ÀÚ½ÅÀÇ ¿£Æ®¸®¸¦ ´ÙÀ½ ij½Ã³ª ¿ø ¼­¹ö¿Í Àç°ËÁõÇϵµ·Ï °­¿äÇÏ´Â "max-age=0" Cache-Control Áö½ÃÀÚ¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù. ù ¿ä±¸´Â Ŭ¶ó À̾ðÆ®ÀÇ ÇöÀç °ËÁõÀÚ¿Í ´õºÒ¾î ij½Ã-°ËÁõ Á¶°ÇÀ» Æ÷ÇÔÇÏ°í ÀÖ´Ù. [Page 105] Unspecified end-to-end revalidation ¿ä±¸°¡ ¿ø¼­¹ö·Î ÇâÇÑ °æ·Î¸¦ µû¶ó °¢°¢ÀÇ Ä³½Ã°¡ ÀÚ½ÅÀÇ ¿£Æ®¸®¸¦ ´ÙÀ½ ij½Ã³ª ¿ø ¼­¹ö¿Í Àç°ËÁõÇϵµ·Ï °­¿äÇÏ´Â "max-age=0" Cache-Control Áö½ÃÀÚ¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù. ù ¿ä±¸´Â Ŭ¶ó À̾ðÆ®ÀÇ ÇöÀç °ËÁõÀÚ¿Í ´õºÒ¾î ij½Ã-°ËÁõ Á¶°ÇÀ» Æ÷ÇÔÇÏ°í ÀÖÁö ¾Ê´Ù. ÇØ´ç ÀÚ¿øÀÇ Ä³½Ã ¿£ Æ®¸®¸¦ °¡Áö°í ÀÖ´Â °æ·ÎÀÇ Ã¹ ij½Ã°¡ ÇöÀç °ËÁõÀÚ¿Í ´õºÒ¾î ij½Ã-°ËÁõ Á¶°ÇÀ» Æ÷ÇÔÇÏ°í ÀÖ ´Ù Max-age=0 Áö½ÃÀÚ ¶§¹®¿¡ °¡Àå °¡±î¿î ij½Ã°¡ ÀÚ½ÅÀÇ Ä³½Ã ¿£Æ®¸®¸¦ Àç°ËÁõÇϵµ·Ï °­¿ä ¹Þ ¾ÒÀ» ¶§ Ŭ¶óÀ̾ðÆ®´Â ¿ä±¸¿¡ ÀÚ½ÅÀÇ °ËÁõÀÚ¸¦ Á¦°øÇϸç Á¦°øµÈ °ËÁõÀڴ ij½Ã ¿£Æ®¸®¿¡ Çö Àç ÀúÀåµÈ °ËÁõÀÚ¿Í »óÀÌÇÒ ¼ö ÀÖ´Ù. ÀÌ °æ¿ì ij½Ã´Â ÀÇ¹Ì Åõ¸í¼º¿¡ ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê°í ÀÚ ½ÅÀÇ ¿ä±¸¸¦ ¸¸µå´Â µ¥ µÎ °ËÁõÀÚ ¸ðµÎ¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª °ËÁõÀÚÀÇ ¼±ÅÃÀÌ ¼º´É¿¡ ¿µÇâÀ» ¹ÌÄ¥ ¼ö ÀÖ´Ù. ÃÖ»óÀÇ Á¢±Ù¹ýÀº °¡Àå °¡±î¿î ij½Ã°¡ ¿ä±¸¸¦ ¸¸µé ¶§ ÀÚ±â ÀÚ½ÅÀÇ °ËÁõÀÚ¸¦ »ç¿ëÇÏ´Â °ÍÀÌ´Ù. ¼­¹ö´Â 304 (Not Modified)·Î ÀÀ´äÇÏ °í ij½Ã´Â »õ·Ó°Ô °ËÁõµÈ »çº»À» Ŭ¶óÀ̾ðÆ®¿¡°Ô 200 (OK) ÀÀ´ä°ú ÇÔ²² µÇµ¹·Á ÁÖ¾î¾ß ÇÑ´Ù. ¼­¹ö°¡ »õ·Î¿î ¿£ÅÍƼ³ª ij½Ã °ËÁõÀÚ·Î ÀÀ´äÇصµ °¡Àå °¡±î¿î ij½Ã´Â °­ÇÑ ºñ±³ ±â´É(strong comparison function)À» ÀÌ¿ëÇÏ¿© Ŭ¶óÀ̾ðÆ®ÀÇ ¿ä±¸°¡ Á¦°øÇÏ´Â °ËÁõÀÚ¿Í ¸®ÅÏ µÈ °ËÁõÀÚ¸¦ ºñ±³ÇØ¾ß ÇÑ´Ù. Ŭ¶óÀ̾ðÆ® °ËÁõÀÚ°¡ ¿ø¼­¹öÀÇ °ËÁõÀÚ¿Í µ¿µîÇÒ ¶§´Â °¡Àå °¡±î¿î ij½Ã´Â 304 (Not Modified)¸¦ ¸®ÅÏÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é 200 (OK) ÀÀ´äÀ¸·Î »õ·Î¿î ¿£ÅÍƼ¸¦ ¸®ÅÏÇÑ´Ù. ¿ä±¸¿¡ no-cache Áö½ÃÀÚ°¡ Æ÷ÇԵǾî ÀÖÀ¸¸é ¿ä±¸´Â min-fresh, max-stale, ¶Ç´Â max-age¸¦ Æ÷ÇÔ Çؼ­´Â ¾È µÈ´Ù. ³×Æ®¿öÅ© ¿¬°áÀÌ ±Øµµ·Î ¾àÇÒ ¶§¿Í °°Àº °æ¿ì¿¡ Ŭ¶óÀ̾ðÆ®´Â ¿ø¼­¹ö¿Í °»½ÅÇϰųª Àç°ËÁõ ÇÏ´Â °ÍÀÌ ¾Æ´Ñ ÇöÀç ÀúÀåÇÏ°í ÀÖ´Â ÀÀ´ä¸¸À» ¸®ÅÏÇϱâ À§ÇØ Ä³½Ã¸¦ ¿øÇÒ ¼ö ÀÖ´Ù. À̸¦ À§ Çؼ­ Ŭ¶óÀ̾ðÆ®´Â ¿ä±¸¿¡ only-if-cached Áö½ÃÀÚ¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. Ŭ¶óÀ̾ðÆ®°¡ ÀÌ Áö½ÃÀÚ ¸¦ ¼ö½ÅÇϸé ij½Ã´Â ´Ù¸¥ ÀÀ´äÀÇ Á¦ÇÑ »çÇ×°ú ÀÏÄ¡Çϴ ij½Ã ¿£Æ®¸®¸¦ »ç¿ëÇÏ¿© ÀÀ´äÇÏ´øÁö 504 (Gateway Timeout) »óÅ·ΠÀÀ´äÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª ij½ÃÀÇ ±×·ìÀ» ¾ÈÁ¤µÈ ³»ºÎ ¿¬°á·Î Åë ÇÕµÈ ½Ã½ºÅÛ¿¡ »ç¿ëÇÒ ¶§ ÀÌ·¯ÇÑ ¿ä±¸´Â ÇØ´ç ij½Ã ±×·ì ³»¿¡¼­ Àü´ÞµÉ ¼ö ÀÖ´Ù. ij½Ã°¡ ¼­¹ö¿¡¼­ ¸í½ÃµÈ À¯È¿ ½Ã°£À» ¹«½ÃÇϵµ·Ï ¼³Á¤µÉ ¼ö Àֱ⠶§¹®¿¡ ¶ÇÇÑ Å¬¶óÀ̾ðÆ® ¿ä±¸°¡ max-stale Áö½ÃÀÚ¸¦ Æ÷ÇÔÇÒ ¼ö Àֱ⠶§¹®¿¡(À¯»çÇÑ ¿µÇâÀ» ¹ÌÄ£´Ù) ±Ô¾àÀº ¿ø¼­¹ö°¡ °è¼ÓµÇ´Â ij½Ã »ç¿ë¿¡ ´ëÇÑ Ä³½Ã ¿£Æ®¸® °ËÁõÀ» ¿ä±¸ÇÒ ¼ö ÀÖ´Â ¸ÞÄ¿´ÏÁòÀ» Æ÷ÇÔÇÏ°í ÀÖ´Ù. [Page 106] Must-revalidate Áö½ÃÀÚ°¡ ij½Ã°¡ ¼ö½ÅÇÑ ÀÀ´ä¿¡ Æ÷ÇԵǾî ÀÖ°í ij½Ã°¡ °è¼ÓµÇ´Â ¿ä±¸¿¡ ÀÀ´äÇÏ ±â´Â ³°¾ÆÁø ÀÌÈÄ¿¡ ij½Ã´Â ¸ÕÀú ¿ø¼­¹ö¿¡ À̸¦ Àç°ËÁõÇϱâ Àü¿¡´Â ¿£Æ®¸®¸¦ »ç¿ëÇؼ­´Â ¾È µÈ´Ù. (¿¹¸¦ µé¾î ij½Ã´Â ÀüÀûÀ¸·Î ¿ø¼­¹öÀÇ Expires ¶Ç´Â max-age °ª¿¡ ±âÃÊÇÏ¿© ij½ÃµÈ ÀÀ´ä ÀÌ ³°¾ÒÀ¸¸é ¸Å¹ø end-to-end °ËÁõÀ» ½ÇÇàÇØ¾ß ÇÑ´Ù.) Must-revalidate Áö½ÃÀڴ ƯÁ¤ ±Ô¾à ±â´ÉÀÇ ¾ÈÁ¤µÈ ¿î¿µÀ» À§Çؼ­ ÇÊ¿äÇÏ´Ù. ¾î¶°ÇÑ °æ¿ìÀ̵ç HTTP/1.1 ij½Ã´Â must-revalidate Áö½ÃÀÚ¸¦ ¹Ýµå½Ã µû¶ó¾ß ÇÑ´Ù. ƯÈ÷ ij½Ã°¡ ¾î¶°ÇÑ ÀÌÀ¯ÀÌµç ¿ø¼­¹ö¿¡ µµ´ÞÇÒ ¼ö ¾øÀ» ¶§´Â ¹Ýµå½Ã 504 (Gateway Timeout) ÀÀ´äÀ» »ý¼ºÇØ¾ß ÇÑ´Ù. ¼­¹ö´Â ¾Æ¹«·± Ç¥½Ã ¾øÀÌ ½ÇÇàµÇÁö ¾ÊÀº À繫 Æ®·£Àè¼ÇÀÇ °æ¿ìó·³ ¿£ÅÍƼ¿¡ ´ëÇÑ Àç°ËÁõÀÌ ½ÇÆÐÇÏ¿© ºÎÁ¤È®ÇÑ ¿î¿µÀ» ÃÊ·¡ÇÒ °æ¿ì ¹Ýµå½Ã must-revalidate Áö½ÃÀÚ¸¦ ¹ß¼ÛÇØ¾ß ÇÑ´Ù. ¼ö½ÅÃø Àº °áÄÚ ÀÌ Áö½ÃÀÚ¸¦ À§¹ÝÇÏ´Â ¾î¶°ÇÑ ÀÚµ¿È­µÈ ó¸® ¹æ½ÄÀ» °®°í À־´Â ¾È µÇ¸ç Àç°ËÁõÀÌ ½ÇÆÐÇÒ °æ¿ì ÀÚµ¿ÀûÀ¸·Î °ËÁõµÇÁö ¾ÊÀº ¿£ÅÍƼ »çº»À» Á¦°øÇؼ­´Â ¾È µÈ´Ù. ±ÇÇÏÁö´Â ¾ÊÁö¸¸ ±Øµµ·Î ¾ÇÈ­µÈ ¿¬°á »óŸ¦ ÀÌ¿ëÇÏ´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â ÀÌ Áö½ÃÀÚ¸¦ À§¹ÝÇÒ ¼ö´Â ÀÖÀ¸³ª »ç¿ëÀÚ¿¡°Ô ¹Ýµå½Ã °ËÁõµÇÁö ¾ÊÀº ÀÀ´äÀ» Á¦°øÇßÀ½À» ¸í¹éÇÏ°Ô °æ°íÇØ¾ß ÇÑ´Ù. °æ°í´Â °ËÁõµÇÁö ¾Ê´Â Á¢¼Ó °¢°¢¿¡ Á¦°øÇØ¾ß ÇÏ¸ç ¸í¹éÇÑ »ç¿ëÀÚ Á¤º¸¸¦ Á¦°øÇØ¾ß ÇÑ´Ù. Proxy-revalidate Áö½ÃÀÚ´Â ºñ °øÀ¯ »ç¿ëÀÚ ¿¡ÀÌÀüÆ® ij½Ã¿¡´Â Àû¿ëµÇÁö ¾Ê´Â´Ù´Â Á¡À» Á¦¿ÜÇÏ °í´Â must-validate Áö½ÃÀÚ¿Í µ¿ÀÏÇÑ Àǹ̸¦ °®°í ÀÖ´Ù. »ç¿ëÀÚÀÇ Ä³½Ã°¡ ÀÀ´äÀ» ÀúÀåÇÏ°í ³ªÁß ¿¡ ±×°ÍÀ» °ËÁõÇÒ ÇÊ¿ä ¾øÀÌ ¸®ÅÏÇÒ ¼ö ÀÖµµ·Ï(±× »ç¿ëÀÚ°¡ ¸ÕÀú ÀÎÁõÀ» ¹Þ¾Ò±â ¶§¹®¿¡) ÇÏ¸é ¼­µµ ÇÁ¶ô½Ã¿¡°Ô ¸¹Àº »ç¿ëÀÚ°¡ Àç°ËÁõÇϵµ·Ï ¿ä±¸ÇÏ¿©(°¢ »ç¿ëÀÚ°¡ ÀÎÁõµÇ¾úÀ½À» È®½ÇÇÏ°Ô Çϱâ À§ÇØ) ÀÎÁõµÇÁö ¾ÊÀº ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. 14.9.5 ºñ º¯°æ Áö½Ã¾î(No-Transform Directive) °¡Àå °¡±î¿î ij½ÃÀÇ ±¸ÇöÀÚ(ÇÁ¶ô½Ã)´Â ƯÁ¤ ¿£ÅÍƼ º»¹®ÀÇ media typeÀ» º¯È¯ÇÏ´Â °ÍÀÌ À¯¿ëÇÔ À» ¹ß°ßÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î ÇÁ¶ô½Ã´Â ij½Ã °ø°£À» Àý¾àÇϰųª ´À¸° ¸µÅ© »óÀÇ Æ®·¡ÇÈ ¾çÀ» ÁÙÀ̱â À§ÇØ À̹ÌÁöÀÇ Æ÷¸ËÀ» º¯È¯ÇÒ ¼ö ÀÖ´Ù. HTTP´Â ¿À´Ã³¯±îÁö ÀÌ·¯ÇÑ º¯È¯ (transformations)¿¡ ´ëÇؼ­´Â ħ¹¬À» ÁöÅ°°í ÀÖ´Ù. [Page 107] ¹ú½á ÀÌ·¯ÇÑ º¯È¯À» ƯÁ¤ Á¾·ùÀÇ ¾ÖÇø®ÄÉÀ̼ǿ¡ »ç¿ëÇÒ ¿£ÅÍƼ º»¹®¿¡ Àû¿ëÇßÀ» ¶§ ½É°¢ÇÑ ¿î¿µ ¹®Á¦°¡ ¹ß»ýÇÏ¿´´Ù. ¿¹¸¦ µé¾î ÀÇ·á À̹ÌÁö ó¸®, °úÇÐÀû ÀÚ·á ºÐ¼® ¹× end-to-end ÀÎÁõ¿¡ »ç¿ëµÇ´Â ¾ÖÇø®ÄÉÀ̼ÇÀº ¸ðµÎ ¿ø¼­¹öÀÇ entity-body¿Í ºñÆ® ´ÜÀ§±îÁö µ¿ÀÏÇÑ ¿£ÅÍƼ º»¹®À» ¼ö½ÅÇÏ´Â ¹æ½Ä¿¡ ÀÇÁ¸ÇÏ°í ÀÖ´Ù. µû¶ó¼­ ÀÀ´äÀÌ no-transform Áö½ÃÀÚ¸¦ Æ÷ÇÔÇÏ°í ÀÖÀ¸¸é °¡Àå °¡±î¿î ij½Ã³ª ÇÁ¶ô½Ã´Â 13.5.2 Àý ¿¡ ¿­°ÅµÈ ÀÌ·¯ÇÑ Çì´õµéÀº no-transform Áö½ÃÀÚ¿¡ Á¾¼ÓÀûÀ̱⠶§¹®¿¡ À̵éÀ» Àý´ë·Î º¯°æÇؼ­ ´Â ¾È µÈ´Ù. ÀÌ°ÍÀº ij½Ã ¶Ç´Â ÇÁ¶ô½Ã´Â ÀÌ·¯ÇÑ Çì´õ°¡ ¸í½ÃÇÑ ¾î¶°ÇÑ Ãø¸éÀÇ entity-bodyµµ º¯°æÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. 14.9.6 ij½Ã Á¦¾î È®Àå Cache-Control Çì´õ Çʵå´Â Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ cache-extension ÅäÅ«À» ÀÌ¿ëÇÏ¿© °¢°¢ ¼±ÅÃÀû À¸·Î ºÎ¿©µÈ °ªÀ» °¡Áö°í È®ÀåÇÒ ¼ö ÀÖ´Ù. Á¤º¸ È®Àå(Informational extensions - ij½Ã ÇàÅ¿¡ º¯ È­¸¦ ¿ä±¸ÇÏÁö ¾Ê´Â)Àº ´Ù¸¥ Áö½ÃÀÚÀÇ Àǹ̸¦ º¯È­½ÃÅ°Áö ¾Ê°íµµ Ãß°¡ÇÒ ¼ö ÀÖ´Ù. ÇàÅ ȮÀå (behavioral extensions)Àº ij½Ã Áö½ÃÀÚÀÇ ±âº» º£À̽º¿¡ ´ëÇÑ º¯°æÀÚÀÇ ¿ªÇÒÀ» ¼öÇàÇϵµ·Ï µðÀÚ ÀεǾú´Ù. »õ·Î¿î Áö½ÃÀÚ ¹× Ç¥ÁØ Áö½ÃÀÚ ¸ðµÎ°¡ Á¦°øµÇ¾î »õ·Î¿î Áö½ÃÀÚ¸¦ ÀÌÇØÇÏÁö ¸øÇÏ´Â ¾ÖÇø®ÄÉÀ̼ÇÀº Ç¥ÁØ Áö½ÃÀÚ°¡ ¸í½ÃÇÑ ÇàÅ¿¡ ±âº»ÀûÀ¸·Î µû¸£¸ç »õ·Î¿î Áö½ÃÀÚ¸¦ ÀÌÇØÇÏ´Â ¾ÖÇø®ÄÉÀ̼ÇÀº À̸¦ Ç¥ÁØ Áö½ÃÀÚ¿Í °ü·ÃµÈ ÇÊ¿ä Á¶°ÇÀÇ º¯°æÀ¸·Î ÀνÄÇÑ´Ù. ÀÌ·¯ÇÑ ¹æ½ÄÀ¸·Î Áö½ÃÀÚ¸¦ ±âº» ±Ô¾à¿¡ ´ëÇÑ º¯°æÀ» ¿ä±¸ÇÏÁö ¾Ê°íµµ È®ÀåÇÒ ¼ö ÀÖ´Ù. È®Àå ¸ÞÄ¿´ÏÁòÀº ¿øÃÊ HTTP ¹öÀü¿¡ Á¤ÀÇµÈ ¸ðµç Áö½ÃÀÚ¿Í Æ¯Á¤ È®Àå¿¡´Â µû¸£Áö¸¸ ÀÌÇØÇÒ ¼ö ¾ø´Â ¸ðµç Áö½ÃÀÚ¸¦ ¹«½ÃÇÏ´Â HTTP ij½Ã¿¡ ´Þ·Á ÀÖ´Ù. ¿¹¸¦ µé¾î "private" Áö½ÃÀÚÀÇ º¯°æÀÚ ¿ªÇÒÀ» ¼öÇàÇÏ´Â "community"·Î ºÒ¸®´Â °¡¼³ÀÇ »õ·Î¿î ÀÀ ´ä Áö½ÃÀÚ¸¦ °¡Á¤ÇÏÀÚ. ¿ì¸®´Â »õ·Î¿î Áö½ÃÀÚ¸¦ ¸ðµç ºñ °øÀ¯ ij½Ã¿¡ ´ëÇÑ Ãß°¡·Î °ª ³»¿¡ ÀÌ ¸§ÀÌ µî·ÏµÈ °øµ¿Ã¼ ±¸¼º¿ø¸¸ÀÌ °øÀ¯ÇÏ´Â ÀÀ´ä¿¡ ´ëÇÑ Ä³½Ã¸¦ ÀǹÌÇÏ´Â °ÍÀ¸·Î ±ÔÁ¤ÇÑ´Ù. "UCI" community¸¦ °øÀ¯µÈ ij½ÃÀÇ private ÀÀ´ä¿¡ »ç¿ëÇÏ±æ ¿øÇÏ´Â ¿ø¼­¹ö´Â ´ÙÀ½À» Æ÷ÇÔÇÏ¿© À̸¦ ¼öÇàÇÒ ¼ö ÀÖ´Ù. Cache-Control: private, community="UCI" ÀÌ Çì´õ Çʵ带 ¸¸³­ ij½Ã´Â ij½Ã°¡ "community" cache-extensionÀ» ÀÌÇØÇÒ ¼ö ¾ø´õ¶óµµ "private" Áö½ÃÀÚ¸¦ º¸°í ÀÌÇØÇÒ ¼ö ÀÖ¾î ¾ÈÀüÇÑ ÇàÅÂÀÇ ±âº» ÇàÅ·ΠÀüȯÇÒ ¼ö Àֱ⠶§¹®¿¡ Á¤È®ÇÏ°Ô ÀÛµ¿ ÇÑ´Ù. [Page 108] ÀÎÁöÇÒ ¼ö ¾ø´Â cache-directive´Â ¹«½ÃÇØ¾ß ÇÑ´Ù. HTTP/1.1ij½Ã°¡ ÀÎÁöÇÏÁö ¸øÇÏ´Â ¸ðµç cache- directive´Â ij½Ã°¡ È®ÀåÀ» ÀÌÇØÇÏÁö ¸øÇÏ´õ¶óµµ ÃÖ¼ÒÇѵµ·Î ÀÌ·¯ÇÑ Ä³½Ã ÇàÅ°¡ Á¤È®ÇÑ °ÍÀ¸ ·Î À¯ÁöµÇµµ·Ï Ç¥ÁØ Áö½ÃÀÚ(¶Ç´Â ÀÀ´äÀÇ ±âº» ij½Ã °¡´É¼º(chchability))¿Í °áÇյǾî ÀÖ´Ù°í °¡ Á¤ÇÑ´Ù. 14.10 Connection Connection ÀÏ¹Ý Çì´õ Çʵå´Â ¹ß¼ÛÃøÀÌ Æ¯Á¤ ¿¬°áÀÌ ¿øÇÏ´Â ¼±Åà »çÇ×À» ¸í½ÃÇÏ´Â µ¥ »ç¿ë Çϸç Ãß°¡ÀûÀÎ ¿¬°á ½Ã ÇÁ¶ô½Ã¸¦ ÅëÇÏ¿© Åë½ÅÇؼ­´Â Àý´ë ¾È µÈ´Ù. Connection Çì´õ´Â ´ÙÀ½°ú °°Àº ¹®¹ýÀ» °¡Áö°í ÀÖ´Ù. Connection-header = "Connection" ":" 1#(connection-token) connection-token = token HTTP/1.1 ÇÁ¶ô½Ã´Â ¸Þ½ÃÁö°¡ Àü¼ÛµÇ±â Àü¿¡ Connection Çì´õ¸¦ ¹Ýµå½Ã ºÐ¼®ÇÏ¿©¾ß Çϸç ÀÌ ÇʵåÀÇ °¢°¢ÀÇ connection-token¿¡ ´ëÇØ connection-token°ú µ¿ÀÏÇÑ À̸§À» °¡Áø ¸Þ ½ÃÁö¿¡¼­ ¸ðµç Çì´õ Çʵ带 »èÁ¦ÇØ¾ß ÇÑ´Ù. Connection ¼±Åà »çÇ×Àº ÇØ´ç ¿¬°á ¼±Åà »çÇ×°ú °ü·ÃµÈ ÆĶó¹ÌÅÍ°¡ ¾øÀ¸¸é Ãß°¡ÀûÀÎ Çì´õ Çʵ尡 ¹ß¼ÛµÇÁö ¾Ê±â ¶§¹®¿¡ °ü·Ã Ãß°¡ Çì´õ ÇÊµå °¡ ¾Æ´Ñ Connection Çì´õ Çʵ忡 connection-tokenÀÇ Á¸Àç·Î ¾Ë ¼ö ÀÖ´Ù. HTTP/1.1 Àº "close" ¿¬°á ¼±Åà »çÇ×À» ¼Û½ÅÃøÀÌ ÀÀ´äÀ» ¿ÏÀüÈ÷ ¹ÞÀº ÈÄ¿¡ ¿¬°áÀÌ Á¾·áµÈ´Ù´Â °ÍÀ» Ç¥½Ã ÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. ¿¹¸¦ µé¾î, Connection: close À§¿Í °°ÀÌ close ¿É¼ÇÀÌ ¿ä±¸³ª ÀÀ´ä Çì´õ Çʵ忡 ÀÖÀ¸¸é ¿¬°áÀÌ ÇöÀç ÀÇ ¿ä±¸/ÀÀ´ä¿¡ ¿Ï¼ºµÈ ÈÄ¿¡ 'persistent' (8.1 Àý)·Î °£ÁֵǾ´Â ¾È µÈ´Ù´Â °ÍÀ» Ç¥½ÃÇÑ´Ù. persistent ¿¬°áÀ» Áö¿øÇÏÁö ¾Ê´Â HTTP/1.1 ÀÀ¿ëÀº ¹Ýµå½Ã ¸ðµç ¸Þ½ÃÁö¿¡ "close" ¿¬°á ¼±Åà »çÇ×À» Æ÷ÇÔÇÏ°í ÀÖ¾î¾ß ÇÑ´Ù. 14.11 Content-Base Content-Base ¿£ÅÍƼ Çì´õ Çʵå´Â ¿£ÅÍƼ ³»ÀÇ »ó´ë URLÀ» ã¾Æ³»´Â µ¥ »ç¿ëÇÑ´Ù. ÀÌ Çì ´õ Çʵå´Â RFC 1808¿¡ Base·Î¼­ ±â¼úµÇ¾î ÀÖÀ¸¸ç °ð °³Á¤µÉ °ÍÀÌ´Ù. Content-Base = "Content-Base" ":" absoluteURI Content-Base Çʵ尡 ¾øÀ¸¸é ¿£ÅÍƼÀÇ ±âº» URI´Â Content-Location (Content- Location URI °¡ Àý´ë URIÀ̸é) ¶Ç´Â ¿ä±¸¸¦ ½ÃÀÛÇÏ´Â µ¥ »ç¿ëÇÑ URI¿¡ ÀÇÇÏ¿© µ¿ÀÏÇÑ ¿ì ¼± ¼øÀ§·Î ±ÔÁ¤µÈ´Ù. [Page 109] ±×·¯³ª entity-body ³» ³»¿ëÀÇ ±âº» URI´Â ÇØ´ç entity-body ³»¿¡¼­ Àç±ÔÁ¤µÉ ¼ö ÀÖ´Ù´Â Á¡¿¡ ÁÖÀÇÇÑ´Ù. 14.12 Content-Encoding Content-Encoding entity-header Çʵå´Â entity-body¿¡ ´ëÇÑ º¯°æÀÚ·Î »ç¿ëÇÑ´Ù. ÀÌ°ÍÀÌ ÀÖÀ¸¸é ±× °ªÀº entity-body¿¡ ¾î¶°ÇÑ Ãß°¡ Content codingÀÌ Àû¿ëµÇ¾ú´ÂÁö Ç¥½ÃÇÏ¿© Content-Type Çì´õ ÇÊ µå°¡ ÂüÁ¶ÇÏ´Â media-typeÀ» ¾ò±â À§ÇÏ¿© ¾î¶°ÇÑ µðÄÚµù ¸ÞÄ¿´ÏÁòÀ» Àû¿ëÇØ¾ß ÇÏ´ÂÁö Ç¥½ÃÇÑ ´Ù. Content-EncodingÀº ÁÖ·Î ¹®¼­¸¦ ±âÀúÀÇ media typeÀÇ Á¤Ã¼(identity)¸¦ »ó½ÇÇÏÁö ¾Ê°íµµ ¾ÐÃà ÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. Content-Encoding = "Content-Encoding" ":" 1#content-coding Content ÄÚµùÀº 3.5Àý¿¡ ±ÔÁ¤µÇ¾î ÀÖ´Ù. ÀÌÀÇ »ç¿ë ¿¹´Â, Content-Encoding: gzip Content-EncodingÀº Request-URI°¡ ½Äº°ÇÏ´Â ¿£ÅÍƼÀÇ Æ¯Â¡ÀÌ´Ù. ÀüÇüÀûÀ¸·Î entity-body´Â ÀÌ ÀÎÄÚµù¿¡ ÀúÀåµÇ¸ç Ç¥½Ã ¶Ç´Â À¯Ãß ¸ñÀûÀ¸·Î »ç¿ëÇϱâ Àü¿¡¸¸ Çص¶ÇÒ ¼ö ÀÖ´Ù. ¿£ÅÍƼ¿¡ º¹¼öÀÇ ÀÎÄÚµùÀ» Àû¿ëÇßÀ¸¸é ³»¿ë ÄÚµùÀº Àû¿ëµÈ ¼ø¼­·Î ¿­°ÅÇØ¾ß ÇÑ´Ù. ÀÎÄÚµù ÆĶó¹ÌÅÍ¿¡ °üÇÑ Ãß°¡ Á¤º¸´Â ÀÌ ±Ô°Ý¿¡¼­ ±ÔÁ¤ÇÏÁö ¾ÊÀº entity-header Çʵ忡¼­ Á¦°ø ÇÑ´Ù. 14.13 Content-Language Content-Language entity-header Çʵå´Â Æ÷ÇÔÇÏ°í ÀÖ´Â ¿£ÅÍƼ ´ë»ó ûÁßÀÚÀÇ ÀÚ¿¬ÀûÀÎ ¾ð¾î¸¦ ±â ¼úÇÏ°í ÀÖ´Ù. Entity-body³»¿¡¼­ »ç¿ëµÈ ¸ðµç ¾ð¾î¿Í µ¿µîÇÏÁö ¾ÊÀ» ¼öµµ ÀÖ´Ù´Â Á¡¿¡ ÁÖÀÇ ÇÑ ´Ù. Content-Language = "Content-Language" ":" 1#language-tag Language ű״ 3.10Àý¿¡ Á¤ÀǵǾî ÀÖ´Ù. Content-LanguageÀÇ ÁÖµÈ ¸ñÀûÀº »ç¿ëÀÚ°¡ »ç¿ëÀÚ ÀÚ½ÅÀÌ ¼±È£ÇÏ´Â ¾ð¾î¿¡ µû¶ó ¿£ÅÍƼ¸¦ ½Äº°Çϰųª ±¸º°ÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀÌ´Ù. µû¶ó¼­ º» ¹® ³»¿ëÀÌ µ§¸¶Å©¾î¸¦ ÀÌÇØÇÒ ¼ö Àִ ûÁßÀ» À§ÇÑ °ÍÀ̶ó¸é ÀûÀýÇÑ Çʵå´Â ´ÙÀ½°ú °°´Ù. Content-Language: da [Page 110] Content-Language°¡ ¸í½ÃµÇ¾î ÀÖÁö ¾ÊÀ¸¸é ±âº»Àº ³»¿ëÀÌ ¸ðµç ¾ð¾îÀÇ Ã»ÁßÀ» À§ÇÑ °ÍÀÌ´Ù. ÀÌ ´Â ¼Û½ÅÃøÀÌ ÀÌ°ÍÀÌ Æ¯Á¤ ÀÚ¿¬Àû ¾ð¾î¿¡ ÇÑÁ¤ÀûÀÎ °ÍÀÌ ¾Æ´Ï°Å³ª »ç¿ëÇÏ°í ÇÏ´Â ¾ð¾î¸¦ ¾Ë ¼ö ¾ø´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. º¹¼ö ¾ð¾î´Â º¹¼öÀÇ Ã»ÁßÀ» À§ÇÑ ³»¿ëÀ» ¿­°ÅÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î "Treaty of Waitangi,"ÀÇ ¹ø ¿ªÀ» ¸¶¿À¸®(Maori)¾î ¹öÀü ¹× ¿µ¾î ¹öÀüÀ¸·Î ¹ø¿ªÇÏ·Á¸é, Content-Language: mi, en ±×·¯³ª ¿£ÅÍƼ¿¡ º¹¼öÀÇ ¾ð¾î°¡ Á¸ÀçÇÑ´Ù´Â °ÍÀÌ ¿©·¯ ¾ð¾î¸¦ »ç¿ëÇÒ ¼ö Àִ ûÁßÀ» À§ÇÑ °Í À» ÀǹÌÇÏ´Â °ÍÀº ¾Æ´Ï´Ù. ÀÌÀÇ ¿¹´Â "A First Lesson in Latin" °ú °°Àº ÃʱÞÀÚ ¾ð¾î ÀÔ¹®¼­ÀÌ´Ù. ÀÌ´Â ºÐ¸íÈ÷ ¿µ¾î¸¦ »ç¿ëÇϴ ûÁßÀ» À§ÇÑ °ÍÀÌ´Ù. ÀÌ °æ¿ì Content-Language´Â "en"¸¸À» Æ÷ÇÔ ÇØ¾ß ÇÑ´Ù. Content-Language´Â ¸ðµç media type¿¡ Àû¿ëÇÒ ¼ö ÀÖ°í ÅؽºÆ® ¹®¼­¿¡ ÇÑÁ¤µÈ °ÍÀº ¾Æ´Ï´Ù. 14.14 Content-Length Content-Length entity-header Çʵå´Â message-bodyÀÇ Å©±â¸¦ ¼ö½ÅÃø¿¡ ¹ß¼ÛµÈ octetsÀÇ ½ÊÁø¼ö, HEAD methodÀÇ °æ¿ì¿¡´Â ¿ä±¸°¡ GETÀ̾úÀ» °æ¿ì ¹ß¼ÛµÇ¾úÀ» entity-bodyÀÇ Å©±â¸¦ Ç¥½ÃÇÑ´Ù. Content-Length = "Content-Length" ":" 1*DIGIT ¿¹´Â, Content-Length: 3495 ¾ÖÇø®ÄÉÀ̼ÇÀº ¿£ÅÍƼÀÇ media type¿¡ °ü°è ¾øÀÌ ÀÌ Çʵ带 Àü¼ÛÇÏ´Â message-bodyÀÇ Å©±â¸¦ Ç¥½ÃÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. ¼ö½ÅÃøÀÌ ½Å·Ú¼º ÀÖ°Ô entity-body¸¦ Æ÷ÇÔÇÏ°í ÀÖ´ÂHTTP/1.1 ¿ä±¸ÀÇ Á¾ ·á¸¦ °áÁ¤ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î ¿ä±¸°¡ À¯È¿ÇÑ Content-Length Çʵ带 °¡Áö°í Transfer- Encoding:chunked ¶Ç´Âmultipart body¸¦ »ç¿ëÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù. Á¦·Îº¸´Ù Å©°Å³ª µ¿µîÇÑ ¸ðµç Content-Length´Â À¯È¿ÇÑ °ªÀÌ´Ù. 4.4ÀýÀº Content-Length°¡ ÁÖ¾î ÁöÁö ¾Ê¾ÒÀ» ¶§ message-bodyÀÇ ±æÀ̸¦ °áÁ¤ÇÏ´Â ¹æ¹ýÀ» ±â¼úÇÏ°í ÀÖ´Ù. [Page 111] ÁÖÀÇ : ÀÌ ÇʵåÀÇ Àǹ̴ ÇØ´çµÇ´Â "message/external-body" content-type¿¡¼­ »ç¿ëµÇ´Â ¼±Åà ÇÊ µåÀÎ MIME ±ÔÁ¤°ú´Â »ó´çÈ÷ ´Ù¸£´Ù. HTTP¿¡¼­ ¸Þ½ÃÁöÀÇ ±æÀ̸¦ Àü¼ÛÇϱâ Àü¿¡ °áÁ¤ÇÒ ¼ö ÀÖÀ¸¸é ¾ðÁ¦³ª ÀÌ Çʵ带 ¹ß¼ÛÇØ¾ß ÇÑ´Ù. 14.15 Content-Location Content-Location entity-header Çʵå´Â ¸Þ½ÃÁö¿¡ Æ÷ÇÔµÈ ¿£ÅÍƼÀÇ ÀÚ¿ø À§Ä¡¸¦ Á¦°øÇÏ´Â µ¥ »ç¿ë ÇÑ´Ù. ÀÚ¿øÀÌ ÀڽŰú °ü·ÃµÈ º¹¼öÀÇ ¿£ÅÍƼ¸¦ °¡Áö°í ÀÖ°í °¢ ¿£ÅÍƼ°¡ »ç½Ç»ó °³º°ÀûÀ¸·Î Á¢ ±ÙÇÏ¿´À» ¶§ ±¸º°µÈ À§Ä¡¸¦ °¡Áö°í ÀÖ´Â °æ¿ì¿¡´Â ¼­¹ö´Â ¸®ÅϵǴ ƯÁ¤ º¯ÇüÀÚ(variant)¿¡ ´ë ÇÑ Content-LocationÀ» Á¦°øÇØ¾ß ÇÑ´Ù. ¶ÇÇÑ ¼­¹ö´Â ÀÀ´ä ¿£ÅÍƼ¿¡ »óÀÀÇÏ´Â ÀÚ¿øÀÇ Content- Location¸¦ Á¦°øÇØ¾ß ÇÑ´Ù. Content-Location = "Content-Location" ":" ( absoluteURI | relativeURI ) Content-Base Çì´õ Çʵ尡 ¾øÀ¸¸é Content-Location ÀÇ °ªÀº ¿£ÅÍƼÀÇ URLÀ» ±ÔÁ¤ÇÑ´Ù.(14.11Àý ÂüÁ¶) Content-Location °ªÀº ¿ø·¡ ¿äûµÈ URIÀÇ ´ëü¹°ÀÌ ¾Æ´Ï´Ù. ÀÌ°ÍÀº ¿ä±¸¸¦ ¹æ¼ÛÇÑ ½ÃÁ¡ÀÇ Æ¯ Á¤ ¿£ÅÍƼ¿¡ »óÀÀÇÏ´Â ÀÚ¿øÀÇ À§Ä¡¸¦ Ç¥ÇöÇÏ´Â °ÍÀÏ »ÓÀÌ´Ù. ÀÌÈÄÀÇ ¿ä±¸´Â ÇØ´ç ƯÁ¤ ¿£ÅÍƼ ÀÇ ÀÚ¿øÀ» ½Äº°ÇÏ´Â °ÍÀÌ ¸ñÀûÀ̶ó¸é Content-Location URI¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ij½Ã´Â Content-LocationÀ» Á¶È¸ÇÏ´Â µ¥ »ç¿ëµÇ´Â URI¿Í ´Ù¸¥ Content-LocationÀ» °¡Áø ¿£ÅÍƼ ¸¦ ÇØ´ç Content-Location URIÀÇ ÃßÈÄ ¿ä±¸¿¡ ´ëÇÑ ÀÀ´ä¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Ù°í °¡Á¤Çؼ­´Â ¾È µÈ ´Ù. ±×·¯³ª Content-LocationÀº 13.6Àý¿¡¼­ ±â¼úÇÑ ´ë·Î ´ÜÀÏ ¿äû ÀÚ¿ø¿¡¼­ Á¶È¸ÇÑ º¹¼öÀÇ ¿£ ÅÍƼ¸¦ Â÷º°È­ÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ´Ù. Content-LocationÀÌ »ó´ëÀûÀÎ URIÀ̸é ÀÀ´ä¿¡¼­ Á¦°øÇÏ´Â ¾î¶°ÇÑ Content-Location URI¿¡ »ó´ë ÀûÀÎ °ÍÀ¸·Î Çؼ®ÇØ¾ß ÇÑ´Ù. ¾Æ¹«·± Content-Baseµµ Á¦°øµÇÁö ¾Ê¾ÒÀ¸¸é »ó´ëÀûÀÎ URIÀº Request-URI¿¡ »ó´ëÀûÀÎ °ÍÀ¸·Î Çؼ®ÇØ¾ß ÇÑ´Ù. [Page 112] 14.16 Content-MD5 RFC 1864 [23]¿¡ ±ÔÁ¤µÈ ¹Ù¿Í °°ÀÌ entity-bodyÀÇ end-to-end ¸Þ½ÃÁö ¹«°á¼ºÀ»(end-to-end message integrity check (MIC)) Á¡°ËÇϱâ À§ÇÑ Content-MD5 entity-header Çʵå´Â entity-bodyÀÇ MD5 digest ÀÌ´Ù.(ÁÖÀÇ: MIC´Â Àü¼ÛµÇ´Â µµÁßÀÇ entity-body¿¡ ´ëÇÑ ¿ì¹ßÀûÀÎ º¯°æÀ» ŽÁöÇÏ´Â µ¥ À¯¿ëÇÏ Áö¸¸ ¾ÇÀÇÀûÀÎ °ø°Ý¿¡ ´ëÇÑ Áõ¸íÀº ¾Æ´Ï´Ù.) Content-MD5 = "Content-MD5" ":" md5-digest md5-digest = Content-MD5 Çì´õ Çʵå´Â ¿ø¼­¹ö°¡ entity-bodyÀÇ ¹«°á¼ºÀ» È®ÀÎÇÏ´Â ±â´ÉÀ¸·Î¼­ »ý¼ºÇÒ ¼ö ÀÖ ´Ù. ¿ø¼­¹ö¸¸ÀÌ Content-MD5 Çì´õ Çʵ带 »ý¼ºÇÒ ¼ö ÀÖÀ¸¸ç ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌ´Â ±× °ªÀ» end-to-end ¹«°á¼º Á¡°ËÀ¸·Î »ç¿ëÇÏÁö ¸øÇϵµ·Ï º¯Áú½Ãų ¼ö Àֱ⠶§¹®¿¡ Àý´ëµµ ÀÌ°ÍÀ» »ý»ê ÇÏ¸é ¾È µÈ´Ù. ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀ̸¦ Æ÷ÇÔÇÑ ¾î¶°ÇÑ entity-bodyÀÇ ¼ö½ÅÃøµµ ÀÌ Çì´õ ÇʵåÀÇ digest value°¡ ¼ö½ÅµÈ entity-bodyÀÇ digest value¿Í ÀÏÄ¡ÇÏ´ÂÁö Á¡°ËÇÒ ¼ö ÀÖ´Ù. MD5 digest´Â Àû¿ëµÈ ¸ðµç Content-EncodingÀ» Æ÷ÇÔÇÏÁö¸¸ message-body¿¡ Àû¿ëµÇ¾úÀ» ¼ö ÀÖ ´Â ¸ðµç Transfer-EncodingÀº Æ÷ÇÔÇÏÁö ¾Ê´Â entity-bodyÀÇ ³»¿ë¿¡ ±âÃÊÇÏ¿© »êÃâÇÒ ¼ö ÀÖ´Ù. ¼ö ½ÅµÈ ¸Þ½ÃÁö¿¡ Transfer-EncodingÀÌ Æ÷ÇԵǾî ÀÖÀ¸¸é ÇØ´ç ÀÎÄÚµùÀº ¼ö½ÅµÈ ¿£ÅÍƼ¿¡ ´ëÇÑ Content-MD5°ªÀ» Á¡°ËÇϱâ ÀÌÀü¿¡ »èÁ¦ÇÏ¿©¾ß ÇÑ´Ù. ÀÌ°ÍÀº digest°¡ Transfer-EncodingÀ» Àû¿ëÇÏÁö ¾Ê°í ¹ß¼ÛÇßÀ» ¶§ÀÇ entity-body¿Í Á¤È®ÇÏ°Ô µ¿ ÀÏÇÑ entity-bodyÀÇ octets¿¡¼­ »êÃâµÇ´Â °á°ú¸¦ ÃÊ·¡ÇÑ´Ù. HTTP´Â RFC 1864¸¦ È®ÀåÇÏ¿© digest°¡ MIME º¹ÇÕ media-type (¿¹¸¦ µé¾î multipart/* ¹× message/rfc822)¿¡¼­ »êÃâµÉ ¼ö ÀÖµµ·Ï Çã¿ëÇÑ´Ù. ±×·¯³ª ÀÌ°ÍÀÌ ÀÌÀü ¹®Àå¿¡¼­ ±ÔÁ¤ÇÑ digest »êÃâ ¹æ¹ýÀ» º¯°æÇÏÁö´Â ¾Ê´Â´Ù. ÁÖÀÇ : ÀÌ°ÍÀº ¸î¸î °á°ú¸¦ ÃÊ·¡ÇÑ´Ù. º¹ÇÕ À¯ÇüÀÇ entity-Body´Â ÀÚ½ÅÀÇ MIME ¹× HTTP Çì ´õ¿¡ º¹¼öÀÇ body-parts¸¦ °¡Áú ¼ö ÀÖ´Ù.( Content-MD5, Content-Transfer-Encoding ¹× Content- Encoding Çì´õ Æ÷ÇÔ) ¸¸¾à body-part °¡ Content-Transfer-Encoding ¶Ç´Â Content-Encoding Çì´õ ¸¦ °¡Áö°í ÀÖÀ¸¸é body-partÀÇ ³»¿ëÀÌ ÀÎÄÚµùµÇ¾ú°í body-part°¡ ÇöÀç ó·³(¿¹¸¦ µé¾î Àû¿ë ÀÌÈÄ) Content-MD5 digest¿¡ Æ÷ÇԵǾî ÀÖ´Ù°í °¡Á¤ÇÒ ¼ö ÀÖ´Ù. ÁÖÀÇ : Content-MD5 ±ÔÁ¤ÀÌ RFC 1864ÀÇ MIME entity-bodies¿¡¼­¿Í ±ÔÁ¤°ú µ¿ÀÏÇϱâ´Â ÇÏÁö¸¸ Content-MD5¸¦ HTTP entity-bodies¿¡ Àû¿ëÇÏ´Â °ÍÀÌ MIME entity-bodies¿¡ Àû¿ëÇÏ´Â °Í°ú ´Ù ¸¦ ¼ö ÀÖ´Â ¸î °¡Áö °æ¿ì°¡ ÀÖ´Ù. [Page 113] ±× ÁßÀÇ Çϳª°¡ MIME°ú´Â ´Þ¸® HTTP´Â Content-Transfer-EncodingÀ» »ç¿ëÇÏÁö ¾ÊÁö¸¸ Transfer-Encoding ¹× Content-Encoding À» »ç¿ëÇÑ´Ù´Â °ÍÀÌ´Ù. ´Ù¸¥ °ÍÀº HTTP°¡ MIMEº¸´Ù ´õ ÀÚÁÖ ÀÌÁø ³»¿ë À¯ÇüÀ» »ç¿ëÇϱ⠶§¹®¿¡ digest¸¦ »êÃâÇÏ´Â µ¥ »ç¿ëµÈ ¹ÙÀÌÆ® ¼ø¼­´Â ÇØ ´ç À¯Çü¿¡ Á¤ÀÇµÈ Àü¼Û ¹ÙÀÌÆ® ¼ø¼­¶ó´Â Á¡¿¡ ÁÖÀÇÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ¸¶Áö¸·À¸·Î HTTP°¡ CRLF·Î Á¤±ÔÈ­µÈ Æû»Ó¸¸ ¾Æ´Ï¶ó ¾î¶°ÇÑ º¹¼ö ¶óÀÎ ÁÙ¹Ù²Þ °ü·Ê¿¡ µû¸¥ ÅؽºÆ® À¯ÇüÀ̵ç Àü¼ÛÀ» Çã¿ëÇÑ´Ù´Â °ÍÀÌ´Ù. ½ÇÁ¦·Î Àü¼ÛµÈ ÅؽºÆ®¿¡ »ç¿ëµÈ ÁٹٲÞ(line break) °ü·Ê´Â digest ¸¦ »êÃâÇÒ ¶§ º¯°æÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù. 14.17 Content-Range Content-Range entity-header´Â ºÎºÐÀû entity-body¿Í ÇÔ²² Àü¼ÛÇÏ¿© Àüü entity-body ÀÇ ¾î´À ºÎ ºÐ¿¡ ºÎºÐÀû º»¹®À» »ðÀÔÇØ¾ß ÇÏ´Â °¡¸¦ ¸í½ÃÇÑ´Ù. ¶ÇÇÑ ÀÌ°ÍÀº Àüü entity-bodyÀÇ Å©±â¸¦ Ç¥ ½ÃÇϱ⵵ ÇÑ´Ù. ¼­¹ö°¡ Ŭ¶óÀ̾ðÆ®¿¡°Ô ºÎºÐÀû ÀÀ´äÀ» ¸®ÅÏÇßÀ» ¶§ ¼­¹ö´Â ÀÀ´äÀÌ Â÷ÁöÇÏ´Â ¿µ¿ªÀÇ ¹üÀ§ ¹× Àüü entity-bodyÀÇ ±æÀ̸¦ ±â¼úÇØ¾ß ÇÑ´Ù. Content-Range = "Content-Range" ":" content-range-spec content-range-spec = byte-content-range-spec byte-content-range-spec = bytes-unit SP first-byte-pos "-" last-byte-pos "/" entity-length entity-length = 1*DIGIT Byte-ranges-specifier °ª°ú´Â ´ÞÀÌ byte-content-range-specÀº ÇϳªÀÇ ¿µ¿ª¸¸À» ¸í½ÃÇÒ ¼ö ÀÖÀ¸¸ç ¿µ¿ªÀÇ Ã³À½ ¹× ¸¶Áö¸· ¹ÙÀÌÆ®ÀÇ Àý´ë À§Ä¡¸¦ Æ÷ÇÔÇÏ°í ÀÖ¾î¾ß ÇÑ´Ù. Byte-content-range-spec whose Last-byte-pos °ªÀÌ first-byte-pos °ªº¸´Ù ÀûÀº byte-content-range-spec À̳ª entity-length °ªÀÌ last-byte-pos °ªº¸´Ù Àû°Å³ª µ¿µîÇÑ °ÍÀº ¹«È¿ÀÌ´Ù. À¯È¿ÇÏÁö ¾ÊÀº byte- content-range-specÀÇ ¼ö½ÅÃøÀº ÀÌ°Í°ú ÀÌ¿¡ µû¶ó Àü¼ÛµÇ´Â ¸ðµç ³»¿ëÀ» ¹Ýµå½Ã ¹«½ÃÇØ¾ß ÇÑ´Ù. [Page 114] ¿£ÅÍƼ°¡ Àüü 1234 ¹ÙÀÌÆ®¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù°í °¡Á¤Çϸé byte-content-range-spec °ªÀÇ ¿¹´Â ´Ù À½°ú °°´Ù. ? The first 500 bytes: bytes 0-499/1234 ? The second 500 bytes: bytes 500-999/1234 ? All except for the first 500 bytes: bytes 500-1233/1234 ? The last 500 bytes: bytes 734-1233/1234 HTTP ¸Þ½ÃÁö°¡ ´ÜÀÏ ¿µ¿ªÀÇ ³»¿ëÀ» Æ÷ÇÔÇÏ°í ÀÖÀ» ¶§ ÀÌ ³»¿ëÀº Content-Range Çì´õ ¹× ½ÇÁ¦ ÀûÀ¸·Î Àü¼ÛµÇ´Â ¹ÙÀÌÆ® ¼ö¸¦ Ç¥½ÃÇÏ´Â Content-Length Çì´õ¿Í ÇÔ²² Àü¼ÛµÈ´Ù. ¿¹¸¦ µé¸é, HTTP/1.1 206 Partial content Date: Wed, 15 Nov 1995 06:25:24 GMT Last-modified: Wed, 15 Nov 1995 04:58:08 GMT Content-Range: bytes 21010-47021/47022 Content-Length: 26012 Content-Type: image/gif HTTP ¸Þ½ÃÁö°¡ º¹¼ö ¿µ¿ªÀÇ ³»¿ëÀ» Æ÷ÇÔÇÏ°í ÀÖÀ» ¶§(¿¹¸¦ µé¾î º¹¼öÀÇ ÁßøµÇÁö ¾Ê´Â ¿µ¿ª ¿¡ °ÉÄ£ ¿ä±¸¿¡ ´ëÇÑ ÀÀ´ä) ÀÌ ¿µ¿ªµéÀº multipart MIME ¸Þ½ÃÁö·Î¼­ Àü´ÞµÈ´Ù. ÀÌ ¸ñÀû¿¡ »ç¿ë µÈ multipart MIME content-type Àº ÀÌ ±Ô°Ý¿¡¼­"multipart/byteranges"·Î ±ÔÁ¤ÇÏ°í ÀÖ´Ù. ±ÔÁ¤¿¡ °ü ÇÏ¿©´Â ºÎ·Ï 19.2ÀýÀ» ÂüÁ¶ÇÑ´Ù. MIME multipart/byteranges ¸Þ½ÃÁö¸¦ Çص¶ÇÒ ¼ö ¾ø´Â Ŭ¶óÀ̾ðÆ®´Â ´ÜÀÏ ¿ä±¸ÀÇ º¹¼ö byte-ranges ¸¦ ¿äûÇØ¾ß ÇÑ´Ù. Ŭ¶óÀ̾ðÆ®°¡ ´ÜÀÏ ¿ä±¸¿¡ º¹¼öÀÇ byte-ranges¸¦ ¿äûÇÏ¸é ¼­¹ö´Â ¿ä±¸¿¡ ³ªÅ¸³­ ¼ø¼­ ´ë·Î ÀÌ °ÍµéÀ» µÇµ¹·Á ÁÖ¾î¾ß ÇÑ´Ù. [Page 115] ¼­¹ö°¡ byte-range-specÀÌ ¹«È¿À̱⠶§¹®¿¡ ¹«½ÃÇßÀ¸¸é ¼­¹ö´Â ¿ä±¸¸¦ À¯È¿ÇÏÁö ¾ÊÀº Range Çì ´õ Çʵ尡 Á¸ÀçÇÏÁö ¾Ê´Â °Íó·³ ó¸®ÇØ¾ß ÇÑ´Ù.(´ë°³ÀÇ °æ¿ì ÀÌ°ÍÀº Àüü ¿£ÅÍƼ¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Â 200 ¸Þ½ÃÁö¸¦ ¸®ÅÏÇÔÀ» ÀǹÌÇÑ´Ù.) ÀÌÀ¯´Â Ŭ¶óÀ̾ðÆ®°¡ ÀÌ·¯ÇÑ ¹«È¿ ¿ä±¸¸¦ ÇÏ´Â À¯ÀÏ ÇÑ ½Ã°£Àº ¿£ÅÍƼ°¡ ÀÌÀü À¯±¸¿¡ ÀÇÇØ ¼ö½ÅµÈ ¿£ÅÍƼº¸´Ù ÀÛÀ» ¶§À̱⠶§¹®ÀÌ´Ù. 14.18 Content-Type Content-Type entity-header Çʵå´Â ¼ö½ÅÃø¿¡ ¹ß¼ÛÇÑ entity-bodyÀÇ media typeÀ» Ç¥½ÃÇϰųª, ¿ä±¸ °¡ GETÀ̾úÀ¸¸é ¹ß¼ÛµÇ¾úÀ» media type¸¦ Ç¥½ÃÇÑ´Ù. Content-Type = "Content-Type" ":" media-type Media typesÀº 3.7Àå¿¡ ±ÔÁ¤µÇ¾î ÀÖÀ¸¸ç ÀÌ ÇʵåÀÇ »ç¿ë ¿¹´Â ´ÙÀ½°ú °°´Ù. Content-Type: text/html; charset=ISO-8859-4 ¿£ÅÍƼÀÇ media typeÀ» ½Äº°ÇÏ´Â method¿¡ °üÇÑ ÅäÀÇ´Â 7.2.1Àý¿¡ ±â¼úµÇ¾î ÀÖ´Ù. 14.19 Date Date general-header Çʵå´Â ¸Þ½ÃÁö°¡ »ý¼ºµÇ¾úÀ» ¶§ÀÇ ³¯Â¥¿Í ½Ã°£À» Ç¥½ÃÇϸç RFC 822ÀÇ org- date¿Í µ¿ÀÏÇÑ Àǹ̸¦ °¡Áø´Ù. ÇÊµå °ªÀº 3.3.1Àý¿¡ ±â¼úµÈ °Íó·³ HTTP-dateÀÌ´Ù. Date = "Date" ":" HTTP-date ÀÌÀÇ »ç¿ë ¿¹´Â, Date: Tue, 15 Nov 1994 08:12:31 GMT »ç¿ëÀÚ ¿¡ÀÌÀüÆ®(¿ä±¸ÀÇ °æ¿ì)³ª ¿ø¼­¹ö(ÀÀ´äÀÇ °æ¿ì)¿Í Á÷Á¢ÀûÀÎ Á¢¼ÓÀ» ÅëÇÏ¿© ¸Þ½ÃÁö¸¦ ¼ö ½ÅÇÏ¸é ³¯Â¥´Â ¼ö½ÅÃø ³¡ÀÇ ÇöÀç ½Ã°£ÀÎ °ÍÀ¸·Î °¡Á¤ÇÑ´Ù. ±×·¯³ª ³¯Â¥°¡ ij½Ã ÀÀ´äÀ» Æò°¡ÇÏ ´Â µ¥ Áß¿äÇϱ⠶§¹®¿¡(¿ø¼­¹ö°¡ ±×·¸´Ù°í ¹Ï±â ¶§¹®¿¡) ¿ø¼­¹ö´Â ¸ðµç ÀÀ´ä¿¡ Date Çì´õ ÇÊ µå¸¦ ¹Ýµå½Ã Æ÷ÇÔÇØ¾ß ÇÑ´Ù. Ŭ¶óÀ̾ðÆ®´Â PUT ¹× POST ¿äûÀÇ °æ¿ìó·³ entity-body¸¦ Æ÷ÇÔ ÇÏ°í ÀÖ´Â ¸Þ½ÃÁöÀÇ Date Çì´õ Çʵ常À» ¹ß¼ÛÇØ¾ß Çϱâ´Â ÇÏÁö¸¸ ¼±Åà »çÇ×À̱⵵ ÇÏ´Ù. Date Çì´õ Çʵ带 °¡Áö°í ÀÖÁö ¾ÊÀº ¼ö½Å ¸Þ½ÃÁö´Â ¼ö½ÅÃøÀÌ ¸Þ½ÃÁö¸¦ ij½ÃÇϰųª Date¸¦ ¿ä±¸ÇÏ ´Â ±Ô¾àÀ» ÀÌ¿ëÇÑ °ÔÀÌÆ®¿þÀ̸¦ Åë°úÇÒ ¶§ ¼ö½ÅÃøÀÌ Çϳª¸¦ ÁöÁ¤ÇØ¾ß ÇÑ´Ù. [Page 116] À̷лóÀ¸·Î ³¯Â¥´Â ¿£ÅÍƼ°¡ »ý¼ºµÇÁö ¹Ù·Î Á÷Àü ¼ø°£À» Ç¥½ÃÇØ¾ß ÇÑ´Ù. ±×·¯³ª ½ÇÁ¦»óÀ¸·Î ³¯Â¥´Â ÀÇ¹Ì °ª¿¡ ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê°í ¸Þ½ÃÁö ¿ø¹®À» »ý¼ºÇÏ´Â µ¿¾È ¾Æ¹« ½Ã°£¿¡¼­³ª »ý¼ºµÉ ¼ö ÀÖ´Ù. DateÀÇ Æ÷¸ËÀº 3.3ÀýÀÇ HTTP-date °¡ ±ÔÁ¤ÇÏ´Â Àý´ë ³¯Â¥ ¹× ½Ã°£ÀÌ´Ù. ¹Ýµå½Ã RFC1123 [8]-³¯ Â¥ Æ÷¸ËÀ¸·Î ¹ß¼ÛÇØ¾ß ÇÑ´Ù. 14.20 ETag ETag entity-header Çʵå´Â °ü·ÃµÈ ¿£ÅÍƼÀÇ ¿£ÅÍƼ ű׸¦ Á¤ÀÇÇÑ´Ù. ¿£ÅÍƼ ÅÂ±×¿Í ÇÔ²² »ç¿ë ÇÏ´Â Çì´õ´Â 14.20, 14.25, 14.26 ¹× 14.43 Àý¿¡ ±â¼úµÇ¾î ÀÖ´Ù. ¿£ÅÍƼ ű״ µ¿ÀÏÇÑ ÀÚ¿ø (13.3.2Àý ÂüÁ¶)ÀÇ ´Ù¸¥ ¿£ÅÍƼ¿Í ºñ±³ÇÏ´Â µ¥µµ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ETag = "ETag" ":" entity-tag ¿¹: ETag: "xyzzy" ETag: W/"xyzzy" ETag: "" 14.21 Expires Expires entity-header Çʵå´Â ±× ½Ã°£ ÀÌÈÄ ÀÀ´äÀÌ ³°¾Ò´Ù°í °£ÁÖÇØ¾ß ÇÏ´Â ³¯Â¥/³¯Â¥¸¦ Á¦°øÇÑ ´Ù. ij½Ã(ÇÁ¶ô½Ã ij½Ã ¶Ç´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ® ij½Ã)´Â ´ë°³ ¸ÕÀú ¿ø¼­¹ö(¶Ç´Â ¿£ÅÍƼÀÇ ½Å¼±ÇÑ º¹»çº»À» °¡Áö°í ÀÖ´Â °¡Àå °¡±î¿î ij½Ã)°¡ °ËÁõÇÏÁö ¾Ê´Â ÇÑ ³°Àº ij½Ã ¿£Æ®¸®¸¦ ¸®ÅÏÇÏÁö ¾Ê´Â´Ù. À¯È¿ÀÏ ¸ðµ¨¿¡ °üÇÑ Ãß°¡ ³íÀÇ´Â 13.2ÀýÀ» ÂüÁ¶ÇÑ´Ù. Expires Çʵ尡 Á¸ÀçÇÑ´Ù´Â °ÍÀÌ ±× ½Ã°£ ÀÌÀü ¶Ç´Â ÀÌÈÄ¿¡ ¿ø·¡ÀÇ ÀÚ¿øÀÌ º¯°æµÇ°Å³ª »ç¶óÁø ´Ù´Â °ÍÀ» ÀǹÌÇÏÁö´Â ¾Ê´Â´Ù. Æ÷¸ËÀº 3.3Àý¿¡¼­ Á¤ÀÇÇÑ HTTP-date Àý´ë ³¯Â¥¿Í ½Ã°£ÀÌ´Ù. ¹Ýµå½Ã RFC1123-date Æ÷¸ËÀ̾î¾ß ÇÑ´Ù. Expires = "Expires" ":" HTTP-date [Page 117] ÀÌÀÇ »ç¿ë ¿¹´Â ´ÙÀ½°ú °°´Ù. Expires: Thu, 01 Dec 1994 16:00:00 GMT ÁÖÀÇ : ÀÀ´äÀÌ max-age Áö½ÃÀÚ¸¦ Æ÷ÇÔÇÑ Cache-Control Çʵ带 Æ÷ÇÔÇÏ°í ÀÖÀ¸¸é ±× Áö½ÃÀÚ´Â Expires Çʵ带 ¹«½ÃÇÑ´Ù. HTTP/1.1 Ŭ¶óÀ̾ðÆ®¿Í ij½Ã´Â ¹Ýµå½Ã ´Ù¸¥ À¯È¿ÇÏÁö ¾Ê´Â ³¯Â¥ Æ÷¸ËÀ», ƯÈ÷ "0" °ªÀ» Æ÷ÇÔ ÇÏ°í ÀÖ´Â ³¯Â¥ Æ÷¸ËÀ» Áö³ª°£ ³¯Â¥·Î Ãë±ÞÇØ¾ß ÇÑ´Ù.(¿¹¸¦ µé¸é "¹ú½á ¸¸·áµÈ"À¸·Î) ÀÀ´äÀ» "¹ú½á ¸¸·áµÈ" °ÍÀ¸·Î Ç¥½ÃÇϱâ À§Çؼ­ ¿ø¼­¹ö´Â Expires ³¯Â¥¸¦ Date Çì´õ Çʵå¿Í µ¿ ÀÏÇÑ °ÍÀ¸·Î »ç¿ëÇØ¾ß ÇÑ´Ù.(13.2.4ÀýÀÇ À¯È¿ÀÏ °è»ê ¿øÄ¢À» ÂüÁ¶) ÀÀ´äÀ» "°áÄÚ ¸¸·áµÇÁö ¾Ê´Â" °ÍÀ¸·Î Ç¥½ÃÇϱâ À§Çؼ­ ¿ø¼­¹ö´Â Expires ³¯Â¥¸¦ ´ë·« ÀÀ´äÀÌ ¹ß¼ÛµÈ ÈÄ ½ÃÁ¡ºÎÅÍ 1 ³â Èĸ¦ ÁöÁ¤ÇÑ´Ù. HTTP/1.1 ¼­¹ö´Â ÇâÈÄ 1³â ÀÌ»ó µÈ Expires ³¯Â¥¸¦ ¹ß¼ÛÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù. ±âº»ÀûÀ¸·Î ij½ÃÇÒ ¼ö ¾ø´Â ÀÀ´ä¿¡ ¹Ì·¡ÀÇ Æ¯Á¤ ½Ã°£ÀÇ ½Ã°£ °ª°ú ÇÔ²² Expires Çì´õ Çʵ尡 Á¸ÀçÇϸé Cache-Control Çì´õ Çʵ尡(14.9Àý ÂüÁ¶) ´Ù¸¥ ½ÄÀ¸·Î Ç¥½ÃÇÏÁö ¾Ê´Â ÇÑ ÀÀ´äÀ» ij½Ã ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» Ç¥½ÃÇÑ´Ù. 14.22 From From request-header Çʵå´Â, Á¸ÀçÇÑ´Ù¸é, ¿äû »ç¿ëÀÚ ¿¡ÀÌÀüÆ®¸¦ ÅëÁ¦ÇÏ´Â Àΰ£ »ç¿ëÀÚÀÇ ÀÎÅÍ ³Ý ÀüÀÚ¿ìÆí ÁÖ¼Ò¸¦ Æ÷ÇÔÇÏ°í ÀÖ¾î¾ß ÇÑ´Ù. ÁÖ¼Ò´Â RFC 822ÀÇ ¿ìÆíÇÔ (as updated by RFC 1123 ¿¡ ÀÇÇÏ¿© °»½ÅµÈ °Íó·³)ÀÌ ±ÔÁ¤ÇÑ °Íó·³ ±â°è°¡ »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀ̾î¾ß ÇÑ´Ù. From = "From" ":" mailbox »ç¿ë ¿¹´Â, From: webmaster@w3.org ÀÌ Çì´õ Çʵå´Â ·Î±ë(logging) ¸ñÀûÀ̳ª ¹«È¿À̰ųª ¿øÇÏÁö ¾Ê´Â ¿ä±¸ÀÇ Ãâó¸¦ È®ÀÎÇÏ´Â ¼ö´Ü À¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. Á¢¼Ó ±ÝÁöÀÇ ºÒÈ®½ÇÇÑ ÆûÀ¸·Î »ç¿ëÇؼ­´Â ¾È µÈ´Ù. ÀÌ Çʵå´Â ¿ä±¸°¡ ÁÖ ¾îÁø »ç¶÷(¼öÇàµÈ method¿¡ ´ëÇÑ Ã¥ÀÓÀ» Áö´Â »ç¶÷)À» ´ë½ÅÇÏ¿© ¼öÇàµÇ°í ÀÖ´Â °ÍÀ¸·Î Çؼ®ÇÑ ´Ù. ƯÈ÷ ·Îº¿ ¿¡ÀÌÀüÆ®´Â ÀÌ Çì´õ¸¦ Æ÷ÇÔÇÏ¿© ¼ö½ÅÃø ³¡¿¡¼­ ¹®Á¦°¡ ¹ß»ýÇÏ¿´À» ¶§ ·Îº¿À» ¿î¿µÇϴ åÀÓÀ» Áø »ç¶÷°ú ¿¬¶ôÇÒ ¼ö ÀÖµµ·Ï ÇØ¾ß ÇÑ´Ù. [Page 118] ÀÌ ÇʵåÀÇ ÀÎÅÍ³Ý ÀüÀÚ¿ìÆí ÁÖ¼Ò´Â ¿ä±¸¸¦ ¹ß¼ÛÇÑ ÀÎÅÍ³Ý È£½ºÆ®¿Í ±¸º°µÉ ¼ö ÀÖ´Ù. ¿¹¸¦ µé ¾î ¿ä±¸°¡ ÇÁ¶ô½Ã¸¦ Åë°úÇÒ °æ¿ì ¿ø¼­¹öÀÇ ÁÖ¼Ò¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÁÖÀÇ: Ŭ¶óÀ̾ðÆ®´Â »ç¿ëÀÚÀÇ µ¿ÀÇ ¾øÀÌ´Â ±×°ÍÀÌ »ç¿ëÀÚÀÇ »ç»ýÈ° º¸È£³ª »çÀÌÆ®ÀÇ º¸¾È Á¤Ã¥°ú Ãæµ¹ÇÒ ¼ö Àֱ⠶§¹®¿¡ From Çì´õ Çʵ带 ¹ß¼ÛÇؼ­´Â ¾È µÈ´Ù. »ç¿ëÀÚ´Â ¿ä±¸¸¦ ¹ß ¼ÛÇϱâ Àü ¾î¶² ½ÃÁ¡¿¡¶óµµ ÀÌ ÇʵåÀÇ °ªÀ» ¹«·ÂÈ­, È°¼ºÈ­ ¹× º¯°æÇÒ ¼ö ÀÖµµ·Ï ÇÒ °ÍÀ» °­·ÂÈ÷ ÃßõÇÑ´Ù. 14.23 Host Host request-header Çʵå´Â »ç¿ëÀÚ³ª ÂüÁ¶ÇÏ°íÀÚ ÇÏ´Â ÀÚ¿ø(º¸Åë 3.2.2 Àý¿¡ ±â¼úÇÑ HTTP URL)ÀÌ ºÎ¿©ÇÑ ¿ø·¡ÀÇ URL¿¡¼­ ¾òÀº ´ë·Î ¿ä±¸ ¹Þ°í ÀÖ´Â ÀÚ¿øÀÇ ÀÎÅÍ³Ý È£½ºÆ®¿Í Æ÷Æ® ¼ýÀÚ¸¦ ¸í½ÃÇÑ´Ù. Host ÇÊµå °ªÀº ¹Ýµå½Ã ¿ø¼­¹ö³ª ¿ø·¡ÀÇ URLÀÌ ºÎ¿©ÇÑ °ÔÀÌÆ®¿þÀÌ ³×Æ®¿ö Å© À§Ä¡¸¦ Ç¥½ÃÇØ¾ß ÇÑ´Ù. ÀÌ°ÍÀº ¿ø¼­¹ö³ª °ÔÀÌÆ®¿þÀÌ°¡ ´ÜÀÏ IP ÁÖ¼ÒÀÇ º¹¼ö È£½ºÆ® À̸§ ¿¡ »ç¿ëµÇ´Â È£½ºÆ®ÀÇ ·çÆ® "/" URL°ú °°ÀÌ ³»ºÎÀûÀ¸·Î ¸ðÈ£ÇÑ URLÀ» ±¸º°ÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. Host = "Host" ":" host [ ":" port ] ; ¼½¼Ç3.2.2 µÚ µû¸£´Â Æ÷Æ® Á¤º¸°¡ ¾ø´Â "È£½ºÆ®"´Â ¿ä±¸µÈ ¼­ºñ½ºÀÇ ±âº» Æ÷Æ®¸¦ ÀǹÌÇÑ´Ù.(HTTP URL ÀÇ "80"). ¿¹¸¦ µé¾î ¿ø¼­¹öÀÇ ¿¡ ´ëÇÑ ¿äûÀº ¹Ýµå½Ã ´ÙÀ½À» Æ÷ÇÔÇØ¾ß ÇÑ´Ù. GET /pub/WWW/ HTTP/1.1 Host: www.w3.org Ŭ¶óÀ̾ðÆ®´Â ÀÎÅÍ³Ý »óÀÇ ¸ðµç HTTP/1.1 ¿ä±¸ ¸Þ½ÃÁö¿¡ Host Çì´õ Çʵ带 ¹Ýµå½Ã Æ÷ÇÔÇØ¾ß ÇÑ´Ù. ±âÁ¸¿¡ Host Çʵ尡 Á¸ÀçÇÏÁö ¾ÊÀ¸¸é HTTP/1.1 ÇÁ¶ô½Ã´Â ¿ä±¸¸¦ ÀÎÅÍ³Ý »ó¿¡¼­ Àü¼Û Çϱâ Àü¿¡ ¿ä±¸ ¸Þ½ÃÁö¿¡ Host Çʵ带 ¹Ýµå½Ã Ãß°¡ÇØ¾ß ÇÑ´Ù. ÀÎÅͳÝÀ» ±â¹ÝÀ» µÐ ¸ðµç HTTP/1.1 ¼­¹ö´Â Host Çì´õ Çʵ尡 ¾ø´Â ¸ðµç HTTP/1.1 ¿ä±¸ ¸Þ½ÃÁö¿¡ ´ëÇÏ¿© 400 »óÅ ÄÚ µå·Î ¹Ýµå½Ã ÀÀ´äÇØ¾ß ÇÑ´Ù. Host¿Í °ü·ÃµÈ ´Ù¸¥ ÇÊ¿ä Á¶°Ç »çÇ׿¡ ´ëÇؼ­´Â 5.2 ¹× 19.5.1 ÀýÀ» ÂüÁ¶ÇÑ´Ù. 14.24 If-Modified-Since If-Modified-Since request-header Çʵå´Â GET method¿Í ÇÔ²² »ç¿ëÇÏ¿© GET method¸¦ Á¶°ÇÀûÀ¸ ·Î ¸¸µç´Ù. ¿ä±¸µÈ º¯ÇüÀÚ°¡ ÀÌ Çʵ忡 ¸í½ÃµÈ ½Ã°£ ÀÌÈÄ¿¡ º¯°æµÇÁö ¾Ê¾ÒÀ¸¸é ¿£ÅÍƼ´Â ¼­ ¹ö·ÎºÎÅÍ ¸®ÅÏ µÇÁö ¾Ê´Â´Ù. ´ë½Å 304 (not modified) ÀÀ´äÀÌ message-body¾øÀÌ ¸®ÅÏ µÉ °ÍÀÌ ´Ù. [Page 119] If-Modified-Since = "If-Modified-Since" ":" HTTP-date ÀÌ ÇʵåÀÇ »ç¿ë ¿¹´Â, If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT If-Modified-Since Çì´õ´Â ÀÖÁö¸¸ Range Çì´õ°¡ ¾ø´Â GET method´Â ½Äº°µÈ ¿£ÅÍƼ°¡ If- Modified-Since Çì´õ¿¡ Ç¥½ÃµÈ ³¯Â¥ ÀÌÈÄ·Î º¯°æµÇ¾úÀ» ¶§¸¸ Àü¼ÛµÇµµ·Ï ¿ä±¸ÇÑ´Ù. ÀÌ°ÍÀ» °áÁ¤ ÇÏ´Â ¾Ë°í¸®ÁòÀº ´ÙÀ½ °æ¿ìÀÇ ¼ö¸¦ Æ÷ÇÔÇÑ´Ù, a) ¿äûÀÌ º¸Åë 200(OK) »óÅ ÀÌ¿ÜÀÇ °ÍÀ» »êÃâÇϰųª Àü´ÞµÈ If-Modified-Since ³¯Â¥°¡ ¹«È¿ À̸é ÀÀ´äÀº ÀϹÝÀûÀÎ GET¿Í ¿ÏÀüÈ÷ µ¿ÀÏÇÏ´Ù. ¼­¹öÀÇ ÇöÀç ½Ã°£º¸´Ù ÀÌÈÄÀÎ ³¯Â¥´Â À¯ È¿ÇÏÁö ¾Ê´Ù. b) º¯ÇüÀÚ°¡ If-Modified-Since ³¯Â¥ ÀÌÈÄ¿¡ º¯°æµÇ¾úÀ¸¸é ÀÀ´äÀº ÀϹÝÀûÀÎ GET¿Í ¿ÏÀüÈ÷ µ¿ ÀÏÇÏ´Ù. c) º¯ÇüÀÚ°¡ À¯È¿ÇÑ If-Modified-Since ³¯Â¥ ÀÌÈÄ º¯°æµÇÁö ¾Ê¾ÒÀ¸¸é ¼­¹ö´Â ¹Ýµå½Ã 304 (Not Modified) ÀÀ´äÀ» ¸®ÅÏÇØ¾ß ÇÑ´Ù. ÀÌ ±â´ÉÀÇ ¸ñÀûÀº Æ®·£Àè¼Ç ¿À¹öÇìµå(transaction overhead)¸¦ ÃÖ¼ÒÈ­Çϸ鼭 ij½ÃµÈ Á¤º¸¸¦ È¿°ú ÀûÀ¸·Î °»½ÅÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀÌ´Ù. Range request-header Çʵå´Â If-Modified-SinceÀÇ Àǹ̸¦ º¯°æÇÑ´Ù´Â Á¡¿¡ ÁÖÀÇÇÑ´Ù. ÀüüÀûÀÎ ³»¿ëÀº14.36ÀýÀ» ÂüÁ¶ÇÑ´Ù. Ŭ¶óÀ̾ðÆ®¿Í µ¿½ÃÈ­µÇÁö ¾ÊÀº ½Ã°è¸¦ °¡Áø ¼­¹ö°¡ If-Modified-Since ½Ã°£À» Çؼ®ÇÒ ¼ö ÀÖÀ½ À» ÁÖÀÇÇØ¾ß ÇÑ´Ù. Ŭ¶óÀ̾ðÆ®°¡ µ¿ÀÏÇÑ ¿ä±¸¿¡¼­ If-Modified-Since Çì´õ¸¦ °¡Á® ¿À´Â ´ë½Å If-Modified-Since Çì´õ ¿¡ ÀÚÀÇÀûÀÎ ³¯Â¥¸¦ »ç¿ëÇÏ¿´À¸¸é Ŭ¶óÀ̾ðÆ®´Â ÀÌ ³¯Â¥°¡ ¼­¹öÀÇ ½Ã°£ Çؼ® ¹æ½Ä¿¡ ÀÇÇØ ÇØ ¼®µÈ´Ù´Â »ç½ÇÀ» ÀÎÁöÇؾ߸¸ ÇÑ´Ù´Â °Í¿¡ ÁÖÀÇÇØ¾ß ÇÑ´Ù. Ŭ¶óÀ̾ðÆ®´Â µ¿½ÃÈ­µÇÁö ¾Ê´Â ½Ã°è ¹× Ŭ¶óÀ̾ðÆ®¿Í ¼­¹öÀÇ »çÀÌÀÇ °¢±â ´Ù¸¥ ½Ã°£ ÀÎÄÚµùÀ¸·Î ÀÎÇÑ ¹Ý¿Ã¸²À» °í·ÁÇØ¾ß ÇÑ´Ù. ÀÌ °ÍÀº óÀ½ ¿ä±¸ÇÑ ½Ã°£°ú °è¼ÓµÇ´Â ¿ä±¸ÀÇ If-Modified-Since ³¯Â¥ »çÀÌ¿¡¼­ ¹®¼­°¡ º¯°æµÇ¾úÀ» °æ¿ì °æÀï »óȲ(race conditions)ÀÌ ¹ß»ýÇÒ °¡´É¼º ¹× If-Modified-Since ³¯Â¥¸¦ Ŭ¶óÀ̾ðÆ®ÀÇ ½Ã°è ¿¡¼­ ¼­¹ö ½Ã°è¿Í ¿¬°á ¾øÀÌ ÃßÃâÇÏ¿´À» °æ¿ì Ʋ¸° ½Ã°è¿Í °ü·ÃµÈ(clock-skew-related) ¹®Á¦°¡ ¹ß»ýÇÒ °¡´É¼ºÀ» ¸ðµÎ Æ÷ÇÔÇÑ´Ù. Ŭ¶óÀ̾ðÆ®¿Í ¼­¹ö »çÀÌÀÇ Æ²¸° ½Ã°£ÀÇ ±³Á¤Àº ±â²¯ÇØ¾ß ³× Æ®¿÷ÀÇ Àẹ±â(network latency) ¶§¹®¿¡ ±Ù»çÄ¡ÀÏ »ÓÀÌ´Ù. [Page 120] 14.25 If-Match If-Match request-header Çʵå´Â method¿Í ÇÔ²² »ç¿ëÇÏ¿© method¸¦ Á¶°ÇÀûÀ¸·Î ¸¸µç´Ù. ÀÌÀü¿¡ ÀÚ¿ø¿¡¼­ ȹµæÇÑ Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ ¿£ÅÍƼ¸¦ °¡Áø Ŭ¶óÀ̾ðÆ®´Â ¿¬°üµÈ ¿£ÅÍƼ ű×ÀÇ ¸ñ ·ÏÀ» If-Match Çì´õ Çʵ忡 Æ÷ÇÔÇÏ¿© ÀÌ·¯ÇÑ ¿£ÅÍƼ ÁßÀÇ Çϳª°¡ ÇöÀçÀÇ °ÍÀÓÀ» Áõ¸íÇÒ ¼ö ÀÖ ´Ù. ÀÌ ±â´ÉÀÇ ¸ñÀûÀº Æ®·£Àè¼Ç ¿À¹öÇìµå(transaction overhead)¸¦ ÃÖ¼ÒÈ­Çϸ鼭 ij½ÃµÈ Á¤º¸¸¦ È¿°úÀûÀ¸·Î °»½ÅÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀÌ´Ù. ¶ÇÇÑ ¿ä±¸¸¦ °»½ÅÇÒ ¶§ ÀÚ¿øÀÇ À߸øµÈ ¹öÀü¿¡ ´ë ÇÑ ºÎÁÖÀÇÇÑ º¯°æÀ» ¹æÁöÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ´Ù. Ưº°ÇÑ °æ¿ì·Î "*" °ªÀº ÀÚ¿øÀÇ ¸ðµç ÇöÀç ¿£ÅÍƼ¿Í ÀÏÄ¡ÇÑ´Ù. If-Match = "If-Match" ":" ( "*" | 1#entity-tag ) ÇØ´ç ÀÚ¿ø¿¡ À¯»çÇÑGET ¿ä±¸(If-Match Çì´õ ¾øÀÌ)¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î ¸®ÅϵǾúÀ» ¼ö ÀÖ´Â ¿£ÅÍ Æ¼ÀÇ ¿£ÅÍƼ ÅÂ±×¿Í ÀÏÄ¡ÇÏ´Â ¾î¶°ÇÑ ¿£ÅÍƼ ű׳ª "*"ÀÌ ÁÖ¾îÁö°í ÇØ´ç ÀÚ¿ø¿¡ ´ëÇÑ ÇöÀç ÀÇ ¿£ÅÍƼ°¡ Á¸ÀçÇÑ´Ù¸é ¼­¹ö´Â If-Match Çì´õ Çʵ尡 Á¸ÀçÇÏÁö ¾Ê´Â °Íó·³ ¿ä±¸ ¹ÞÀº method¸¦ ¼öÇàÇÒ °ÍÀÌ´Ù. ¼­¹ö´Â If-MatchÀÇ ¿£ÅÍƼ ű׸¦ ºñ±³Çϱâ À§ÇÏ¿© ¹Ýµå½Ã °­ÇÑ ºñ±³ ±â´É(strong comparison function (3.11 Àý ÂüÁ¶))À» »ç¿ëÇØ¾ß ÇÑ´Ù. ¾Æ¹«·± ¿£ÅÍƼ ű׵µ ÀÏÄ¡ÇÏÁö ¾Ê°Å³ª "*" ÀÌ ÁÖ¾îÁ³´Âµ¥µµ ¾Æ¹«·± ÇöÀçÀÇ ¿£ÅÍƼ°¡ Á¸ÀçÇÏ Áö ¾ÊÀ¸¸é ¼­¹ö´Â ¿ä±¸ ¹ÞÀº method¸¦ Àý´ë ¼öÇàÇؼ­´Â ¾ÈµÇ°í ¹Ýµå½Ã 412 (Precondition Failed) ÀÀ´äÀ» ¸®ÅÏÇØ¾ß ÇÑ´Ù. ÀÌ ÇàÅ´ Ŭ¶óÀ̾ðÆ®°¡ PUT°ú °°Àº °»½Å method°¡ Ŭ¶óÀ̾ðÆ®°¡ ¸¶ Áö¸·À¸·Î Á¶È¸ÇÑ ÀÌÈÄ º¯°æµÈ ÀÚ¿øÀ» ´Ù½Ã º¯°æÇÏÁö ¸øÇϵµ·Ï ÇÑ´Ù. If-Match Çì´õ ÇÊµå ¾øÀÌ ¿ä±¸°¡ 2xx »óÅ ÀÌ¿ÜÀÇ ¾î¶² °ÍÀÌ¶óµµ ÃÊ·¡ÇÏ°Ô µÇ¸é If-Match¸¦ ¹« ½ÃÇØ¾ß ÇÑ´Ù. "If-Match: *" ÀÇ Àǹ̴ ¿ø¼­¹ö(¶Ç´Â Vary ¸ÞÄ¿´ÏÁòÀ» ÀÌ¿ëÇÑ Ä³½Ã, 14.43Àý ÂüÁ¶)°¡ ¼±ÅÃÇÑ Ç¥ ½Ã ¹æ¹ýÀÌ Á¸ÀçÇϸé method¸¦ ¹Ýµå½Ã ¼öÇàÇØ¾ß ÇÏ°í ±×·¸Áö ¾Ê´Ù¸é Àý´ë ¼öÇàÇؼ­´Â ¾È µÈ´Ù ´Â °ÍÀÌ´Ù. [Page 121] ÀÚ¿øÀ» °»½ÅÇÒ ¸ñÀûÀÇ ¿ä±¸(¿¹¸¦ µé¾î PUT)´Â If-Match°ª(´ÜÀÏ ¿£ÅÍƼ ű×)¿¡ »óÀÀÇÏ´Â ¿£ÅÍ Æ¼°¡ ´õ ÀÌ»ó ÇØ´ç ÀÚ¿øÀ» Ç¥½ÃÇÏ´Â ¾Ê´Â´Ù¸é ¿ä±¸ method¸¦ Àý´ë·Î Àû¿ëÇؼ­´Â ¾È µÈ´Ù´Â °ÍÀ» Ç¥½ÃÇϱâ À§ÇÏ¿© If-Match Çì´õ Çʵ带 Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. ÀÌ°ÍÀº »ç¿ëÀÚ°¡ ÀÚ½ÅÀÌ ÀÎÁöÇÏ Áö ¸øÇÏ´Â µ¿¾È ÀÚ¿øÀÌ º¯°æµÇ¾úÀ¸¸é ¿ä±¸°¡ ¿Ï·áµÇ´Â °ÍÀ» ¹Ù¶óÁö ¾ÊÀ½À» Ç¥½ÃÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ¿¹¸¦ µé¸é, If-Match: "xyzzy" If-Match: "xyzzy", "r2d2xxxx", "c3piozzzz" If-Match: * 14.26 If-None-Match If-None-Match request-header Çʵå´Â method¿Í ÇÔ²² »ç¿ëÇÏ¿© method¸¦ Á¶°ÇÀûÀ¸·Î ¸¸µç´Ù. ÀÌ Àü¿¡ ÀÚ¿ø¿¡¼­ ȹµæÇÑ Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ ¿£ÅÍƼ¸¦ °¡Áø Ŭ¶óÀ̾ðÆ®´Â ¿¬°üµÈ ¿£ÅÍƼ ÅÂ±× ÀÇ ¸ñ·ÏÀ» If-None-Match Çì´õ Çʵ忡 Æ÷ÇÔÇÏ¿© ÀÌ·¯ÇÑ ¿£ÅÍƼ ÁßÀÇ Çϳª°¡ ÇöÀçÀÇ °ÍÀÓÀ» Áõ ¸íÇÒ ¼ö ÀÖ´Ù. ÀÌ ±â´ÉÀÇ ¸ñÀûÀº Æ®·£Àè¼Ç ¿À¹öÇìµå(transaction overhead)¸¦ ÃÖ¼ÒÈ­Çϸ鼭 ij½Ã µÈ Á¤º¸¸¦ È¿°úÀûÀ¸·Î °»½ÅÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀÌ´Ù. ¶ÇÇÑ ¿ä±¸¸¦ °»½ÅÇÒ ¶§ ÀÚ¿øÀÇ À߸øµÈ ¹öÀü¿¡ ´ëÇÑ ºÎÁÖÀÇÇÑ º¯°æÀ» ¹æÁöÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ´Ù. Ưº°ÇÑ °æ¿ì·Î "*" °ªÀº ÀÚ¿øÀÇ ¸ðµç ÇöÀç ¿£ÅÍƼ¿Í ÀÏÄ¡ÇÑ´Ù. If-None-Match = "If-None-Match" ":" ( "*" | 1#entity-tag ) ÇØ´ç ÀÚ¿ø¿¡ À¯»çÇÑGET ¿ä±¸(If-Match Çì´õ ¾øÀÌ)¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î ¸®ÅϵǾúÀ» ¼ö ÀÖ´Â ¿£ÅÍ Æ¼ÀÇ ¿£ÅÍƼ ÅÂ±×¿Í ÀÏÄ¡ÇÏ´Â ¾î¶°ÇÑ ¿£ÅÍƼ ű׳ª "*"ÀÌ ÁÖ¾îÁö°í ÇØ´ç ÀÚ¿ø¿¡ ´ëÇÑ ÇöÀçÀÇ ¿£ÅÍƼ°¡ Á¸ÀçÇÑ´Ù¸é ¼­¹ö´Â ¿ä±¸ ¹ÞÀº method¸¦ Àý´ë·Î ¼öÇàÇؼ­´Â ¾È µÈ´Ù. ´ë½Å ¿ä±¸ method°¡ GET ¶Ç´Â HEADÀÌ¸é ¼­¹ö´Â ÀÏÄ¡ÇÏ´Â ¿£ÅÍƼ Áß ÇϳªÀÇ Ä³½Ã¿Í °ü·ÃµÈ entity- header Çʵå(ƯÈ÷ ETag)¸¦ Æ÷ÇÔÇÏ¿© 304 (Not Modified) ÀÀ´äÀ¸·Î ÀÀÇØ¾ß ÇÑ´Ù. ´Ù¸¥ ¸ðµç ¿ä±¸ method¿¡ ´ëÇؼ­ ¼­¹ö´Â »óÅ 412(Precondition Failed)·Î ÀÀ´äÇØ¾ß ÇÑ´Ù. µÎ ¿£ÅÍƼ űװ¡ ÀÏÄ¡ÇÏ´ÂÁö °áÁ¤ÇÏ´Â ¿øÄ¢¿¡ ´ëÇÏ¿©´Â 13.3.3ÀýÀ» ÂüÁ¶ÇÑ´Ù. GET ¶Ç´Â HEAD ¿ä±¸¿¡´Â ¾àÇÑ ºñ±³ ±â´É(weak comparison function )¸¸À» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¾î¶°ÇÑ ¿£ÅÍƼ ű׵µ ÀÏÄ¡ÇÏÁö ¾Ê°í "*"ÀÌ ÁÖ¾îÁö°í ÇØ´ç ÀÚ¿ø¿¡ ´ëÇÑ ¾Æ¹«·± ÇöÀç ¿£ÅÍƼµµ Á¸ÀçÇÏÁö ¾Ê´Â´Ù¸é ¼­¹ö´Â If-None-Match Çì´õ Çʵ尡 Á¸ÀçÇÏÁö ¾Ê´Â °Íó·³ ¿ä±¸ ¹ÞÀº method¸¦ ¼öÇàÇÒ °ÍÀÌ´Ù. [Page 121] If-None-Match Çì´õ ÇÊµå ¾øÀÌ ¿ä±¸°¡ 2xx »óÅ ÀÌ¿ÜÀÇ ¾î¶² °ÍÀÌ¶óµµ ÃÊ·¡ÇÏ°Ô µÇ¸é If-None- Match¸¦ ¹«½ÃÇØ¾ß ÇÑ´Ù. " If-None-Match: *" ÀÇ Àǹ̴ ¿ø¼­¹ö(¶Ç´Â Vary ¸ÞÄ¿´ÏÁòÀ» ÀÌ¿ëÇÑ Ä³½Ã, 14.43Àý ÂüÁ¶)°¡ ¼±Åà ÇÑ Ç¥½Ã ¹æ¹ýÀÌ Á¸ÀçÇϸé method¸¦ ¹Ýµå½Ã ¼öÇàÇØ¾ß ÇÏ°í ±×·¸Áö ¾Ê´Ù¸é Àý´ë ¼öÇàÇؼ­´Â ¾È µÈ´Ù´Â °ÍÀÌ´Ù. ÀÌ ±â´ÉÀº PUT ó¸® ½Ã °æÀï(race)À» ¹æÁöÇÏ´Â µ¥ À¯¿ëÇÏ´Ù. ¿¹: If-None-Match: "xyzzy" If-None-Match: W/"xyzzy" If-None-Match: "xyzzy", "r2d2xxxx", "c3piozzzz" If-None-Match: W/"xyzzy", W/"r2d2xxxx", W/"c3piozzzz" If-None-Match: * 14.27 If-Range Ŭ¶óÀ̾ðÆ®°¡ ÀÚ½ÅÀÇ Ä³½Ã¿¡ ¿£ÅÍƼÀÇ ºÎºÐÀû »çº»À» °¡Áö°í ÀÖ°í Àüü ¿£ÅÍƼÀÇ ÃֽŠ°»½Å »çº»À» °¡Áö°í ½Í´Ù¸é Á¶°ÇÀûÀÎ GET(If-Unmodified-Since ¹× If-Match Áß Çϳª³ª µÑ ¸ðµÎ¸¦ ÀÌ ¿ëÇÏ¿©)ÀÇ Range request-header¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª ¿£ÅÍƼ°¡ º¯°æµÇ¾î Á¶°ÇÀÌ ½ÇÆÐÇÑ´Ù ¸é Ŭ¶óÀ̾ðÆ®´Â ÇöÀçÀÇ Àüü entity-body¸¦ ȹµæÇϱâ À§ÇØ 2Â÷ ¿ä±¸¸¦ ÇÒ ¼ö ÀÖ´Ù. If-Range Çì´õ´Â Ŭ¶óÀ̾ðÆ®°¡ 2Â÷ ¿ä±¸¸¦ "´ÜÃà(short-circuit)"ÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ¾à½ÄÀ¸·Î ¸» Çϸé ÀÌ°ÍÀÇ Àǹ̴ `¿£ÅÍƼ°¡ º¯°æµÇÁö ¾Ê¾Ò´Ù¸é ³»°¡ ºüÆ®¸° ºÎºÐ¸¸À» ¹ß¼ÛÇÏ°í ±×·¸Áö ¾Ê ´Ù¸é »õ·Î¿î Àüü ¿£ÅÍƼ¸¦ ¹ß¼ÛÇϽÿÀ. 'ÀÌ´Ù. If-Range = "If-Range" ":" ( entity-tag | HTTP-date ) Ŭ¶óÀ̾ðÆ®°¡ ¿£ÅÍƼÀÇ ¿£ÅÍƼ ű׸¦ °¡Áö°í ÀÖÁö ¾ÊÀ¸³ª Last-Modified ³¯Â¥¸¦ °¡Áö°í ÀÖÀ¸ ¸é Ŭ¶óÀ̾ðÆ®´Â ±× ³¯Â¥¸¦ If-Range Çì´õ¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Ù. (¼­¹ö´Â 2 ¹®ÀÚ À̳»¸¦ °Ë»çÇÏ ¿© À¯È¿ÇÑ HTTP-date¿Í entity-tageÀÇ ¾î¶°ÇÑ Æûµµ ±¸º°ÇÒ ¼ö ÀÖ´Ù.) If-Range Çì´õ´Â Range Çì ´õ¿Í ÇÔ²²¸¸ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç, Range Çì´õ¸¦ Æ÷ÇÔÇÏ°í ÀÖÁö ¾Ê°Å³ª ¼­¹ö°¡ ÇϺÎ-¿µ¿ª ¿î¿µ (sub-range operation)À» Áö¿øÇÏÁö ¾ÊÀ¸¸é ¿ä±¸¸¦ ¹Ýµå½Ã ¹«½ÃÇØ¾ß ÇÑ´Ù. [Page 123] If-Range ³»ÀÇ ¿£ÅÍƼ űװ¡ ¿£ÅÍƼÀÇ ÇöÀç ¿£ÅÍƼ ÅÂ±×¿Í ÀÏÄ¡ÇÏ¸é ¼­¹ö´Â 206 (Partial content)ÀÀ´äÀ» ÀÌ¿ëÇÏ¿© ÀÚ¼¼ÇÑ ¿£ÅÍƼÀÇ ÇϺÎ-¿µ¿ªÀ» Á¦°øÇؾ߸¸ ÇÑ´Ù. ¿£ÅÍƼ űװ¡ ÀÏÄ¡ÇÏ Áö ¾ÊÀ¸¸é ¼­¹ö´Â 200 (OK) ÀÀ´äÀ» ÀÌ¿ëÇÏ¿© Àüü ¿£ÅÍƼ¸¦ ¸®ÅÏÇØ¾ß ÇÑ´Ù. 14.28 If-Unmodified-Since If-Unmodified-Since request-header Çʵå´Â method¿Í ÇÔ²² »ç¿ëÇÏ¿© method¸¦ Á¶°ÇÀûÀ¸·Î ¸¸µç´Ù. ¿ä±¸µÈ ÀÚ¿øÀÌ ÀÌ Çʵ忡 ¸í½ÃµÈ ½Ã°£ ÀÌÈÄ º¯°æµÇÁö ¾Ê¾ÒÀ¸¸é ¼­¹ö´Â If-Unmodified-Since Çì ´õ°¡ Á¸ÀçÇÏÁö ¾Ê´Â °Íó·³ ¿ä±¸ ¹ÞÀº ÀÛ¾÷À» ¼öÇàÇØ¾ß ÇÑ´Ù. ¿ä±¸ ¹ÞÀº º¯ÇüÀÚ°¡ ÁöÁ¤µÈ ½Ã°£ ÀÌÈÄ¿¡ º¯°æµÇ¾úÀ¸¸é ¼­¹ö´Â ¿ä±¸ ¹ÞÀº ÀÛ¾÷À» Àý´ë·Î ¼öÇà Çؼ­´Â ¾È µÇ¸ç ¹Ýµå½Ã 412 (Precondition Failed)¸¦ ¸®ÅÏÇØ¾ß ÇÑ´Ù. If-Unmodified-Since = "If-Unmodified-Since" ":" HTTP-date ÀÌ ÇʵåÀÇ »ç¿ë ¿¹´Â, If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT ¿ä±¸°¡ ´ë°³(¿¹¸¦ µé¾î If-Unmodified-Since Çì´õ ¾øÀÌ) 2xx »óÅ ÀÌ¿ÜÀÇ ¾î¶² °ÍÀÌ¶óµµ ÃÊ·¡ÇÏ °Ô µÇ¸é If-Unmodified-Since¸¦ ¹«½ÃÇØ¾ß ÇÑ´Ù. ¸í½ÃÇÑ ³¯Â¥°¡ À¯È¿ÇÏÁö ¾ÊÀ¸¸é Çì´õ¸¦ ¹«½ÃÇØ¾ß ÇÑ´Ù. 14.29 Last-Modified Last-Modified entity-header Çʵå´Â ¿ø¼­¹ö°¡ º¯ÇüÀÚ°¡ ¸¶Áö¸·À¸·Î º¯°æµÇ¾ú´Ù°í ¹Ï´Â ³¯Â¥¿Í ½Ã °£À» Ç¥½ÃÇÑ´Ù. Last-Modified = "Last-Modified" ":" HTTP-date »ç¿ë ¿¹´Â, Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT ÀÌ Çì´õ ÇʵåÀÇ Á¤È®ÇÑ Àǹ̴ ¿ø¼­¹öÀÇ ±¸Çö ¹æ½Ä ¹× ¿ø·¡ ÀÚ¿øÀÇ ¼º°Ý¿¡ µû¶ó ´Þ¶óÁø´Ù. ÆÄ ÀÏÀÇ °æ¿ì Àǹ̴ ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­ ¸¶Áö¸·À¸·Î º¯°æµÈ ½Ã°£À» ¿ªµ¿ÀûÀ¸·Î ºÎºÐÀ» Æ÷ÇÔÇÏ´Â ¿£ ÅÍƼÀÇ °æ¿ì Àǹ̴ ºÎºÐ ¿ä¼Ò°¡ ¸¶Áö¸·À¸·Î º¯°æµÈ ½Ã°£ ¼¼Æ®°¡ µÉ ¼ö ÀÖ´Ù. µ¥ÀÌÅÍ º£À̽º °ÔÀÌÆ®¿þÀÌÀÇ °æ¿ì¿¡´Â ·¹ÄÚµåÀÇ ÃÖ±Ù °»½Å ½Ã°£ ½ºÅÆÇÁ(stamp)¸¦ , °¡»ó °´Ã¼ÀÇ °æ¿ì¿¡´Â ³» ºÎ »óÅ°¡ ¸¶Áö¸·À¸·Î º¯°æµÈ ½Ã°£ÀÏ ¼ö ÀÖ´Ù. [Page 124] ¿ø¼­¹ö´Â Àý´ë ¼­¹öÀÇ ¸Þ½ÃÁö ¹ß»ý ½Ã°£º¸´Ù ´ÊÀº Last-Modified ³¯ÀÚ¸¦ ¹ß¼ÛÇؼ­´Â ¾È µÈ´Ù. ÀÌó·³ ÀÚ¿øÀÇ ÃÖ±Ù º¯°æÀÌ ¹Ì·¡ÀÇ Æ¯Á¤ ½Ã°£À» Ç¥½ÃÇÏ´Â °æ¿ì ¼­¹ö´Â ±× ³¯Â¥¸¦ ¸Þ½ÃÁö ¹ß»ý ³¯Â¥·Î ´ëüÇØ¾ß ÇÑ´Ù. ±âº» ¼­¹ö´Â ¿£ÅÍƼÀÇ Last-Modified °ªÀ» ÀÀ´äÀÇ Date °ªÀ» »ý¼ºÇÑ ½Ã°£°ú °¡´ÉÇÑ ÇÑ °¡±î¿î °ÍÀ» ¾ò¾î¾ß ÇÑ´Ù. ÀÌ°ÍÀº ¼ö½ÅÃøÀÌ Æ¯È÷ ¿£ÅÍƼ°¡ ÀÀ´äÀÌ »ý¼ºµÈ ½Ã°£¿¡ °¡±õ°Ô º¯°æµÇ¾úÀ» ¶§ Á¤È®ÇÏ°Ô ¿£ÅÍƼÀÇ º¯°æ ½Ã°£À» Æò°¡ÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. HTTP/1.1 ¼­¹ö´Â °¡´ÉÇÒ ¶§ ¸¶´Ù ¹Ýµå½Ã Last-Modified¸¦ ¹ß¼ÛÇØ¾ß ÇÑ´Ù. 14.30 Location Location response-header Çʵå´Â ¿ä±¸ÀÇ ¿Ï¼º ¶Ç´Â »õ·Î¿î ÀÚ¿øÀÇ ½Äº°À» À§ÇØ ¼ö½ÅÃøÀÇ ¹æÇâÀ» Request-URI °¡ ¾Æ´Ñ ´Ù¸¥ Àå¼Ò·Î ¹æÇâÀ» Àç¼³Á¤ÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. 201 (Created) ÀÀ´äÀÇ °æ¿ì Location Àº ¿ä±¸¿¡ ÀÇÇØ »õ·Ó°Ô »ý¼ºµÈ ÀÚ¿øÀÇ À§Ä¡ÀÌ´Ù. 3xx ÀÀ´äÀÇ °æ¿ì À§Ä¡´Â ÀÚ¿øÀÇ ÀÚ µ¿ ¹æÇâ Àç¼³Á¤À» À§ÇØ ¼­¹ö°¡ ¼±È£ÇÏ´Â URLÀ» Ç¥½ÃÇÑ´Ù. Location = "Location" ":" absoluteURI ¿¹´Â, Location: http://www.w3.org/pub/WWW/People.html ÁÖÀÇ : Content-Location Çì´õ Çʵå(14.15Àý)´Â Content-LocationÀÌ ¿ä±¸¿¡ Æ÷ÇÔµÈ ¿£ÅÍƼÀÇ ¿ø ·¡ À§Ä¡¸¦ ½Äº°ÇÑ´Ù´Â Á¡¿¡¼­ Location°ú ´Ù¸£´Ù. µû¶ó¼­ ÀÀ´äÀÌ Location ¹× Content- Location Çì´õ Çʵ带 ¸ðµÎ Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. ¸î¸î methodsÀÇ Ä³½Ã ÇÊ¿ä Á¶°Ç¿¡ °üÇؼ­´Â 13.10 ÀýÀ» ÂüÁ¶ÇÑ´Ù. 14.31 Max-Forwards Max-Forwards request-header Çʵå´Â TRACE method (14.31 Àý)¿Í ÇÔ²² »ç¿ëÇÏ¿© ´ÙÀ½ÀÇ µé¾î¿À´Â ¹æÇâ(inbound)ÀÇ ¼­¹ö¿¡ ¿ä±¸¸¦ Àü´ÞÇÒ ¼ö ÀÖ´Â ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌÀÇ ¼ýÀÚ¸¦ Á¦ÇÑÇÑ´Ù. Max-Forwards = "Max-Forwards" ":" 1*DIGIT [Page 125] Max-Forwards °ªÀº ÀÌ ¿ä±¸ ¸Þ½ÃÁö°¡ Àü´ÞµÉ ¼ö ÀÖ´Â ³²Àº Ƚ¼ö¸¦ Ç¥½ÃÇÏ´Â ½ÊÁø¼ö Á¤¼öÀÌ´Ù. Max-Forwards Çì´õ Çʵ带 Æ÷ÇÔÇÏ°í ÀÖ´Â TRACE ¿ä±¸¸¦ ¼ö½ÅÇÏ´Â °¢°¢ÀÇ ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þ ÀÌ´Â ¿ä±¸¸¦ Àü´ÞÇÏÁö ÀÌÀü¿¡ ±× °ªÀ» Á¡°ËÇÏ°í °»½ÅÇؾ߸¸ ÇÑ´Ù. ¼ö½ÅµÈ °ªÀÌ Á¦·Î(0)ÀÌ¸é ¼ö ½ÅÃøÀº ¿ä±¸¸¦ Àü´ÞÇؼ­´Â ¾È µÇ¸ç ´ë½Å ¼ö½ÅÇÑ ¿ä±¸ ¸Þ½ÃÁö¸¦ ÀÀ´ä entity-body(9.8 Àý¿¡ ±â¼ú ÇÑ ¹Ù¿Í °°ÀÌ)·Î¼­ Æ÷ÇÔÇÏ´Â 200 (OK) ÀÀ´äÀ¸·Î ¸¶Áö¸· ¼ö½ÅÃøÀÇ ÀÔÀå¿¡¼­ ÀÀ´äÇØ¾ß ÇÑ´Ù. ¼ö ½ÅÇÑ Max-Forwards °ªÀÌ Á¦·Îº¸´Ù Å©¸é Àü´ÞµÈ ¸Þ½ÃÁö´Â °ªÀÌ 1¸¸Å­ °¨¼ÒµÈ °»½ÅµÈ Max- Forwards Çʵ带 Æ÷ÇÔÇØ¾ß ÇÑ´Ù. Max-Forwards Çì´õ Çʵå´Â ÀÌ ±Ô°Ý¿¡¼­ Á¤ÀÇÇÑ ´Ù¸¥ ¸ðµç method ¹× ÇØ´ç method Á¤ÀÇÀÇ ÀÏ ºÎºÐÀ¸·Î ¸í¹éÇÏ°Ô ÂüÁ¶µÇÁö ¾Ê´Â ¸ðµç È®Àå method¿¡¼­´Â ¹«½ÃµÇ¾î¾ß ÇÑ´Ù. 14.32 Pragma Pragma general-header Çʵå´Â request/response chainÀ» µû¶ó ¾î¶² ¼ö½ÅÃø¿¡µµ Àû¿ëÇÒ ¼ö ÀÖ´Â ±¸ Çö ¹æ½Ä¿¡ ÇÑÁ¤µÈ Áö½ÃÀÚ(implementation-specific)¸¦ Æ÷ÇÔÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. ¸ðµç pragma Áö½ÃÀÚ ´Â ±Ô¾àÀÇ °üÁ¡¿¡¼­ ¼±Åà »çÇ×Àû ÇàŸ¦ ¸í½ÃÇÑ´Ù. ±×·¯³ª ¸î¸î ½Ã½ºÅÛÀº ±× ÇàÅ°¡ Áö½ÃÀÚ¿Í ÀÏÄ¡ÇÒ °ÍÀ» ¿ä±¸ÇÑ´Ù. Pragma = "Pragma" ":" 1#pragma-directive pragma-directive = "no-cache" | extension-pragma extension-pragma = token [ "=" ( token | quoted-string ) ] No-cache Áö½ÃÀÚ°¡ ¿ä±¸ ¸Þ½ÃÁö¿¡ Á¸ÀçÇÏ¸é ¾ÖÇø®ÄÉÀ̼ÇÀº ¿ä±¸µÇ°í ÀÖ´Â °ÍÀÇ Ä³½Ã »çº»À» °¡Áö°í ÀÖ´Ù ÇÏ´õ¶óµµ ¿ä±¸¸¦ ¿ø¼­¹ö¿¡ Àü´ÞÇØ¾ß ÇÑ´Ù. ÀÌ pragma Áö½ÃÀÚ´Â no-cache cache- directive (14.9 Àý ÂüÁ¶)¿Í µ¿ÀÏÇÑ Àǹ̸¦ °¡Áö¸ç ¿©±â¼­´Â HTTP/1.0°úÀÇ È£È¯¼º À¯Áö¸¦ À§ÇØ ±ÔÁ¤ÇÏ¿´´Ù. Ŭ¶óÀ̾ðÆ®´Â No-cache ¿ä±¸°¡ HTTP/1.1À» µû¸£Áö ¾Ê´Â °ÍÀ¸·Î ¾Ë·ÁÁø ¼­¹ö·Î Àü ´ÞµÇ¾úÀ» ¶§ µÎ Çì´õ Çʵ带 ¸ðµÎ Æ÷ÇÔÇØ¾ß ÇÑ´Ù. Pragma Áö½ÃÀÚ´Â ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ °¡Áö´Â Áß¿äµµ¿¡ °ü°è¾øÀÌ Áö½ÃÀÚ´Â request/response chainÀ» µû ¶ó ¸ðµç ¼ö½ÅÃø¿¡ Àû¿ëÇÒ ¼ö Àֱ⠶§¹®¿¡ ¹Ýµå½Ã ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌ ¾ÖÇø®ÄÉÀ̼ÇÀ» Åë°úÇØ ¾ß ÇÑ´Ù. [Page 126] HTTP/1.1 Ŭ¶óÀ̾ðÆ®´Â Pragma request-header¸¦ ¹ß¼ÛÇؼ­´Â ¾È µÈ´Ù. HTTP/1.1 ij½Ã´Â "Pragma: no-cache"¸¦ Ŭ¶óÀ̾ðÆ®°¡ "Cache-Control: no-cache"¸¦ ¹ß¼ÛÇÑ °Íó·³ Ãë±ÞÇØ¾ß ÇÑ´Ù. ´õ ÀÌ»óÀÇ »õ·Î¿î Pragma Áö½ÃÀÚ´Â HTTP¿¡ ±ÔÁ¤µÇÁö ¾ÊÀ» °ÍÀÌ´Ù. 14.33 Proxy-Authenticate Proxy-Authenticate response-header Çʵå´Â 407 (Proxy Authentication Required) ÀÀ´äÀÇ ÀÏ ºÎºÐÀ¸·Î ¹Ýµå½Ã Æ÷ÇÔÇØ¾ß ÇÑ´Ù. ÇÊµå °ªÀº Request-URIÀÇ ÇÁ¶ô½Ã¿¡ Àû¿ëÇÒ ¼ö ÀÖ´Â ÀÎÁõ schemeÀ̳ª ÆĶó¹ÌÅ͸¦ Ç¥½ÃÇÏ´Â ÀÎÁõ ȹµæ ½Ãµµ·Î ±¸¼ºµÇ¾î ÀÖ´Ù. Proxy-Authenticate = "Proxy-Authenticate" ":" challenge HTTP Á¢±Ù ÀÎÁõ 󸮴 11Àå¿¡ ±â¼úµÇ¾î ÀÖ´Ù. WWW-Authenticate¿Í´Â ´Þ¸® Proxy- Authenticate Çì´õ Çʵå´Â ÇöÀçÀÇ Á¢¼Ó¿¡¸¸ Àû¿ëµÇ¸ç ´Ù¿î½ºÆ®¸²(downstream) Ŭ¶óÀ̾ðÆ®·Î Àü ´ÞÇؼ­´Â ¾È µÈ´Ù. ±×·¯³ª °¡Àå °¡±î¿î ÇÁ¶ô½Ã´Â ´Ù¿î½ºÆ®¸²(downstream) Ŭ¶óÀ̾ðÆ®¿¡ ¿äûÇÏ ¿© ÀÚ½ÅÀÇ Áõ¸í¼­¸¦ ȹµæÇÒ ÇÊ¿ä°¡ ÀÖÀ» ¼ö ÀÖ´Ù. ¾î¶² »óȲ¿¡¼­´Â ÇÁ¶ô½Ã°¡ Çì´õ Çʵ带 Àü ¼ÛÇÏ´Â °Íó·³ º¸ÀÏ °ÍÀÌ´Ù. 14.34 Proxy-Authorization Proxy-Authorization request-header Çʵå´Â Ŭ¶óÀ̾ðÆ®°¡ ÀÎÁõÀ» ¿ä±¸ÇÏ´Â ÇÁ¶ô½Ã ÀÚ½Å(¶Ç´Â ÀڽŠÀÇ »ç¿ëÀÚ)À» ½Äº°½ÃŲ´Ù. Proxy-Authorization ÇÊµå °ªÀº ÇÁ¶ô½Ã ¹×/¶Ç´Â ¿äûµÇ°í ÀÖ´Â ÀÚ¿øÀÇ ¿µ¿ª¿¡ °üÇÑ »ç¿ë ¿¡ÀÌÀüÆ®ÀÇ ÀÎÁõ ȹµæ Á¤º¸¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Â Áõ¸í¼­·Î ±¸¼ºµÇ¾î ÀÖ´Ù. Proxy-Authorization = "Proxy-Authorization" ":" credentials HTTP Á¢±Ù ÀÎÁõ ȹµæ ÀýÂ÷´Â 11 Àå¿¡ ±â¼úµÇ¾î ÀÖ´Ù. Authorization¿Í´Â ´Þ¸® Proxy- Authorization Çì´õ Çʵå´Â Proxy-Authenticate Çʵ带 ÀÌ¿ëÇÑ ÀÎÁõ ȹµæÀ» ¿ä±¸ÇÏ´Â ´ÙÀ½ÀÇ ¿ÜºÎ ·Î ÇâÇÑ(outbound) ÇÁ¶ô½Ã¿¡¸¸ Àû¿ëµÈ´Ù. Chain¿¡¼­ º¹¼öÀÇ ÇÁ¶ô½Ã°¡ »ç¿ëµÇ¾úÀ» ¶§ Proxy- Authorization Çì´õ Çʵå´Â º¸Áõ¼­¸¦ ¼ö½ÅÇÒ ¿¹Á¤ÀÎ ¿ÜºÎ·Î ÇâÇÑ Ã¹ ÇÁ¶ô½Ã¿¡ ÀÇÇØ »ç¿ëµÈ´Ù. ÇÁ¶ô½Ã´Â ±×°ÍÀÌ ÇÁ¶ô½Ã°¡ ÁÖ¾îÁø ¿ä±¸¸¦ »óÈ£ ÇùÁ¶ÀûÀ¸·Î ÀÎÁõÇÏ´Â ¸ÞÄ¿´ÏÁòÀ̶ó¸é º¸Áõ¼­¸¦ Ŭ¶óÀ̾ðÆ® ¿ä±¸¿¡¼­ ´ÙÀ½ ÇÁ¶ô½Ã·Î Áß°èÇÒ ¼ö ÀÖ´Ù. 14.35 Public Public response-header Çʵå´Â ¼­¹ö°¡ Áö¿øÇÏ´Â methods ¼¼Æ®¸¦ ¿­°ÅÇÑ´Ù. ÀÌ ÇʵåÀÇ ¸ñÀûÀº ¾ö °ÝÇÏ°Ô ¼ö½ÅÃø¿¡ ÀÌ·ÊÀûÀÎ methods¿¡ °üÇÑ ¼­¹öÀÇ ´É·ÂÀ» ¾Ë¸®´Â µ¥ ÀÖ´Ù. [Page 127] ¿­°ÅµÈ method´Â Request-URI¿¡ Àû¿ëÇÒ ¼ö µµ ÇÒ ¼ö ¾øÀ» ¼öµµ ÀÖ´Ù. Allow Çì´õ Çʵå(14.7Àý) ´Â ƯÁ¤ URI¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â method¸¦ Ç¥½ÃÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. Public = "Public" ":" 1#method »ç¿ë ¿¹´Â, Public: OPTIONS, MGET, MHEAD, GET, HEAD ÀÌ Çì´õ Çʵå´Â Ŭ¶óÀ̾ðÆ®(¿¹¸¦ µé¾î ¿¬°á °í¸®ÀÇ °¡Àå °¡±î¿î ÀÌ¿ô)¿¡ Á÷Á¢ÀûÀ¸·Î Á¢¼ÓµÈ ¼­¹ö¿¡¸¸ Àû¿ëµÈ´Ù. ÀÀ´äÀÌ ÇÁ¶ô½Ã¸¦ Åë°úÇÑ´Ù¸é ÇÁ¶ô½Ã´Â Public Çì´õ Çʵ带 »èÁ¦ÇϵçÁö ÀÚ ½ÅÀÇ ´É·Â¿¡ Àû¿ëÇÒ ¼ö ÀÖ´Â °ÍÀ¸·Î ´ëüÇØ¾ß ÇÑ´Ù. 14.36 Range 14.36.1 Byte Ranges ¸ðµç HTTP ¿£ÅÍƼ´Â ¿¬¼ÓÀûÀÎ ¹ÙÀÌÆ®·Î¼­ HTTP ¸Þ½ÃÁö ³»¿¡ Ç¥ÇöµÇ±â ¶§¹®¿¡ ¹ÙÀÌÆ® ¹üÀ§ÀÇ °³³äÀº ¸ðµç HTTP ¿£ÅÍƼ¿¡ Àǹ̰¡ ÀÖ´Ù.(±×·¯³ª ¸ðµç Ŭ¶óÀ̾ðÆ®³ª ¼­¹ö°¡ byte-range ÀÛ¾÷À» Áö¿øÇÒ ÇÊ¿ä´Â ¾ø´Ù.) HTTP ³»ÀÇ ¹ÙÀÌÆ® ¿µ¿ª ±Ô°ÝÀº entity-body(¹Ýµå½Ã message-body¿Í µ¿ÀÏÇÒ ÇÊ¿ä´Â ¾ø´Ù.) ³»ÀÇ ¹ÙÀÌÆ® ¿¬¼Ó¿¡ Àû¿ëµÈ´Ù. ¹ÙÀÌÆ® ¿µ¿ª ÀÛ¾÷Àº ´ÜÀÏ ¹ÙÀÌÆ® ¿µ¿ªÀ̳ª ´ÜÀÏ ¿£ÅÍƼ ³»ÀÇ ¿µ¿ª ¼¼Æ®¸¦ ¸í½ÃÇÒ ¼ö ÀÖ´Ù. ranges-specifier = byte-ranges-specifier byte-ranges-specifier = bytes-unit "=" byte-range-set byte-range-set = 1#( byte-range-spec | suffix-byte-range-spec ) byte-range-spec = first-byte-pos "-" [last-byte-pos] first-byte-pos = 1*DIGIT last-byte-pos = 1*DIGIT Byte-range-specÀÇ first-byte-pos °ªÀº ¿µ¿ª¿¡¼­ ù ¹ÙÀÌÆ®ÀÇ byte-offsetÀ» Á¦°øÇÑ´Ù. Last-byte-pos °ªÀº ¿µ¿ª¿¡¼­ ¸¶Áö¸· ¹ÙÀÌÆ®ÀÇ byte-offsetÀ» Á¦°øÇÑ´Ù. ¸»ÇÏÀÚ¸é ¸í½ÃµÈ ¹ÙÀÌÆ® À§Ä¡´Â Æ÷°ý ÀûÀÎ °ÍÀÌ´Ù. ¹ÙÀÌÆ® ¿ÀÇÁ¼Â(byte offsets)Àº 0ºÎÅÍ ½ÃÀÛÇÑ´Ù. [Page 128] Last-byte-pos °ªÀÌ Á¸ÀçÇϸé ÇØ´çbyte-range-specÀÇ first-byte-posº¸´Ù Å©°Å³ª °°¾Æ¾ß ÇÑ´Ù. ±×·¸ Áö ¾ÊÀ¸¸é byte-range-specÀº À¯È¿ÇÏÁö ¾Ê´Ù. À¯È¿ÇÏÁö ¾Ê´Â byte-range-specÀÇ ¼ö½ÅÃøÀº À̸¦ ¹« ½ÃÇØ¾ß ÇÑ´Ù. Last-byte-pos °ªÀÌ ¾ø°Å³ª entity-bodyÀÇ ÇöÀç ±æÀ̺¸´Ù Å©°Å³ª °°À¸¸é last-byte-pos Àº ¹ÙÀÌÆ® ´ÜÀ§·Î entity-bodyÀÇ ÇöÀç ±æÀ̺¸´Ù ÀÛÀº °Í°ú µ¿ÀÏÇÑ °ÍÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. Ŭ¶óÀ̾ðÆ®´Â last-byte-pos ¼±ÅÃÀ» ÅëÇÏ¿© ¿£ÅÍƼÀÇ Å©±â¸¦ ¸ð¸¥ ä ¼ö½ÅÇÑ ¹ÙÀÌÆ®ÀÇ ¼ýÀÚ¸¦ Á¦ÇÑÇÒ ¼ö ÀÖ´Ù. suffix-byte-range-spec = "-" suffix-length suffix-length = 1*DIGIT Suffix-byte-range-specÀº suffix-length °ªÀÌ ºÎ¿©ÇÑ ±æÀÌÀÇ entity-body Á¢¹Ì»ç¸¦ ¸í½ÃÇÏ´Â µ¥ »ç ¿ëÇÑ´Ù.(¸»ÇÏÀÚ¸é ÀÌ ÆûÀÌ entity-bodyÀÇ ¸¶Áö¸· N ¹ÙÀÌÆ®¸¦ ¸í½ÃÇÑ´Ù.) ¿£ÅÍƼ°¡ ¸í½ÃµÈ suffix- lengthº¸´Ù ªÀ¸¸é Àüü entity-body°¡ »ç¿ëµÈ´Ù. Byte-ranges-specifier °ªÀÇ »ç¿ë ¿¹ÀÌ´Ù.(entity-body ÀÇ ±æÀÌ°¡ 10000À̶ó°í °¡Á¤ÇßÀ» ¶§) ? ù 500 ¹ÙÀÌÆ® (byte offsets 0-499, inclusive): bytes=0-499 ? µÎ ¹ø° 500 ¹ÙÀÌÆ® (byte offsets 500-999, inclusive): bytes=500-999 ? ¸¶Áö¸· 500 ¹ÙÀÌÆ®(byte offsets 9500-9999, inclusive): bytes=-500 ? ¶Ç´Â bytes=9500- ? óÀ½°ú ¸¶Áö¸· ¹ÙÀÌÆ®¸¸(bytes 0 and 9999): bytes=0-0,-1 [Page 129] ? ±Ô¹üÀûÀÌÁö´Â ¾ÊÁö¸¸ À¯È¿ÇÑ µÎ ¹ø° 500 ¹ÙÀÌÆ® ¸í½Ã (byte offsets 500-999, inclusive): bytes=500-600,601-999 bytes=500-700,601-999 14.36.2 Range Retrieval Requests Á¶°ÇÀû ¶Ç´Â ¹«Á¶°ÇÀû GET method¸¦ ÀÌ¿ëÇÏ´Â HTTP Á¶È¸ ¿ä±¸´Â Range ¿ä±¸ Çì´õ¸¦ ÀÌ¿ëÇÏ ¿© ¿ä±¸ÀÇ °á°ú·Î ¸®ÅϵǴ ¿£ÅÍƼ¿¡ Àû¿ëÇÒ ¼ö ÀÖ´Â Àüü ¿£ÅÍƼ ´ë½Å Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ ¿£ÅÍƼÀÇ ÇϺΠ¿µ¿ªÀ» ¿äûÇÒ ¼ö ÀÖ´Ù. Range = "Range" ":" ranges-specifier ¼­¹ö´Â Range Çì´õ¸¦ ¹«½ÃÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª HTTP/1.1 ¿ø¼­¹ö ¹× °¡Àå °¡±î¿î ij½Ã´Â Range °¡ ºÎºÐÀûÀ¸·Î ½ÇÆÐÇÑ Àü¼ÛÀ» È¿°úÀûÀ¸·Î º¹±¸ÇÏ°í Å« ¿£ÅÍƼÀÇ È¿°úÀûÀÎ ºÎºÐÀû Á¶È¸¸¦ Áö¿ø Çϱ⠶§¹®¿¡ °¡´ÉÇÏ¸é ¹ÙÀÌÆ® ¿µ¿ªÀ» Áö¿øÇØ¾ß ÇÑ´Ù. ¼­¹ö°¡ Range Çì´õ¸¦ Áö¿øÇÏ°í ¸í½ÃµÈ ¿µ¿ª À̳ª ¿µ¿ªµéÀÌ ¿£ÅÍƼ¿¡ ÀûÇÕÇÏ´Ù¸é: ? ¹«Á¶°ÇÀûÀÎ GET¿¡ Range Çì´õ°¡ ÀÖÀ¸¸é GETÀÌ ¼º°øÇßÀ» ¶§ ¸®ÅϵǴ °ÍÀ» º¯°æÇÑ´Ù. ´Þ¸® Ç¥ÇöÇϸé ÀÀ´äÀº »óÅ ÄÚµå 200 (OK) ´ë½Å¿¡ 206 (Partial Content)À» °¡Áö°í ¿Â´Ù. ? Á¶°ÇÀûÀÎ GET(If-Modified-Since ¹× If-None-Match Áß Çϳª³ª µÑ ¸ðµÎ, ¶Ç´ÂIf-Unmodified- Since ¹× If-Match Áß Çϳª³ª µÑ ¸ðµÎ¸¦ ÀÌ¿ëÇÏ´Â ¿ä±¸)¿¡ Range Çì´õ°¡ ÀÖÀ¸¸é GETÀÌ ¼º°øÇÏ°í Á¶°ÇÀÌ ÂüÀÏ ¶§ ¸®ÅϵǴ °ÍÀ» º¯°æÇÑ´Ù. ÀÌ°ÍÀº Á¶°ÇÀÌ °ÅÁþÀÏ °æ¿ì ¸®Å쵂 ´Â 304 (Not Modified) ÀÀ´ä¿¡ ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê´Â´Ù. ¾î¶² °æ¿ì¿¡´Â Range Çì´õ¿¡ ÷°¡Çü If-Range Çì´õ(14.27 Àý ÂüÁ¶)¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ´õ ÀûÀýÇÒ ¼öµµ ÀÖ´Ù. Range¸¦ Áö¿øÇÏ´Â ÇÁ¶ô½Ã°¡ Range ¿ä±¸¸¦ ¼ö½ÅÇÏ°í ¾ÈÀ¸·Î ÇâÇÏ´Â(inbound) ¼­¹ö¿¡ ¿ä±¸¸¦ Àü ´ÞÇÏ°í ÀÌÀÇ ÀÀ´äÀ¸·Î Àüü ¿£ÅÍƼ¸¦ ¼ö½ÅÇϸé ÇÁ¶ô½Ã´Â Ŭ¶óÀ̾ðÆ®¿¡°Ô ¿ä±¸ ¹ÞÀº ¿µ¿ª¸¸À» ¸®ÅÏÇØ¾ß ÇÑ´Ù. ÇÁ¶ô½Ã´Â ±×°ÍÀÌ Ä³½Ã ÇÒ´ç Á¤Ã¥°ú ºÎÇյȴٸé Àüü ¼ö½Å ÀÀ´äÀ» ÀÚ½ÅÀÇ Ä³½Ã ¿¡ ÀúÀåÇØ¾ß ÇÑ´Ù. [Page 130] 14.37 Referer Referer[sic] request-header Çʵå´Â Ŭ¶óÀ̾ðÆ®°¡ ¼­¹ö¸¦ À§ÇØ Request-URI¸¦ ¾òÀº("referrer", Çì´õ ÇʵåÀÇ ½ºÆ縵ÀÌ Æ²·È´Ù.) ÀÚ¿øÀÇ ÁÖ¼Ò(URI)¸¦ ¸í½ÃÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. Referer request-header´Â ¼­¹ö°¡ Ãë¹Ì, ·Î±ë ¶Ç´Â ÃÖÀûÈ­µÈ ij½Ã µîÀÇ ¸ñÀûÀ¸·Î ÀÚ¿ø¿¡ ´ëÇÑ back-links ¸ñ·ÏÀ» »ý¼ºÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ¶Ç´Â Æó±âµÇ¾ú°Å³ª ŸÀÌÇÎÀ» À߸øÇÑ ¸µÅ©¸¦ À¯Áö°ü¸®Çϱâ À§ÇØ ÃßÀûÇÒ ¼ö ÀÖ µµ·Ï ÇÑ´Ù. Referer Çʵå´Â »ç¿ëÀÚ Å°º¸µå¿¡¼­ÀÇ ÀÔ·Â µî ÀÚ½ÅÀÇ URI¸¦ °¡Áö°í ÀÖÁö ¾Ê´Â Ãâó ¿¡¼­ ¾òÀº Request-URI¸¦ Àý´ë·Î ¹ß¼ÛÇؼ­´Â ¾È µÈ´Ù. Referer = "Referer" ":" ( absoluteURI | relativeURI ) ¿¹: Referer: http://www.w3.org/hypertext/DataSources/Overview.html ÇÊµå °ªÀÌ ºÎºÐÀû URIÀÌ¸é °ªÀ» Request-URI¿¡ »ó´ëÀûÀ¸·Î Çؼ®ÇØ¾ß ÇÑ´Ù. URI´Â Àý´ë·Î ÆÄ ÆíÀ» Æ÷ÇÔÇؼ­´Â ¾È µÈ´Ù. ÁÖÀÇ: ¸µÅ©ÀÇ Ãâó°¡ °³ÀÎÀûÀÎ Á¤º¸À̰ųª °³ÀÎÀûÀÎ Á¤º¸ Ãâó¸¦ ´©¼³ÇÒ ¼ö Àֱ⠶§¹®¿¡ »ç¿ë ÀÚ´Â Referer Çʵ带 ¹ß¼ÛÇÒ °ÍÀÎÁö ¿©ºÎ¸¦ ¼±ÅÃÇÒ ¼ö ÀÖµµ·Ï ÇÒ °ÍÀ» °­·ÂÇÏ°Ô ÃßõÇÑ´Ù. ¿¹ ¸¦ µé¾î ºê¶ó¿ìÀú Ŭ¶óÀ̾ðÆ®´Â °ø°³/¹«¸í ºê¶ó¿ì¡(browsing)ÀÇ Åä±Û ½ºÀ§Ä¡(toggle switch)¸¦ °¡Áú ¼ö ÀÖÀ¸¸ç ÀÌ´Â °¢°¢ Referer ¹× From Á¤º¸ÀÇ ¹ß¼ÛÀ» È®¼ºÈ­/¹«·ÂÈ­ÇÑ´Ù. 14.38 Retry-After Retry-After response-header Çʵå´Â 503 (Service Unavailable) ÀÀ´ä°ú ÇÔ²² »ç¿ëÇÏ¿© ¿äûÇϴ Ŭ¶ó À̾ðÆ®¿¡°Ô ¾ó¸¶³ª ¿À·§µ¿¾È ¼­ºñ½º¸¦ »ç¿ëÇÒ ¼ö ÀÖ´ÂÁö Ç¥½ÃÇÒ ¼ö ÀÖ´Ù. ÀÌ ÇʵåÀÇ °ªÀº ÀÀ ´ä ½Ã°£ ÀÌÈÄÀÇ HTTP-date ¶Ç´Â ÃÊÀÇ Á¤¼ö(½ÊÁø¼ö)°¡ µÉ ¼ö ÀÖ´Ù. Retry-After = "Retry-After" ":" ( HTTP-date | delta-seconds ) »ç¿ëÀÇ µÎ ¿¹´Â, Retry-After: Fri, 31 Dec 1999 23:59:59 GMT Retry-After: 120 ÈÄÀÚÀÇ ¿¹¿¡¼­ Áö¿¬½Ã°£Àº 2 ºÐÀÌ´Ù. [Page 131] 14.39 Server Server response-header Çʵå´Â ¿ä±¸¸¦ ó¸®ÇÏ´Â ¿ø¼­¹ö°¡ »ç¿ëÇÏ´Â ¼ÒÇÁÆ®¿þ¾î¿¡ °üÇÑ Á¤º¸¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù. ÀÌ Çʵå´Â ¼­¹ö¿Í Áß¿äÇÑ ÇϺΠÁ¦Ç°À» ½Äº°ÇÏ´Â º¹¼öÀÇ Á¦Ç° ÅäÅ«(3.8 Àý) ¹× ÁÖ¼®À» Æ÷ÇÔÇÏ°í ÀÖ´Ù. Á¦Ç° ÅäÅ«Àº ¾ÖÇø®ÄÉÀ̼ÇÀ» ½Äº°ÇÏ´Â Áß¿äµµÀÇ ¼ø¼­¿¡ µû¶ó ¿­°ÅµÇ¾î ÀÖ´Ù. Server = "Server" ":" 1*( product | comment ) ¿¹: Server: CERN/3.0 libwww/2.17 ÀÀ´äÀÌ ÇÁ¶ô½Ã¸¦ ÅëÇÏ¿© Àü´ÞµÈ´Ù¸é ÇÁ¶ô½Ã ¾ÖÇø®ÄÉÀ̼ÇÀº Àý´ë Server response-header¸¦ º¯ °æÇؼ­´Â ¾È µÈ´Ù. ´ë½Å ÇÁ¶ô½Ã´Â Via Çʵå(14.44 Àý¿¡ ±â¼úµÈ ´ë·Î)¸¦ Æ÷ÇÔÇÏ¿©¾ß ÇÑ´Ù. ÁÖÀÇ: ¼­¹öÀÇ Æ¯Á¤ ¼ÒÇÁÆ®¿þ¾î ¹öÀüÀ» ´©¼³ÇÏ´Â °ÍÀº ¼­¹ö°¡ º¸¾È ÇãÁ¡(security holes)À» °¡Áø °ÍÀ¸·Î ¾Ë·ÁÁø ¼ÒÇÁÆ®¿þ¾î¿¡ ´ëÇÑ °ø°Ý¿¡ ´õ¿í Ãë¾àÇϵµ·Ï ¸¸µé ¼ö ÀÖ´Ù. ¼­¹ö ±¸ÇöÀÚ´Â ÀÌ Çʵ带 ¼³Á¤ÇÒ ¼ö ÀÖ´Â ¼±Åà »çÇ×À¸·Î ¸¸µé °ÍÀ» ±Ç°íÇÑ´Ù. 14.40 Transfer-Encoding Transfer-Encoding general-header Çʵå´Â ¼Û½ÅÃø°ú ¼ö½ÅÃø »çÀÌ¿¡ ¸Þ½ÃÁö¸¦ ¾ÈÀüÇÏ°Ô Àü¼ÛÇϱâ À§ÇØ ¾î¶²(Àû¿ëµÇ¾ú´Ù¸é) À¯ÇüÀÇ º¯ÇüÀÌ ¸Þ½ÃÁö¿¡ Àû¿ëµÇ¾ú´ÂÁö Ç¥½ÃÇÑ´Ù. ÀÌ°ÍÀº Àü¼Û ÄÚµù (transfer coding)ÀÌ ¸Þ½ÃÁöÀÇ Æ¯¼ºÀÌÁö ¿£ÅÍƼÀÇ Æ¯¼ºÀÌ ¾Æ´Ï¶ó´Â Á¡¿¡¼­ Content-Encoding°ú ´Ù ¸£´Ù. Transfer-Encoding = "Transfer-Encoding" ":" 1#transfer-coding Transfer codingsÀº 3.6 Àý¿¡ ±ÔÁ¤µÇ¾î ÀÖÀ¸¸é ±× ¿¹´Â, Transfer-Encoding: chunked ¸¹Àº ÀÌÀü HTTP/1.0 ¾ÖÇø®ÄÉÀ̼ÇÀº Transfer- Encoding Çì´õ¸¦ ÀÌÇØÇÏÁö ¸øÇÑ´Ù. 14.41 Upgrade Upgrade general-header´Â Ŭ¶óÀ̾ðÆ®°¡ Ãß°¡ÀûÀ¸·Î ¾î¶² Åë½Å ±Ô¾àÀ» Áö¿øÇÏ¸ç ±Ô¾àÀ» ÀüȯÇÏ ´Â °ÍÀÌ ÀûÀýÇÒ ¶§ ¾î¶² Åë½Å ±Ô¾àÀ» »ç¿ëÇÏ°íÀÚ ÇÏ´ÂÁö ¸í½ÃÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. [Page 132] ¼­¹ö´Â ¹Ýµå½Ã Upgrade Çì´õ Çʵ带 101 (Switching Protocols) ÀÀ´ä¿¡ »ç¿ëÇÏ¿© ¾î¶² ±Ô¾àÀÌ Àü ȯµÇ°í ÀÖ´ÂÁö Ç¥½ÃÇØ¾ß ÇÑ´Ù. Upgrade = "Upgrade" ":" 1#product For example, Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11 Upgrade Çì´õ Çʵå´Â HTTP/1.1¿¡¼­ ´Ù¸¥ ȣȯµÇÁö ¾Ê´Â ±Ô¾àÀ¸·Î ÀÌÀüÇÏ´Â °£´ÜÇÑ ¸ÞÄ¿´ÏÁò À» Á¦°øÇÒ ¸ñÀûÀ¸·Î »ç¿ëµÈ´Ù. Ŭ¶óÀ̾ðÆ®°¡ ºñ·Ï ÇöÀç ÀÇ ¿ä±¸¸¦ HTTP/1.1À» ÀÌ¿ëÇÏ¿© ÀÛ¼º ÇÏ¿´´Ù ÇÏ´õ¶óµµ ³ôÀº ÁÖ¿ä º¯°æ ¹öÀü ¹øÈ£¸¦ °¡Áø HTTPÀÇ ÀÌÈÄ ¹öÀü°ú °°Àº ´Ù¸¥ ±Ô¾àÀ» »ç¿ëÇÏ°í ½Í´Ù´Â °ÍÀ» ±¤°íÇÒ ¼ö ÀÖµµ·Ï ÇÏ¿© À̸¦ ¼ºÃëÇÑ´Ù. ÀÌ°ÍÀº Ŭ¶óÀ̾ðÆ®°¡ »ç¿ëÇÒ ¼ö ÀÖ´Ù¸é "Á»´õ ³ºÀº" ±Ô¾àÀ» »ç¿ëÇÏ°í ½Í¾îÇÑ´Ù´Â °ÍÀ» Ç¥½ÃÇϸ鼭µµ Ŭ¶óÀ̾ðÆ®°¡ Á»´õ º¸Æí ÀûÀ¸·Î Áö¿øµÇ´Â ±Ô¾à¿¡¼­ ¿ä±¸¸¦ ½ÃÀÛÇÒ ¼ö ÀÖµµ·Ï ÇÏ¿© ȣȯµÇÁö ¾Ê´Â ±Ô¾à°£ÀÇ ¾î·Á¿î ÀÌ ÀüÀ» ¿ëÀÌÇÏ°Ô ÇÑ´Ù. ("Á»´õ ³ºÀº" ±Ô¾àÀº °¡´ÉÇÏ¸é ¿ä±¸ÇÏ°í ÀÖ´Â method ¹×/¶Ç´Â ÀÚ¿øÀÇ ±âº» ÀûÀÎ ¼º°Ý¿¡ µû¶ó ¼­¹ö°¡ °áÁ¤ÇÑ´Ù.) Upgrade Çì´õ Çʵå´Â ±âÁ¸ÀÇ Àü¼Û-°èÃþ ¿¬°á À§¿¡¼­ ¾ÖÇø®ÄÉÀ̼Ç-°èÃþ ±Ô¾àÀ» ÀüȯÇÏ´Â °Í¿¡ ¸¸ Àû¿ëµÈ´Ù. Upgrade´Â ±Ô¾àÀÇ ÀüȯÀ» °íÁýÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ¾ø´Ù. ÀüȯÀÇ ¼ö¿ë ¹× »ç¿ëÀº ¼­¹öÀÇ ¼±Åà »çÇ×ÀÌ´Ù. ±Ô¾à º¯°æ ÈÄÀÇ Ã¹ ÀÛ¾÷Àº Upgrade Çì´õ Çʵ带 Æ÷ÇÔÇÏ°í Àִ ù HTTP ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ̾î¾ß ÇÏÁö¸¸ ±Ô¾à º¯°æ ÀÌÈÄÀÇ ¾ÖÇø®ÄÉÀ̼Ç-°èÃþ Åë½ÅÀÇ ´É·Â ¹× ±âº»ÀûÀÎ ¼º°ÝÀº »õ·Ó°Ô ¼±ÅÃµÈ ±Ô¾à¿¡ ÀüÀûÀ¸·Î ´Þ·Á ÀÖ´Ù. Upgrade Çì´õ Çʵå´Â ¿ÀÁ÷ °¡Àå °¡±î¿î ¿¬°á¿¡¸¸ Àû¿ëµÈ´Ù. µû¶ó¼­ Upgrade Çٽɾî´Â Upgrade Çì´õ Çʵ尡 HTTP/1.1 ¸Þ½ÃÁö¿¡ Á¸ÀçÇÒ ¶§ Connection Çì´õ Çʵå(14.10 Àý) ³»¿¡¼­¸¸ Á¦°øÇÏ¿© ¾ß ÇÑ´Ù. Upgrade Çì´õ Çʵå´Â ´Ù¸¥ ¿¬°á·ÎÀÇ ±Ô¾à ÀüȯÀ» Ç¥½ÃÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ¾ø´Ù. ÀÌ·¯ÇÑ ¸ñÀû¿¡ ´Â 301, 302, 303 ¶Ç´Â 305 ¹æÇâ Àç¼³Á¤ ÀÀ´äÀÌ ´õ ÀûÀýÇÏ´Ù. ÀÌ ±Ô°ÝÀº 3.1ÀýÀÇ HTTP ¹öÀü ±ÔÄ¢ ¹× ÀÌ ±Ô°ÝÀÇ ÇâÈÄ °³Á¤¿¡¼­ ±ÔÁ¤ÇÑ °Í°ú °°ÀÌ ÇÏÀÌÆÛÅØ ½ºÆ® Àü¼Û ±Ô¾à Áý´Ü¿¡¼­ »ç¿ëÇÒ ¸ñÀûÀ¸·Î ¿ÀÁ÷ "HTTP"¶ó´Â À̸§ÀÇ ±Ô¾à¸¸À» ±ÔÁ¤ÇÑ´Ù. ±Ô¾à À̸§À» À§ÇØ ¾î¶°ÇÑ ÅäÅ«À» »ç¿ëÇصµ µÇÁö¸¸ Ŭ¶óÀ̾ðÆ®¿Í ¼­¹ö ¸ðµÎ°¡ ÇØ´ç À̸§À» µ¿ÀÏÇÑ ±Ô¾àÀ¸·Î ¿¬°ü½Ãų ¶§¹®¿¡ À¯¿ëÇÒ °ÍÀÌ´Ù. [Page 133] 14.42 User-Agent User-Agent request-header Çʵå´Â ¿ä±¸¸¦ ¸¸µé¾î ³½ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®¿¡ °üÇÑ Á¤º¸¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù. ÀÌ°ÍÀº Åë°è ¸ñÀû, ±Ô¾à À§¹ÝÀÇ ÃßÀû, ƯÁ¤ »ç¿ëÀÚ ¿¡ÀÌÀüÆ® ÇѰ踦 ÇÇÇϱâ À§ÇØ ÀÀ´äÀ» °íÄ¥ ¸ñÀûÀ¸·Î »ç¿ëÀÚ ¿¡ÀÌÀüÆ®¸¦ ÀÚµ¿ ÀÎÁöÇϱâ À§ÇÔÀÌ´Ù. »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â ¿ä±¸¿¡ ÀÌ ÇÊ µå¸¦ Æ÷ÇÔÇØ¾ß ÇÑ´Ù. ÀÌ Çʵå´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ®ÀÇ Áß´ëÇÑ ºÎºÐÀ» Çü¼ºÇÏ´Â ¿¡ÀÌÀüÆ®, ¸ðµç ÇÏ ºÎ Á¦Ç°À» ½Äº°ÇÒ ¼ö ÀÖ´Â º¹¼öÀÇ Á¦Ç° ÅäÅ«(3.8Àý) ¹× ÁÖ¼®À» Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. °ü·Ê»ó Á¦Ç° ÅäÅ«Àº ¾ÖÇø®ÄÉÀ̼ÇÀ» ½Äº°ÇÏ´Â Áß¿äµµÀÇ ¼ø¼­¿¡ µû¶ó ¿­°ÅµÇ¾î ÀÖ´Ù. User-Agent = "User-Agent" ":" 1*( product | comment ) ¿¹: User-Agent: CERN-LineMode/2.15 libwww/2.17b3 14.43 Vary Vary response-header Çʵå´Â ¼­¹ö°¡ ÀÀ´ä ¿£ÅÍƼ¸¦ ¼­¹ö°¡ ÁÖµµÇÏ´Â Çù»ó( 12Àå)À» ÀÌ¿ëÇÑ ÀÌ¿ë °¡´ÉÇÑ ÀÀ´äÀÇ Ç¥½Ã ¹æ¹ý¿¡¼­ ¼±ÅÃÇÏ¿´À½À» Ç¥½ÃÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. Vary Çì´õ¿¡ ¿­°ÅµÈ field- namesÀº request-headersÀÇ field-namesÀÌ´Ù. Vary ÇÊµå °ªÀº ÁÖ¾îÁø Çì´õ ÇÊµå ¼¼Æ®°¡ Ç¥½Ã ¹æ ½ÄÀÌ º¯È­ÇÒ ¼ö ÀÖ´Â Â÷¿øÀ» ³Ñ¾î¼±´Ù´Â °ÍÀ» ³ªÅ¸³»°Å³ª, º¯ÇüÀÇ Â÷¿øÀÌ ¸í½ÃµÇÁö ¾Ê¾Æ("*") ÇâÈÄ ¿ä±¸ÀÇ ¾î¶°ÇÑ Ãø¸é¿¡¼­µµ º¯ÇüµÉ ¼ö ÀÖ´Ù´Â °ÍÀ» ³ªÅ¸³½´Ù. Vary = "Vary" ":" ( "*" | 1#field-name ) HTTP/1.1 ¼­¹ö´Â ¹Ýµå½Ã ¼­¹ö°¡ ÁÖµµÇÏ´Â Çù»ó¿¡ Á¾¼ÓµÇ´Â ¸ðµç ij½ÃÇÒ ¼ö ÀÖ´Â ÀÀ´ä¿¡ ÀûÀý ÇÑ Vary Çì´õ Çʵ带 Æ÷ÇÔÇØ¾ß ÇÑ´Ù. ÀÌ·¸°Ô Çϸé ij½Ã°¡ ÇØ´ç ÀÚ¿ø¿¡ ´ëÇÑ ÇâÈÄ ¿ä±¸¸¦ ÀûÀý ÇÏ°Ô Çؼ®ÇÒ ¼ö ÀÖµµ·Ï ÇÏ¸ç »ç¿ëÀÚ ¿¡ÀÌÀüÆ®¿¡°Ô ÇØ´ç ÀÚ¿ø¿¡ ´ëÇÑ Çù»óÀÌ Á¸ÀçÇÔÀ» ¾Ë¸± ¼ö ÀÖ´Ù. ¼­¹ö´Â ¼­¹ö°¡ ÁÖµµÇÏ´Â Çù»ó¿¡ Á¾¼ÓµÇ´Â ij½ÃÇÒ ¼ö ¾ø´Â ÀÀ´ä¿¡ ÀûÀýÇÑ Vary Çì´õ ÇÊ µå¸¦ Æ÷ÇÔÇØ¾ß ÇÑ´Ù. ÀÌ°ÍÀÌ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®¿¡°Ô ÀÀ´äÀÌ º¯ÇüµÉ ¼ö ÀÖ´Â Â÷¿ø¿¡ °üÇÑ À¯¿ëÇÑ Á¤º¸¸¦ Á¦°øÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù. Vary Çì´õ ÇÊµå °ª¿¡ ÀÇÇÏ¿© ¸í¸íµÇ´Â Çì´õ ÇʵåÀÇ ¼¼Æ®´Â "selecting" request-headers·Î ¾Ë·ÁÁ® ÀÖ´Ù. ij½Ã°¡ Request-URI°¡ Vary Çì´õ¸¦ Æ÷ÇÔÇÑ Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ Ä³½Ã ¿£Æ®¸®¸¦ ¸í½ÃÇÏ´Â °è¼Ó ÀûÀÎ ¿ä±¸¸¦ ¼ö½ÅÇßÀ» ¶§ ij½ÃµÈ Vary Çì´õ¿¡ ¸í¸íµÈ ¸ðµç Çì´õ°¡ »õ·Î¿î ¿ä±¸¿¡ Àְųª ÀÌÀü ¿ä±¸ÀÇ ¸ðµç ÀúÀåµÈ selecting request-headers°¡ »õ·Î¿î ¿ä±¸ÀÇ ÇØ´ç Çì´õ¿Í ÀÏÄ¡ÇÏÁö ¾Ê´Â ÇÑ Ä³½Ã´Â Àý´ë ÀÌ·¯ÇÑ Ä³½Ã ¿£Æ®¸®¸¦ ÀÌ¿ëÇÏ¿© »õ·Î¿î ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ» ±¸¼ºÇؼ­´Â ¾È µÈ´Ù. [Page 134] µÎ ¿ä±¸´Â ¸Þ½ÃÁö Çì´õ¿¡ °üÇÑ 4.2 ÀýÀÇ ±ÔÄ¢¿¡ µû¶ó µ¿ÀÏÇÑ Çʵå À̸§ÀÇ º¹¼ö message-header Çʵ带 °áÇÕÇϰųª ¶ÇÇÑ/¶Ç´Â ¼±Çü °ø¹é¹®ÀÚ(LWS)¸¦ »óÀÀÇÏ´Â BNF°¡ Çã¿ëÇÏ´Â ÁöÁ¡¿¡ Ãß°¡ Çϰųª »èÁ¦ÇÏ¿© ù ¿ä±¸ÀÇ selecting request-headers°¡ µÎ ¹ø° ¿ä±¸ÀÇ selecting request-headers ·Î º¯È¯µÉ ¼ö ÀÖÀ» ¶§¸¸ ÀÏÄ¡ÇÏ´Â °ÍÀ¸·Î ±ÔÁ¤µÈ´Ù. "*" ÀÇ Vary ÇÊµå °ªÀº ¾Æ¸¶µµ request-header ÇÊµå ³»¿ëÀÌ ¾Æ´Ñ(¿¹¸¦ µé¾î Ŭ¶óÀ̾ðÆ®ÀÇ ³×Æ®¿ö Å© ÁÖ¼Ò) ¸í½ÃµÇÁö ¾ÊÀº ÆĶó¹ÌÅÍ°¡ ÀÀ´ä Ç¥½Ã ¹æ¹ýÀÇ ¼±Åÿ¡ ¾î¶² ¿ªÇÒÀ» ¼öÇàÇÏ°í ÀÖÀ½À» Ç¥½ÃÇÑ´Ù. ÇØ´ç ÀÚ¿ø¿¡ ´ëÇØ °è¼ÓµÇ´Â ¿ä±¸´Â ¿ø¼­¹ö¿¡ ÀÇÇÏ¿© ÀûÀýÈ÷ Çؼ®µÉ ¼ö Àֱ⠶§¹®¿¡ ÀÚ¿øÀÇ Ä³½ÃµÈ ½Å¼±ÇÑ ÀÀ´äÀ» °¡Áö°í ÀÖÀ» ¶§µµ ij½Ã´Â ¹Ýµå½Ã ¿ä±¸¸¦(Á¶°ÇÀûÀÏ ¼ö ÀÖ´Ù.) Àü ¼ÛÇØ¾ß ÇÑ´Ù. ij½Ã°¡ »ç¿ëÇÏ´Â Vary Çì´õ¿¡ ´ëÇؼ­´Â 13.6 ÀýÀ» ÂüÁ¶ÇÑ´Ù. Field-names ¸ñ·ÏÀ¸·Î ±¸¼ºµÈ Vary ÇÊµå °ªÀº ÀÀ´äÀ» À§ÇØ ¼±ÅÃµÈ Ç¥½Ã ¹æ½ÄÀÌ ÃÖÀûÀÇ Ç¥½Ã ¹æ ¹ýÀ» ¼±ÅÃÇÒ ¶§ ¿­°ÅµÈ request-header ÇÊµå °ª¸¸À» °í·ÁÇÏ´Â ¼±Åà ¾Ë°í¸®Áò¿¡ ±âÃÊÇÏ°í ÀÖ´Ù´Â °ÍÀ» Ç¥½ÃÇÑ´Ù. ij½Ã´Â ¿­°ÅµÈ Çʵå À̸§À» À§ÇØ µ¿ÀÏÇÑ °ªÀ¸·Î ÀÀ´äÀÌ ½Å¼±ÇÑ ½Ã°£ µ¿¾È¸¸ ÇâÈÄÀÇ ¿ä±¸¿¡¼­ µ¿ÀÏÇÑ ¼±ÅÃÀ» ÇÏ°Ô µÇ¸®¶ó °¡Á¤Çصµ µÈ´Ù. ÁÖ¾îÁø field-namesÀº ÀÌ ±Ô°Ý¿¡¼­ ±ÔÁ¤ÇÑ Ç¥ÁØ request-header ¼¼Æ®¿¡ ÇÑÁ¤µÈ °ÍÀº ¾Æ´Ï´Ù. ÇÊ µå À̸§Àº ´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÑ´Ù. 14.44 Via °ÔÀÌÆ®¿þÀ̳ª ÇÁ¶ô½Ã´Â ¹Ýµå½Ã Via general-header Çʵ带 »ç¿ëÇÏ¿© ¿ä±¸¸¦ ¸¸µé¾úÀ» ¶§´Â »ç¿ë ÀÚ ¿¡ÀÌÀüÆ®¿Í ¼­¹ö »çÀÌÀÇ, ÀÀ´äÀ» ¼ö½ÅÇßÀ» ¶§´Â ¿ø¼­¹ö¿Í Ŭ¶óÀ̾ðÆ® »çÀÌÀÇ °¡Àå °¡±î¿î ±Ô¾à ¹× ¼ö½ÅÃøÀ» Ç¥½ÃÇØ¾ß ÇÑ´Ù. ÀÌ°ÍÀº RFC 822ÀÇ "Received" Çʵå¿Í À¯»çÇÏ´Ù. ¶ÇÇÑ ÀÌ°ÍÀ» ¸Þ½ÃÁö Àü´Þ(message forwards)À» ÃßÀûÇÏ°í, ¿ä±¸ ·çÇÁ(request loops)¸¦ ÇÇÇϸç request/response chainÀ» µû¶ó ¸ðµç ¼Û½ÅÃøÀÇ ±Ô¾à ´É·ÂÀ» ½Äº°ÇÏ´Â µ¥ »ç¿ëÇϵµ·Ï °èȹµÇ¾ú´Ù. [Page 135] Via = "Via" ":" 1#( received-protocol received-by [ comment ] ) received-protocol = [ protocol-name "/" ] protocol-version protocol-name = token protocol-version = token received-by = ( host [ ":" port ] ) | pseudonym pseudonym = token Received-protocolÀº request/response chainÀÇ °¢ ºÎºÐ(segment)À» µû¶ó ¼­¹ö°¡ Ŭ¶óÀ̾ðÆ®°¡ ¼ö½Å ÇÏ´Â ¸Þ½ÃÁöÀÇ ±Ô¾à ¹öÀüÀ» Ç¥½ÃÇÑ´Ù. Received-protocolÀº ¾÷½ºÆ®¸²(upstream) ¾ÖÇø®ÄÉÀ̼ǿ¡ °üÇÑ Á¤º¸¸¦ ¸ðµç ¼ö½ÅÃøÀÌ º¼ ¼ö ÀÖµµ·Ï Çϱâ À§ÇØ ¸Þ½ÃÁö°¡ Àü´ÞµÇ¾úÀ» ¶§ Via ÇÊµå °ª¿¡ Ãß°¡µÈ´Ù. Protocol-name Àº ±×°ÍÀÌ "HTTP"ÀÏ ¶§¸¸ ¼±Åà »çÇ×ÀÌ´Ù. Received-by Çʵå´Â º¸Åë °è¼ÓÀûÀ¸·Î ¸Þ½ÃÁö¸¦ Àü´ÞÇÏ´Â ¼ö½ÅÃø ¼­¹ö³ª Ŭ¶óÀ̾ðÆ®ÀÇ È£½ºÆ®³ª ¼±ÅÃÀûÀÎ Æ÷Æ® ¹øÈ£ÀÌ´Ù. ±×·¯³ª Áø Â¥ È£½ºÆ®°¡ ¹Î°¨ÇÑ Á¤º¸¸¦ °¡Áø °ÍÀ¸·Î °£ÁÖµÈ´Ù¸é °¡¸í(pseudonym)À¸·Î ´ëüÇÒ ¼ö ÀÖ´Ù. Æ÷ Æ®°¡ ÁÖ¾îÁöÁö ¾Ê¾ÒÀ¸¸é received-protocolÀÇ ±âº» Æ÷Æ®ÀÎ °ÍÀ¸·Î °¡Á¤ÇÒ ¼ö ÀÖ´Ù. º¹¼öÀÇ Via ÇÊµå °ªÀº ¸Þ½ÃÁö¸¦ Àü´ÞÇÑ °¢°¢ÀÇ ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀ̸¦ Ç¥½ÃÇÑ´Ù. °¢°¢ÀÇ ¼ö½Å ÃøÀº ¸¶Áö¸· °á°ú°¡ Àü¼ÛÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¼ø¼­¿¡ µû¶ó ¼ø¼­¸¦ Á¤ÇÒ ¼ö ÀÖµµ·Ï ÀÚ½ÅÀÇ Á¤º¸ ¸¦ ¹Ýµå½Ã Ãß°¡ÇØ¾ß ÇÑ´Ù. Via Çì´õ Çʵ忡 ÁÖ¼®À» »ç¿ëÇÏ¿© User-Agent³ª Server Çì´õ Çʵå¿Í À¯»çÇÏ°Ô ¼ö½ÅÃø ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌÀÇ ¼ÒÇÁÆ®¿þ¾î¸¦ ½Äº°ÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª Via ÇʵåÀÇ ¸ðµç ÁÖ¼®Àº ¼±ÅÃÀûÀÌ¸ç ¸Þ½Ã Áö¸¦ Àü´ÞÇϱâ ÀÌÀü¿¡ ¼ö½ÅÃøÀÌ »èÁ¦ÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î HTTP/1.0 »ç¿ëÀÚ ¿¡ÀÌÀüÆ®¿¡¼­ ¿ä±¸ ¸Þ½ÃÁö¸¦ HTTP/1.1À» ÀÌ¿ëÇÏ¿© "fred"¶ó´Â ÄÚ µå À̸§ÀÌ ºÙÀº ³»ºÎ ÇÁ¶ô½Ã·Î Àü´ÞÇÒ ¼ö ÀÖ´Ù. ³»ºÎ ÇÁ¶ô½Ã´Â ¿ä±¸¸¦ nowhere.com¿¡ ÀÖ´Â °ø °ø ÇÁ¶ô½Ã·Î Àü´ÞÇϸç nowhere.comÀº ¿ä±¸¸¦ www.ics.uci.edu¿¡ ÀÖ´Â ¿ø¼­¹ö¿¡ Àü´ÞÇÏ¿© ¿ä±¸ 󸮸¦ ¿Ï·áÇÑ´Ù¸é www.ics.uci.edu°¡ ¼ö½ÅÇÑ ¿ä±¸´Â ´ÙÀ½ÀÇ Via Çì´õ Çʵ带 °¡Áö°Ô µÉ °ÍÀÌ ´Ù. Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1) ³×Æ®¿öÅ© ¹æÈ­º®(firewall)ÀÇ ÀÔ±¸·Î »ç¿ëµÇ´Â ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌ´Â ±âº»ÀûÀ¸·Î ¹æÈ­º® ¿µ¿ª ³»ÀÇ È£½ºÆ®ÀÇ À̸§À̳ª Æ÷Æ®¸¦ Àü´ÞÇؼ­´Â ¾È µÈ´Ù. ÀÌ Á¤º¸´Â ¸í¹éÇÏ°Ô È°¼ºÈ­µÇ¾úÀ» ¶§¸¸ ÀüÆÄÇÒ ¼ö ÀÖ´Ù. È°¼ºÈ­µÇÁö ¾Ê¾ÒÀ¸¸é ¹æÈ­º® µÚÀÇ ¸ðµç È£½ºÆ®ÀÇ received-by host´Â ÇØ´ç È£ ½ºÆ®ÀÇ ÀûÀýÇÑ °¡¸í(pseudonym)À¸·Î ´ëüµÇ¾î¾ß ÇÑ´Ù. [Page 136] ³»ºÎ Á¶Á÷À» ¼û°Ü¾ß ÇÑ´Ù´Â °­ÇÑ »ç»ýÈ° º¸È£ ÇÊ¿ä Á¶°ÇÀ» °¡Áø Á¶Á÷À» À§ÇØ ÇÁ¶ô½Ã´Â µ¿ÀÏÇÑ received-protocol °ªÀ» °¡Áø Via Çì´õ ÇÊµå ¿£Æ®¸®ÀÇ ¼ø¼­°¡ Á¤ÇØÁø ¼øÂ÷¸¦ ´ÜÀÏ ¿£Æ®¸®·Î °áÇÕ ÇÒ ¼öµµ ÀÖ´Ù. ¿¹¸¦ µé¸é, Via: 1.0 ricky, 1.1 ethel, 1.1 fred, 1.0 lucy À» ´ÙÀ½°ú °°ÀÌ Ãà¼ÒÇÒ ¼ö ÀÖ´Ù. Via: 1.0 ricky, 1.1 mertz, 1.0 lucy ¾ÖÇø®ÄÉÀ̼ÇÀº º¹¼öÀÇ ¿£Æ®¸®¸¦ ±×°ÍµéÀÌ µ¿ÀÏÇÑ Á¶Á÷ ÅëÁ¦ ¹Ø¿¡ Àְųª È£½ºÆ®°¡ °¡¸íÀ¸·Î ´ëüµÇÁö ¾Ê´Â ÇÑ °áÇÕÇؼ­´Â ¾È µÈ´Ù. ¾ÖÇø®ÄÉÀ̼ÇÀº »óÀÌÇÑ received-protocol °ªÀ» °¡Áö°í ÀÖ´Â ¿£Æ®¸®¸¦ Àý´ë·Î °áÇÕÇؼ­´Â ¾È µÈ´Ù. 14.45 Warning Warning response-header Çʵå´Â ÀÀ´ä »óÅ Äڵ尡 ¹Ý¿µÇÏÁö ¾ÊÀº ÀÀ´ä »óÅ¿¡ °üÇÑ Á¤º¸¸¦ Àü ¼ÛÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. ÀÌ Á¤º¸´Â ºñ·Ï ¹èŸÀûÀÌÁø ¾ÊÁö¸¸ ´ë°³ ij½Ã ÀÛ¾÷¿¡ ¹ß»ýÇÒ ¼ö ÀÖ´Â ÀÇ ¹Ì Åõ¸í¼º(semantic transparency)ÀÇ °á¿©¿¡ ´ëÇÑ °æ°í¸¦ ÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. Warning Çì´õ´Â ´ÙÀ½À» ÀÌ¿ëÇÏ¿© ÀÀ´ä°ú ÇÔ²² ¹ß¼ÛµÈ´Ù. Warning = "Warning" ":" 1#warning-value warning-value = warn-code SP warn-agent SP warn-text warn-code = 2DIGIT warn-agent = ( host [ ":" port ] ) | pseudonym ; Warning Çì´õ¸¦ Ãß°¡ÇÏ´Â ¼­¹öÀÇ À̸§ ¶Ç´Â º°¸í ; µð¹ö±ë¿¡ »ç¿ëÇÑ´Ù. warn-text = quoted-string ÇϳªÀÇ ÀÀ´äÀº Çϳª ÀÌ»óÀÇ Warning Çì´õ¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. Warn-text´Â ÀÀ´äÀ» ¼ö½ÅÇÏ´Â Àΰ£ »ç¿ëÀÚ°¡ °¡Àå Àß ÀÌÇØÇÒ ¼ö ÀÖ´Â ÀÚ¿¬ÀûÀÎ ¾ð¾î ¹× ¹®ÀÚ ÁýÇÕÀ¸·Î Ç¥½ÃÇØ¾ß ÇÑ´Ù. ÀÌ¿¡ ´ëÇÑ °áÁ¤Àº ij½Ã³ª »ç¿ëÀÚÀÇ À§Ä¡, ¿ä±¸ÀÇ Accept-Language ÇÊ µå, ÀÀ´äÀÇ Content-Language ÇÊµå µî »ç¿ë °¡´ÉÇÑ ¾î¶² Á¤º¸¿¡ ±âÃÊÇصµ µÈ´Ù. ±âº»ÀûÀÎ ¾ð¾î ´Â ¿µ¾îÀÌ¸ç ±âº» ¹®ÀÚ ÁýÇÕÀº ISO-8859-1ÀÌ´Ù. ISO-8859-1 ÀÌ¿ÜÀÇ ¹®ÀÚ ÁýÇÕÀÌ »ç¿ëµÇ¾úÀ¸¸é RFC 1522 [14]¿¡ ±â¼úÇÑ method¸¦ »ç¿ëÇÏ¿© warn-text ³»¿¡ ÀÎÄÚµùÇØ¾ß ÇÑ´Ù. [Page 137] ¾î¶°ÇÑ ¼­¹ö³ª ij½Ãµµ ÀÀ´ä¿¡ Warning Çì´õ¸¦ Ãß°¡ÇÒ ¼ö ÀÖ´Ù. »õ·Î¿î Warning Çì´õ´Â ¸ðµç ±âÁ¸ Warning Çì´õ ´ÙÀ½¿¡ Ãß°¡ÇØ¾ß ÇÑ´Ù. ij½Ã´Â ÀÀ´ä°ú ÇÔ²² ¼ö½ÅÇÑ ¾î¶°ÇÑ Warning Çì´õµµ »èÁ¦Çؼ­´Â ¾È µÈ´Ù. ±×·¯³ª ij½Ã°¡ ¼º°øÀûÀ¸·Î ij½Ã ¿£Æ®¸®¸¦ °ËÁõÇßÀ¸¸é ƯÁ¤ Warning ÄÚµå °¡ ¸í½ÃÇÑ °æ¿ì¸¦ Á¦¿ÜÇÏ°í´Â ÇØ´ç ¿£Æ®¸®¿¡ ÀÌÀü¿¡ ÷°¡µÈ ¸ðµç Warning Çì´õ´Â »èÁ¦ÇØ¾ß ÇÑ ´Ù. ±×·± ´ÙÀ½ ij½Ã´Â ÀÀ´äÀ» °ËÁõÇÏ´Â µ¿¾È ¼ö½ÅÇÑ ¾î¶°ÇÑ Warning Çì´õ¶óµµ Ãß°¡ÇÒ ¼ö ÀÖ´Ù. ´Þ¸® Ç¥ÇöÇϸé Warning Çì´õ´Â °¡Àå ÃÖ±Ù¿¡ °ü·ÃµÈ ÀÀ´ä¿¡ Ãß°¡µÈ Çì´õÀÌ´Ù. ÀÀ´ä¿¡ º¹¼öÀÇ Warning Çì´õ°¡ ÷ºÎµÇ¾úÀ¸¸ç »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â ÀÀ´ä¿¡¼­ ³ªÅ¸³­ ¼ø¼­ ´ë·Î °¡´ÉÇÑ ÇÑ ¸¹Àº Warning Çì´õ¸¦ Ç¥½ÃÇØ¾ß ÇÑ´Ù. ¸ðµç °æ°í¹®À» Ç¥½ÃÇÒ ¼ö ¾øÀ» ¶§ »ç¿ëÀÚ ¿¡ ÀÌÀüÆ®´Â ´ÙÀ½ÀÇ ¹ß°ß¹ý(heuristics)¿¡ µû¶ó¾ß ÇÑ´Ù. ? ÀÀ´äÀÇ Ãʱ⿡ ³ªÅ¸³­ warningsÀÌ ³ªÁß¿¡ ³ªÅ¸³­ °Íº¸´Ù ¿ì¼±±ÇÀ» °®´Â´Ù. ? »ç¿ëÀÚ°¡ ¼±È£ÇÏ´Â ¹®ÀÚ ÁýÇÕ¿¡¼­ ¹ß»ýÇÑ warningÀÌ ´Ù¸¥ ¹®ÀÚ ÁýÇÕÀÇ warningsº¸´Ù ¿ì ¼±±ÇÀ» °®´Â´Ù. ±×·¯³ª warn-codes ¹× warn-agents´Â µ¿ÀÏÇÏ´Ù. º¹¼öÀÇ Warning Çì´õ¸¦ »ý¼ºÇÏ´Â ½Ã½ºÅÛÀº ÀÌ·¯ÇÑ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®ÀÇ ÇàŸ¦ ¿°µÎ¿¡ µÎ°í ¼ø ¼­¸¦ Á¤ÇØ¾ß ÇÑ´Ù. ´ÙÀ½Àº ÇöÀç Á¤ÀÇµÈ warn-codesÀÌ¸ç ¿µ¾î·Î Ãßõ warn-text ¹× Àǹ̸¦ ±â¼úÇÏ°í ÀÖ´Ù. 10 Response is stale ¸®ÅÏ µÈ ÀÀ´äÀÌ ³°À» ¶§´Â ¾ðÁ¦³ª ¹Ýµå½Ã Æ÷ÇÔÇØ¾ß ÇÑ´Ù. ij½Ã´Â ÀÌ °æ°í¸¦ ¾î¶°ÇÑ ÀÀ´ä¿¡ µµ Ãß°¡ÇÒ ¼ö ÀÖÁö¸¸ ÀÀ´äÀÌ »õ·Î¿î °ÍÀ¸·Î ¾Ë·ÁÁö±â Àü¿¡´Â Àý´ë »èÁ¦Çؼ­´Â ¾È µÈ´Ù. 11 Revalidation failed ¼­¹ö¿¡ µµ´ÞÇÏÁö ¸øÇϱ⠶§¹®¿¡ ÀÀ´äÀ» Àç°ËÁõÇÏ·Á´Â ½Ãµµ°¡ ½ÇÆÐÇÏ¿© ij½Ã°¡ ³°Àº ÀÀ´äÀ» ¸®ÅÏÇÏ°Ô µÇ¸é ¹Ýµå½Ã Æ÷ÇÔÇØ¾ß ÇÑ´Ù. ij½Ã´Â ÀÌ °æ°í¸¦ ¾î¶°ÇÑ ÀÀ´ä¿¡µµ Ãß°¡ÇÒ ¼ö ÀÖÁö¸¸ ÀÀ´äÀ» ¼º°øÀûÀ¸·Î Àç°ËÁõÇϱâ Àü¿¡´Â Àý´ë »èÁ¦Çؼ­´Â ¾È µÈ´Ù. 12 Disconnected operation ij½Ã°¡ ÀǵµÀûÀ¸·Î ÀÏÁ¤±â°£ µ¿¾È ³ª¸ÓÁö ³×Æ®¿öÅ©·ÎºÎÅÍ ´ÜÀýµÇ¾úÀ» ¶§´Â Æ÷ÇÔÇØ¾ß ÇÑ´Ù. 13 Heuristic expiration ij½Ã°¡ ¹ß°ß¹ý »ó ½Å¼±ÇÑ ±â°£À» 24 ½Ã°£ ÀÌ»óÀ¸·Î ¼±ÅÃÇϰųª ÀÀ´äÀÇ °æ°ú ½Ã°£ÀÌ 24½Ã°£ ÀÌ»óÀÏ ¶§´Â ¹Ýµå½Ã Æ÷ÇÔÇØ¾ß ÇÑ´Ù. [Page 138] 14 Transformation applied °¡Àå °¡±î¿î ij½Ã³ª ÇÁ¶ô½Ã°¡ ÀÌ Warning Äڵ尡 ÀÀ´ä¿¡ Æ÷ÇԵǾî ÀÖÁö ¾ÊÀº ÇÑ content- coding(Content-Encoding Çì´õ¿¡ ¸í½ÃµÈ °Íó·³) ¶Ç´Â ÀÀ´äÀÇ media-type (Content -Type Çì´õ¿¡ ¸í ½ÃµÈ °Íó·³)¿¡ º¯ÇüÀ» °¡ÇÏ´Â º¯°æ »çÇ×À» Àû¿ëÇßÀ» ¶§ ¹Ýµå½Ã Ãß°¡ÇØ¾ß ÇÑ´Ù. Àç°ËÁõ ÈÄ¿¡ µµ ÀÀ´ä¿¡¼­ »èÁ¦Çؼ­´Â ¾È µÈ´Ù. 99 Miscellaneous warning °æ°í ÅؽºÆ®´Â Àΰ£ »ç¿ëÀÚ¿¡°Ô Á¦°øÇϱâ À§ÇØ ¶Ç´Â ·Î±ëÇϱâ À§ÇØ ÀÚÀÇÀûÀÎ Á¤º¸¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. ÀÌ °æ°í¸¦ ¼ö½ÅÇÑ ½Ã½ºÅÛÀº Àý´ë·Î ¾î¶°ÇÑ ÀÚµ¿ ÀÛ¾÷µµ ¼öÇàÇؼ­´Â ¾È µÈ´Ù. 14.46 WWW-Authenticate WWW-Authenticate response-header Çʵ带 ¹Ýµå½Ã 401(Unauthorized) ÀÀ´ä ¸Þ½ÃÁö¿¡ Æ÷ÇÔÇØ¾ß ÇÑ ´Ù. ÇÊµå °ªÀº Request-URI¿¡ Àû¿ëÇÒ ¼ö ÀÖ´Â ÀÎÁõ ȹµæ scheme ¹× ÆĶó¹ÌÅ͸¦ ³ªÅ¸³»´Â ÃÖ¼Ò ÇÑ ÇϳªÀÇ ÀÎÁõ ½Ãµµ(challenge)·Î ±¸¼ºµÈ´Ù. WWW-Authenticate = "WWW-Authenticate" ":" 1#challenge 11 Àå¿¡ HTTP Á¢±Ù ÀÎÁõ ȹµæ ÀýÂ÷°¡ ±â¼úµÇ¾î ÀÖ´Ù. »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â WWW-Authenticate ÇÊµå °ªÀ» ºÐ¼®ÇÒ ¶§ Çϳª ÀÌ»óÀÇ WWW-Authenticate Çì´õ Çʵ尡 ÀÖÀ¸¸é ÀÎÁõ ½ÃµµÀÇ ³»¿ëÀÌ ÀÎÁõ ÆĶó¹ÌÅÍÀÇ ÄÞ¸¶·Î ºÐ¸®µÈ ¸ñ·ÏÀ» Æ÷ÇÔÇÏ°í Àֱ⠶§¹®¿¡ °¢º°ÇÑ ÁÖÀǸ¦ ÇØ¾ß ÇÑ´Ù. 15 º¸¾È¿¡ ´ëÇÑ °í·Á »çÇ× ÀÌ Àý¿¡¼­´Â ÀÌ ¹®¼­°¡ ±â¼úÇÑ ¹Ù¿Í °°ÀÌ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ßÀÚ, Á¤º¸ Á¦°øÀÚ ¹× »ç¿ëÀÚ¿¡°Ô HTTP/1.1ÀÇ º¸¾È Á¦ÇÑ »çÇ×À» ¾Ë¸®°íÀÚ ÇÑ´Ù. Åä·ÐÀÌ ±ÔÁ¤ÀûÀÎ ÇØ°á ¹æ¾ÈÀ» Æ÷ÇÔÇÏÁö´Â ¾ÊÁö ¸¸ º¸¾ÈÀÇ À§Ç輺À» °¨¼Ò½Ãų ¼ö ÀÖ´Â ¸î¸î ¾ÈÀ» Á¦½ÃÇÑ´Ù. 15.1 Ŭ¶óÀ̾ðÆ®ÀÇ ÀÎÁõ Basic authentication schemeÀº ¿î¹Ý¿ë±â(carrier)·Î »ç¿ëµÇ¾î ¸í¹éÇÑ ÅؽºÆ®·Î ¹°¸®ÀûÀÎ ³×Æ®¿öÅ© À§¿¡¼­ Àü¼ÛµÇ´Â ¾ÈÁ¤µÈ »ç¿ëÀÚ ÀÎÁõ methodµµ ¾Æ´Ï¸ç ¿£ÅÍƼ¸¦ ¾î¶² ½ÄÀÌµç º¸È£ÇÏÁöµµ ¾Ê ´Â´Ù. HTTP´Â º¸¾ÈÀ» Áõ°¡ ½ÃÅ°±â À§ÇÏ¿© Ãß°¡ÀûÀÎ ÀÎÁõ schemesÀ̳ª ¾Ïȣȭ ¸ÞÄ¿´ÏÁòÀ» »ç ¿ëÇÏ´Â °ÍÀ» ±ÝÁöÇÏ´Â ¾Ê´Â´Ù.(ÀÏȸ ¾ÏÈ£ »ç¿ë schemeó·³) [Page 139] Basic authenticationÀÇ °¡Àå ½É°¢ÇÑ ´ÜÁ¡Àº ±Ùº»ÀûÀ¸·Î ¹°¸®ÀûÀÎ ³×Æ®¿öÅ© À§·Î »ç¿ëÀÚÀÇ ¾ÏÈ£ °¡ ¸í¹éÇÑ ÅؽºÆ®·Î Àü´ÞµÈ´Ù´Â °ÍÀÌ´Ù. Digest AuthenticationÀÌ ¾ð±ÞÇÏ°íÀÚ ÇÏ´Â °ÍÀÌ ¹Ù·Î ÀÌ ¹®Á¦ÀÌ´Ù. Basic authenticationÀÌ ¾ÏÈ£ÀÇ ¸í¹éÇÑ ÅؽºÆ® Àü¼ÛÀ» ¼ö¹ÝÇϱ⠶§¹®¿¡ ¹Î°¨ÇÏ°í ¼ÒÁßÇÑ Á¤º¸¸¦ º¸È£Çϱâ À§Çؼ­(±â´É Çâ»ó ¾øÀÌ´Â) °áÄÚ »ç¿ëÇؼ­´Â ¾È µÈ´Ù. Basic authenticationÀÇ ÀϹÝÀûÀÎ ¿ëµµ´Â ½Äº°(identification) ¸ñÀûÀÌ´Ù. ¿¹¸¦ µé¾î Á¤È®ÇÑ ¼­¹öÀÇ »ç¿ë ºóµµ¿¡ °üÇÑ Åë°è¸¦ ¼öÁýÇϱâ À§Çؼ­ ½Äº°ÀÇ ¼ö´ÜÀ¸·Î¼­ »ç¿ëÀÚÀÇ À̸§°ú ¾ÏÈ£¸¦ »ç¿ëÀÚ °¡ Á¦°øÇϵµ·Ï ¿ä±¸ÇÑ´Ù. ÀÌ·± ½ÄÀ¸·Î »ç¿ëÇßÀ» ¶§ º¸È£µÈ ¹®¼­¿¡ ºÒ¹ýÀ¸·Î Á¢±ÙÇÏ´Â °ÍÀÌ ÁÖ ¿ä °ü½É»ç°¡ ¾Æ´Ñ °æ¿ì À§Ç輺ÀÌ ¾ø´Â °ÍÀ¸·Î »ý°¢ÇÒ ¼ö ÀÖ´Ù. ÀÌ°ÍÀº ¼­¹ö°¡ »ç¿ëÀÚ À̸§ ¹× ¾ÏÈ£¸¦ »ç¿ëÀÚ¿¡°Ô ¹ßÇàÇÒ ¶§, ƯÈ÷ »ç¿ëÀÚ°¡ ÀÚ½ÅÀÇ ¾ÏÈ£¸¦ ¼±ÅÃÇÒ ¼ö ¾øµµ·Ï ÇßÀ» ¶§ ¿Ã¹Ù ¸¥ »ý°¢ÀÌ´Ù. ¼øÁøÇÑ »ç¿ëÀÚ´Â Á¾Á¾ º¹¼öÀÇ ¾ÏÈ£¸¦ À¯ÁöÇÏ´Â ÀÏÀ» ÇÇÇϱâ À§ÇØ ´ÜÀÏ ¾ÏÈ£¸¦ Àç»ç¿ëÇϱ⠶§¹®¿¡ À§ÇèÀÌ ¹ß»ýÇÑ´Ù. ¼­¹ö°¡ »ç¿ëÀÚ·Î ÇÏ¿©±Ý ÀÚ½ÅÀÇ ¾ÏÈ£¸¦ ¼±ÅÃÇÏ°Ô ÇÑ´Ù¸é À§Ç輺Àº ¼­¹öÀÇ ¹®¼­¿¡ ºÒ¹ýÀ¸·Î Á¢ ±ÙÇÏ´Â °Í»Ó¸¸ ¾Æ´Ï¶ó ÀÚ½ÅÀÇ °èÁ¤ ¾ÏÈ£¸¦ »ç¿ëÇϱâ·Î °áÁ¤ÇÑ ¸ðµç »ç¿ëÀÚÀÇ °èÁ¤¿¡ ºÒ¹ýÀ¸·Î Á¢±ÙÇÏ´Â °ÍÀÌ´Ù. »ç¿ëÀÚ°¡ ÀÚ½ÅÀÇ ¾ÏÈ£¸¦ ¼±ÅÃÇϵµ·Ï Çã¿ëÇÑ´Ù´Â °ÍÀº ¼­¹ö°¡ ¾ÏÈ£(¾Æ¸¶µµ ¾ÏȣȭµÈ)¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Â ÆÄÀÏÀ» À¯ÁöÇؾ߸¸ ÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ¸¹Àº °ÍµéÀÌ ¿ø°ÝÁö »ç ÀÌÆ®ÀÇ °èÁ¤ ¾ÏÈ£ÀÏ °ÍÀÌ´Ù. ÀÌ·¯ÇÑ ½Ã½ºÅÛÀÇ ¼ÒÀ¯ÁÖ ¶Ç´Â °ü¸®ÀÎÀº ÀÌ·¯ÇÑ Á¤º¸°¡ ¾ÈÀüÇÑ ¹æ ¹ýÀ¸·Î À¯ÁöµÇÁö ¾ÊÀ¸¸é Ã¥ÀÓ ¹ß»ýÀ» ÃÊ·¡ÇÒ ¼öµµ ÀÖ´Ù. Basic Authentication´Â ¶ÇÇÑ ¸ðÁ¶ ¼­¹ö¿¡ ÀÇÇÑ ¼ÓÀÓ¼ö¿¡µµ Ãë¾àÇÏ´Ù. »ç½Ç»ó »ç¿ëÀÚ°¡ Àû´ëÀûÀÎ ¼­¹ö³ª °ÔÀÌÆ®¿þÀÌ¿¡ Á¢¼ÓÇÏ°í Àִµ¥µµ ±âº» ÀÎÁõ¿¡ ÀÇÇÏ¿© º¸È£ ¹Þ´Â Á¤º¸¸¦ Æ÷ÇÔÇÏ°í Àִ ȣ½ºÆ®¿¡ ¿¬°áµÇ¾î ÀÖ´Ù°í »ç¿ëÀÚ°¡ ¹Ïµµ·Ï ÇÏ¿´À¸¸é °ø°ÝÀÚ´Â ¾ÏÈ£¸¦ ¿äûÇÏ¿© ÀÌ°ÍÀ» ³ªÁß ¿ëµµ¸¦ À§ÇØ ÀúÀåÇÏ°í ¿¡·¯ÀÎ °Íó·³ À§ÀåÇÒ ¼ö ÀÖ´Ù. ÀÌ·± À¯ÇüÀÇ °ø°ÝÀº Digest Authentication[32]¿¡¼­´Â °¡´ÉÇÏÁö ¾Ê´Ù. ¼­¹ö ±¸ÇöÀÚ´Â ÀÌ¿Í °°Àº Á¾·ùÀÇ °ÔÀÌÆ®¿þÀ̳ª CGI ½ºÅ©¸³Æ® À§Á¶ °¡´É¼º¿¡ ´ëºñÇÏ¿©¾ß ÇÑ´Ù. ƯÈ÷ ¼­¹ö°¡ ¿¬°áÀ» °ÔÀÌ Æ®¿þÀÌ·Î Àü´ÞÇÏ´Â °ÍÀº »ó´çÈ÷ À§ÇèÇÏ´Ù. ±×·± ´ÙÀ½ °ÔÀÌÆ®¿þÀÌ´Â Áö¼ÓÀûÀÎ ¿¬°á ¸ÞÄ¿´ÏÁòÀ» ÀÌ¿ëÇÏ¿© Ŭ¶óÀ̾ðÆ®°¡ ŽÁöÇÒ ¼ö ¾ø´Â ¹æ ½ÄÀ¸·Î ¿ø¼­¹öÀÎ °Íó·³ ÀÛµ¿Çϸ鼭 Ŭ¶óÀ̾ðÆ®¿ÍÀÇ º¹¼ö Æ®·£Àè¼Ç¿¡ Âü¿©ÇÒ ¼ö Àֱ⠶§¹®ÀÌ ´Ù. 15.2 ÀÎÁõ schemeÀ» ¼±ÅÃÇÒ ¼ö ÀÖµµ·Ï ÇÔ HTTP/1.1 ¼­¹ö´Â º¹¼öÀÇ ÀÎÁõ ½Ãµµ(challenge)¸¦ 401(Authenticate) ÀÀ´äÀ¸·Î ¸®ÅÏÇÏ¸ç °¢°¢ÀÇ ÀÎ Áõ ½Ãµµ´Â º°µµÀÇ schemeÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. [Page 140] »ç¿ëÀÚ ¿¡ÀÌÀüÆ®¿¡°Ô ¸®ÅϵǴ ÀÎÁõ ½Ãµµ ¼ø¼­´Â ¼­¹ö°¡ ¼±È£ÇÏ´Â ¼ø¼­ÀÌ´Ù. ¼­¹ö´Â "°¡Àå ¾È ÀüÇÑ" ÀÎÁõ ȹµæÀ» ¿ì¼±À¸·Î ÇÏ¿© ÀÚ½ÅÀÇ ÀÎÁõ ½Ãµµ ¼ø¼­¸¦ Á¤ÇØ¾ß ÇÑ´Ù. »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â ÀÚ½ÅÀÌ ÀÌÇØÇÏ´Â °ÍÀ» »ç¿ëÀÚ°¡ óÀ½ ÀÎÁõÀ» ½ÃµµÇÏ´Â °ÍÀ¸·Î ¼±ÅÃÇØ¾ß ÇÑ´Ù. ¼­¹ö°¡ WWW-AuthenticateÇì´õ¸¦ ÀÌ¿ëÇÏ¿© ¼±ÅÃÇÑ ÀÎÁõ ȹµæ schemeÀ» Á¦°øÇÒ ¶§ ¾ÇÀÇÀÇ »ç ¿ëÀÚ°¡ ÀÏ·ÃÀÇ ÀÎÁõ ½Ãµµ¸¦ ¾àÅ»ÇÏ¿© ÀÎÁõ ȹµæ schemeÀÇ °¡Àå ¾àÇÑ ºÎºÐÀ» ÀÌ¿ëÇÏ¿© ÀÚ½ÅÀ» ÀÎÁõÇÏ·Á Çϱ⠶§¹®¿¡ ÀÎÁõ ȹµæÀÇ "¾ÈÀü" ¸¸À» Á¦°øÇÏ´Â °ÍÀÌ´Ù. µû¶ó¼­ ¼ø¼­´Â ¼­¹öÀÇ Á¤º¸ º¸´Ù´Â »ç¿ëÀÚÀÇ Áõ¸í¼­¸¦ º¸È£ÇÏ´Â µ¥ »ç¿ëµÈ´Ù. »ç¶÷ÀÌ Áß°£ÀÌ ³¤ °ø°Ý(man-in-the-middle (MITM) attack)Àº ¾àÇÑ ÀÎÁõ ȹµæ scheme¸¦ ¼±Åà »çÇ× ¼¼Æ®¿¡ Ãß°¡ÇÏ¿© Ŭ¶óÀ̾ðÆ®°¡ »ç¿ëÀÚÀÇ Áõ¸í¼­(¿¹¸¦ µé¸é ¾ÏÈ£)¸¦ ³ëÃâ½ÃÅ°´Â °ÍÀ» Çϳª »ç ¿ëÇÒ °ÍÀ̶ó´Â ±â´ëÇÏ´Â °ÍÀÌ´Ù. ÀÌ·¯ÇÑ ÀÌÀ¯ ¶§¹®¿¡ Ŭ¶óÀ̾ðÆ®´Â Ç×»ó Á¢¼öÇÑ ¼±Åà »çÇ× Áß ÀÚ½ÅÀÌ ÀÌÇØÇÏ´Â °¡Àå °­ÇÑ schemeÀ» »ç¿ëÇØ¾ß ÇÑ´Ù. Á»´õ Çâ»óµÈ MITM °ø°ÝÀº Á¦°øµÈ ¸ðµç ¼±Åà »çÇ×À» »èÁ¦ÇÏ°í Basic authenticationÀ» ¿äûÇÏ´Â ÀÎÁõ ½Ãµµ¸¦ »ðÀÔÇÏ´Â °ÍÀÌ´Ù. ÀÌ·¯ÇÑ ÀÌÀ¯·Î ÀÎÇÏ¿© ÀÌ·¯ÇÑ °ø°ÝÀ» ¿°·ÁÇÏ´Â »ç¿ëÀÚ ¿¡ÀÌÀü Æ®´Â ¼­¹ö°¡ ¿äûÇß´ø °¡Àå °­·ÂÇÑ ÀÎÁõ ȹµæ schemeÀ» ±â¾ïÇÏ°í ¾àÇÑ °ÍÀ» »ç¿ëÇϱâ Àü¿¡ »ç¿ëÀÚÀÇ È®ÀÎÀ» ¿ä±¸ÇÏ´Â °æ°í ¸Þ½ÃÁö¸¦ »ý¼ºÇÒ ¼ö ÀÖ´Ù. ƯÈ÷ ÀÌ·¯ÇÑ °ø°ÝÀ» °¡ÇÏ·Á´Â À½Èä ÇÑ ¹æ¹ýÀº ¼Ó±â ½¬¿î »ç¿ëÀÚ¿¡°Ô "¹«·á" ÇÁ¶ô½Ã ij½Ã¸¦ Á¦°øÇÏ´Â °ÍÀÌ´Ù. 15.3 ¼­¹ö ·Î±× Á¤º¸ÀÇ ³²¿ë ¼­¹ö´Â »ç¿ëÀÚÀÇ Àд À¯Çü ¹× °ü½É»ç¸¦ ¾Ë·Á ÁÙ ¼ö ÀÖ´Â »ç¿ëÀÚÀÇ ¿äû¿¡ °üÇÑ °³ÀÎÀûÀÎ µ¥ ÀÌÅ͸¦ ÀúÀåÇÏ´Â ÀÔÀå¿¡ ÀÖ´Ù. ÀÌ·¯ÇÑ Á¤º¸´Â ±âº» ¼º°Ý»ó ºÐ¸íÈ÷ ºñ¹ÐÀ̸ç ƯÁ¤ ±¹°¡¿¡¼­´Â ÀÌ·¯ÇÑ Á¤º¸ÀÇ Ã³¸®°¡ ¹ý¿¡ ÀÇÇÏ¿© Á¦ÇÑÀ» ¹Þ°í ÀÖ´Ù. µ¥ÀÌÅ͸¦ Á¦°øÇϱâ À§ÇØ HTTP ±Ô¾àÀ» »ç¿ëÇÏ´Â »ç¶÷Àº ¹ßÇàµÈ °á°ú·Î ½Äº°ÇÒ ¼ö ÀÖ´Â ÀÌ·¯ÇÑ ÀÚ·á°¡ °³ÀÎÀÇ Çã¶ô ¾øÀÌ ¹èÆ÷µÇÁö ¾Ê µµ·Ï Çϴ åÀÓÀ» °®°í ÀÖ´Ù. 15.4 ¹Î°¨ÇÑ Á¤º¸ÀÇ Àü¼Û ÀϹÝÀûÀÎ ÀÚ·á Àü¼Û ±Ô¾àó·³ HTTP´Â Àü¼ÛµÇ´Â µ¥ÀÌÅÍÀÇ ³»¿ëÀ» ÅëÁ¦ÇÒ ¼ö ¾øÀ¸¸ç »çÀü¿¡ ƯÁ¤ ¿ä±¸ÀÇ ¹®¸Æ¿¡¼­ Á¤º¸ÀÇ Æ¯Á¤ ºÎºÐÀÇ ¹Î°¨¼ºÀ» °áÁ¤ÇÒ ¹æ¹ýÀÌ ¾ø´Ù. µû¶ó¼­ ¾ÖÇø®ÄÉÀÌ ¼ÇÀº ÀÌ·¯ÇÑ Á¤º¸¿¡ ´ëÇÑ ÅëÁ¦¸¦ ÇØ´ç Á¤º¸ÀÇ Á¦°øÀÚ¿¡°Ô °¡´ÉÇÑ ÇÑ ¸¹ÀÌ Á¦°øÇÏ¿©¾ß ÇÑ´Ù. ³× °³ÀÇ Çʵ尡 ÀÌ·¯ÇÑ Àǹ̿¡¼­ Ưº°È÷ ¾ð±ÞÇÒ °¡Ä¡°¡ ÀÖ´Ù. - Server, Via, Referer ¹× From. [Page 141] ¼­¹öÀÇ Æ¯Á¤ ¼ÒÇÁÆ®¿þ¾î ¹öÀüÀ» Ç¥½ÃÇÔÀ¸·Î Çؼ­ ¼­¹ö°¡ º¸¾È ÇãÁ¡À» °¡Áø °ÍÀ¸·Î ¾Ë·ÁÁø ¼Ò ÇÁÆ®¿þ¾î¿¡ ´ëÇÑ °ø°Ý¿¡ Á»´õ Ãë¾àÇϵµ·Ï ¸¸µé ¼ö ÀÖ´Ù. ±¸ÇöÀÚ´Â Server Çì´õ Çʵ带 ¼³Á¤ÇÒ ¼ö ÀÖ´Â ¼±Åà »çÇ×À¸·Î ¸¸µé¾î¾ß ÇÑ´Ù. ³×Æ®¿öÅ© ¹æÈ­º®À» µû¶ó ÀÔ±¸ÀÇ ¿ªÇÒÀ» ÇÏ´Â ÇÁ¶ô½Ã´Â ¹æÈ­º® µÚÀÇ È£½ºÆ®¸¦ ½Äº°ÇÏ´Â Çì´õ Á¤º¸ÀÇ Àü´Þ¿¡ °üÇÏ¿© Ưº°ÇÑ ÁÖÀǸ¦ ±âÇØ¾ß ÇÑ´Ù. ƯÈ÷ ÇÁ¶ô½Ã´Â ¹æÈ­º® µÚ¿¡¼­ »ý¼ºµÈ ¸ðµç Via Çʵ带 »èÁ¦ÇÏ´øÁö û¼ÒµÈ(sanitized) ¹öÀüÀ¸·Î ´ëüÇØ¾ß ÇÑ´Ù. Referer Çʵå´Â Àбâ À¯ÇüÀ» ¿¬±¸ÇÏ°í ¿ª ¸µÅ©¸¦ ±¸¼ºÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ºñ·Ï ¸Å¿ì À¯¿ëÇϱ⠴ ÇÏÁö¸¸ Referer¿¡ Æ÷ÇÔµÈ Á¤º¸¿¡¼­ »ç¿ëÀÚÀÇ ÀÎÀû »çÇ×À» ºÐ¸®ÇÏÁö ¾ÊÀ¸¸é ÀÌ·¯ÇÑ ´É·ÂÀÌ ³²¿ëµÉ ¼ö ÀÖ´Ù. °³ÀÎÀû Á¤º¸°¡ »èÁ¦µÈ ÀÌÈÄ¿¡µµ Referer Çʵå´Â ¹ßÇàÇÏ´Â °ÍÀÌ ÀûÀýÇÏÁö ¾Ê´Â °³ÀÎÀû ¹®¼­ÀÇ URI¸¦ Ç¥½ÃÇÒ ¼ö ÀÖ´Ù. From Çʵ忡¼­ Àü´ÞÇÏ´Â Á¤º¸°¡ »ç¿ëÀÚÀÇ »ç»ýÈ° º¸È£³ª »ç¿ëÀÚ »çÀÌÆ®ÀÇ º¸¾È Á¤Ã¥°ú Ãæµ¹ µÉ ¼ö ÀÖ´Ù. µû¶ó¼­ »ç¿ëÀÚ°¡ ÇʵåÀÇ ³»¿ëÀ» ¹«·ÂÈ­, È°¼ºÈ­ ¹× º¯°æÇÒ ¼ö ¾øÀ» ¶§´Â From ÇÊ µå´Â Àü´ÞµÇ¾î¼­´Â ¾È µÈ´Ù. »ç¿ëÀÚ´Â »ç¿ëÀÚ ¼±Åà »çÇ×À̳ª ¾ÖÇø®ÄÉÀ̼ÇÀÇ ±âº» ȯ°æ ¼³Á¤ ¿¡¼­ ÀÌ ÇʵåÀÇ ³»¿ëÀ» ¼³Á¤ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ¿ì¸®´Â ºñ·Ï ¿ä±¸ÇÏÁö´Â ¾ÊÁö¸¸ Æí¸®ÇÑ Åä±Û(toggle) ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÀÚ¿¡°Ô Á¦°øÇÏ¿© »ç¿ë ÀÚ°¡ From ¹× Referer Á¤º¸¸¦ È°¼ºÈ­ ¶Ç´Â ¹«·ÂÈ­ ÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀ» ÃßõÇÑ´Ù. 15.5 ÆÄÀÏ ¹× °æ·Î À̸§¿¡ ±âÃÊÇÑ °ø°Ý HTTP ¿ø¼­¹öÀÇ ±¸Çö ¹æ½ÄÀºHTTP ÀÀ´äÀÌ ¸®ÅÏÇÏ´Â ¹®¼­¸¦ ¼­¹ö °ü¸®ÀÚ°¡ ÀǵµÇÑ °Í¸¸À¸·Î ÇÑÁ¤Çϵµ·Ï ÁÖÀÇÇÏ¿©¾ß ÇÑ´Ù. ¸¸¾à HTTP ¼­¹ö°¡ HTTP URI¸¦ ÆÄÀÏ ½Ã½ºÅÛ È£Ãâ·Î ¹Ù·Î Çؼ® ÇÏ¸é ¼­¹ö´Â HTTP Ŭ¶óÀ̾ðÆ®¿¡°Ô Á¦°øÇÏÁö ¾ÊÀ¸·Á´Â ÆÄÀÏÀÌ Á¦°øµÇÁö ¾Êµµ·Ï Ưº°ÇÑ ÁÖÀǸ¦ ÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î UNIX, Microsoft Windows ¹× ´Ù¸¥ ¿î¿µ ü°è´Â ÇöÀç µð·ºÅ丮 ¹Ù·Î À§¸¦ Ç¥½ÃÇϱâ À§ÇØ ".."¸¦ °æ·Î ±¸¼º¿øÀ¸·Î »ç¿ëÇÑ´Ù. ÀÌ·¯ÇÑ ½Ã½ºÅÛ¿¡¼­ HTTP ¼­¹ö´Â ÀÌ°ÍÀÌ HTTP ¼­¹ö¸¦ ÅëÇÏ¿© Á¢±ÙÇϵµ·Ï °èȹµÈ °Í ÀÌ¿ÜÀÇ ÀÚ¿ø¿¡ Á¢±ÙÇÒ ¼ö ÀÖµµ·Ï ÇÒ ¼ö Àֱ⠶§¹® ¿¡ Request-URI¿¡ ÀÌ·¯ÇÑ ±¸¼º Çü½ÄÀ» Çã¿ëÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù. ¸¶Âù°¡Áö·Î ¼­¹ö ³»ºÎ ÂüÁ¶¸¸À» À§ÇÑ ÆÄÀÏ(Á¢±Ù Á¦¾î ÆÄÀÏ, ȯ°æ ¼³Á¤ ÆÄÀÏ ¹× ½ºÅ©¸³Æ® ÄÚµå µî)Àº ¹Î°¨ÇÑ Á¤º¸¸¦ Æ÷ÇÔÇÏ°í ÀÖÀ» ¼öµµ Àֱ⠶§¹®¿¡ ºÎÀûÀýÇÑ Á¶È¸¿¡¼­ º¸È£ÇØ¾ß ÇÑ´Ù. °æÇè¿¡ µû¸£¸é ÀÌ·¯ÇÑ HTTP ¼­¹ö ±¸Çö ¹æ½ÄÀÇ »ç¼ÒÇÑ ¹ö±×°¡ º¸¾È ÇãÁ¡À¸·Î ¹Ù²ð ¼öµµ ÀÖÀ½À» º¸¿© ÁÖ°í ÀÖ´Ù. [Page 142] 15.6 °³ÀÎÀûÀÎ Á¤º¸ HTTP Ŭ¶óÀ̾ðÆ®´Â Á¾Á¾ ´ë·®ÀÇ °³ÀÎ Á¤º¸(»ç¿ëÀÚÀÇ À̸§, À§Ä¡, ¿ìÆí ÁÖ¼Ò, ¾ÏÈ£, ¾Ïȣȭ Å° µî)¿¡ °ü°èµÇ¾î ÀÖÀ¸¸ç ÀÌ·¯ÇÑ Á¤º¸°¡ HTTP ±Ô¾àÀ» ÅëÇÏ¿© ´Ù¸¥ Ãâó·Î ¿øÇÏÁö ¾Ê°Ô ´©ÃâµÇ ´Â °ÍÀ» ¹æÁöÇϵµ·Ï ÁÖÀÇÇØ¾ß ÇÑ´Ù. ¿ì¸®´Â ÀÌ·¯ÇÑ Á¤º¸ÀÇ ¹èÆ÷¸¦ ÅëÁ¦ÇÒ ¼ö ÀÖµµ·Ï »ç¿ëÀÚ¿¡ °Ô Æí¸®ÇÑ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÒ °Í°ú µðÀÚÀÌ³Ê¿Í ±¸ÇöÀÚµéÀÌ ÀÌ ºÐ¾ß¿¡¼­ ƯÈ÷ Á¶½ÉÇÒ °ÍÀ» °­·ÂÈ÷ ÃßõÇÑ´Ù. Àü·Ê¸¦ º¸¸é ÀÌ ºÐ¾ß¿¡¼­ÀÇ ¿¡·¯´Â Á¾Á¾ ½É°¢ÇÑ º¸¾È ¹×/¶Ç´Â »ç»ýÈ° º¸È£ ¹®Á¦°¡ µÇ¸ç, ¶ÇÇÑ ±¸ÇöÀÚ È¸»çÀÇ ÆòÆÇ¿¡ ½É°¢ÇÑ ¼Õ»óÀ» ÀÔÈù´Ù. 15.7 Accept Çì´õ¿Í ¿¬°áµÈ »ç»ýÈ° º¸È£ÀÇ À̽´ Accept request-headers´Â »ç¿ëÀÚ¿¡ ´ëÇÑ Á¤º¸¸¦ Á¢±ÙÇÏ´Â ¸ðµç ¼­¹ö¿¡ ³ëÃâ½Ãų ¼ö ÀÖ´Ù. ƯÈ÷ Accept-Language Çì´õ´Â ƯÁ¤ ¾ð¾îÀÇ ÀÌÇش ƯÁ¤ ÀÎÁ¾ ±×·ìÀÇ ¸â¹ö½Ê°ú °­ÇÏ°Ô »óÈ£ ¿¬°üµÇ ¾î Àֱ⠶§¹®¿¡ »ç¿ëÀÚ°¡ »çÀûÀÎ °ÍÀ¸·Î °£ÁÖÇÏ´Â Á¤º¸¸¦ ³ëÃâÇÒ ¼ö ÀÖ´Ù. ¿ä±¸¸¦ ¹ß¼ÛÇÒ ¶§ ¸¶´Ù Accept-Language Çì´õÀÇ ³»¿ëÀ» ¼³Á¤ÇÒ ¼ö ÀÖ´Â ¼±Åà »çÇ×À» Á¦°øÇÏ´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ® ´Â ¼³Á¤ °úÁ¤¿¡ »ç¿ëÀÚ°¡ »ç»ýÈ° º¸È£¸¦ »ó½ÇÇÒ ¼öµµ ÀÖÀ½À» ÀÎÁöÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â ¸Þ½ÃÁö¸¦ Æ÷ÇÔÇϵµ·Ï °­·ÂÈ÷ ÃßõÇÑ´Ù. »ç»ýÈ° º¸È£ ¼Õ½ÇÀ» Á¦ÇÑÇÒ ¼ö ÀÖ´Â Á¢±Ù¹ýÀº »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ ±âº»ÀûÀ¸·Î Accept-Language Çì´õ ¹ß¼ÛÀ» »ý·«ÇÒ ¼ö ÀÖ°Ô ÇÏ´Â °ÍÀÌ¸ç ¼­¹ö°¡ »ý¼ºÇÑ Vary response-headers¸¦ °Ë»öÇÏ¿© ÀÌ ·¯ÇÑ Çì´õ ¹ß¼ÛÀÌ ¼­ºñ½ºÀÇ ÁúÀ» Çâ»ó½ÃÅ°´Â °ÍÀÓÀ» ¾Ë°Ô µÈ´Ù¸é »ç¿ëÀÚ¿¡°Ô Accept-Language Çì´õÀÇ ¼­¹ö ¹ß¼ÛÀ» ½ÃÀÛÇÒ °ÍÀÎÁö Áú¹®ÇÏ´Â °ÍÀÌ´Ù. ¼­¹ö´Â ¸ðµç ¿ä±¸¿¡ ¹ß¼ÛÇÏ´Â Á¤±³ÇÏ°í user-customizedµÈ Accept Çì´õ Çʵ带, ƯÈ÷ ÀÌ°ÍÀÌ Ç° Áú °ªÀ» Æ÷ÇÔÇÏ°í ÀÖ´Ù¸é, ºñ±³Àû ½Å·ÚÇÒ ¼ö ÀÖ°í ¿À·¡ Áö¼ÓµÇ´Â »ç¿ëÀÚ ½Äº°ÀÚ·Î ÀÌ¿ëÇÑ´Ù. ÀÌ·¯ÇÑ »ç¿ëÀÚ ½Äº°ÀÚ´Â ³»¿ë Á¦°øÀÚ°¡ Ŭ¸¯-ÈçÀû ÃßÀû(click-trail tracking)À» ÇÒ ¼ö ÀÖµµ·Ï ÇÏ¸ç »óÈ£ Çù·ÂÇÏ´Â ³»¿ë Á¦°øÀÚ°¡ ¼­¹ö¿¡ °ÉÃÄ Å¬¸¯-ÈçÀûÀ» ÀÏÄ¡½ÃÅ°°Å³ª °³ÀÎ »ç¿ëÀÚÀÇ ÆûÀ» Á¦ ÃâÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ÇÁ¶ô½Ã¸¦ »ç¿ëÇÏÁö ¾Ê´Â ¸¹Àº »ç¿ëÀÚÀÇ °æ¿ì »ç¿ëÀÚ ¿¡ÀÌÀüÆ®¸¦ ¿î¿µÇÏ ´Â È£½ºÆ®ÀÇ ³×Æ®¿öÅ© ÁÖ¼Ò¸¦ ¿À·¡ Áö¼ÓµÇ´Â »ç¿ëÀÚ ½Äº°ÀÚ·Î »ç¿ëÇÒ ¼ö ÀÖÀ½À» ÁÖÀÇÇÑ´Ù. ÇÁ ¶ô½Ã¸¦ »ç»ýÈ° º¸È£¸¦ Çâ»ó½ÃÅ°±â À§ÇØ »ç¿ëÇϴ ȯ°æ¿¡¼­ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â »ç¿ëÀÚ¿¡°Ô Accept Çì´õ¸¦ ¼³Á¤ÇÒ ¼ö ÀÖµµ·Ï ÇÒ ¶§ »ó´çÈ÷ Á¶½ÉÇØ¾ß ÇÑ´Ù. ÃÖ´ëÇѵµÀÇ »ç»ýÈ° º¸È£ Á¶Ä¡ ·Î ÇÁ¶ô½Ã´Â Áß°èµÇ´Â ¿ä±¸¿¡¼­ Accept Çì´õ¸¦ ¿©°ú½Ãų ¼ö ÀÖ´Ù. ³ôÀº ¼öÁØÀÇ Çì´õ ¼³Á¤ ¹æ ¹ýÀ» Á¦°øÇÏ´Â ÀÏ¹Ý ¸ñÀûÀÇ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â »ç¿ëÀÚ¿¡°Ô »ç»ýÈ° º¸È£ÀÇ ¼Õ½ÇÀ» °æ°íÇØ¾ß ÇÑ ´Ù. [Page 143] 15.8 DNS Spoofing(¼ÓÀ̱â) HTTP¸¦ »ç¿ëÇϴ Ŭ¶óÀ̾ðÆ®´Â Domain Name Service¿¡ »ó´çÈ÷ ÀÇÁ¸ÇÏ°í ÀÖÀ¸¸ç ÀϹÝÀûÀ¸·Î ±³¹¦ÇÏ°Ô IP ÁÖ¼Ò¿Í DNS À̸§À» À߸ø ¿¬°ü½ÃŲ °Í¿¡ ±â¹ÝÀ» µÐ º¸¾È °ø°Ý¿¡ Ãë¾àÇÏ´Ù. Ŭ¶ó À̾ðÆ®´Â IP number/DNS name »ó°ü °ü°è°¡ Áö¼ÓÀûÀ¸·Î À¯È¿ÇÏ´Ù°í °¡Á¤ÇÒ ¶§ ÁÖÀÇÇØ¾ß ÇÑ´Ù. ƯÈ÷ HTTP Ŭ¶óÀ̾ðÆ®´Â ÀÌÀüÀÇ È£½ºÆ® À̸§ Á¶È¸ °á°ú¸¦ ij½ÃÇϱ⺸´Ù´Â À̸§ ºÐ¼®ÀÚ(name resolver)°¡ IP number/DNS name »ó°ü °ü°è¸¦ È®ÀÎÇÏ´Â °Í¿¡ ÀÇÁ¸ÇØ¾ß ÇÑ´Ù. ¸¹Àº Ç÷§ÆûÀÌ Àû ÀýÇÑ °æ¿ì È£½ºÆ® À̸§ °Ë»öÀ» Áö¿ª¿¡ ij½ÃÇÒ ¼ö ÀÖ°Ô ÇÏ¸ç ±×·¸µµ·Ï ȯ°æÀ» ¼³Á¤ÇØ¾ß ÇÑ´Ù. ±×·¯³ª ÀÌ·¯ÇÑ Á¶È¸´Â ³×ÀÓ ¼­¹ö(name server)°¡ º¸°íÇÑ TTL (Time To Live) Á¤º¸°¡ ij½ÃµÈ Á¤º¸ ¿¡ µû¶ó À¯¿ëÇÑ °ÍÀ¸·Î À¯ÁöµÇ°í ÀÖ´Â °æ¿ì¿¡¸¸ ij½ÃÇØ¾ß ÇÑ´Ù. HTTP Ŭ¶óÀ̾ðÆ®°¡ ¼º´É Çâ»óÀ» À§ÇØ È£½ºÆ® À̸§ Á¶È¸ °á°ú¸¦ ij½ÃÇÏ¿´À¸¸é DNS°¡ º¸°íÇÑ TTL Á¤º¸¸¦ ¹Ýµå½Ã ÁؼöÇØ¾ß ÇÑ´Ù. HTTP Ŭ¶óÀ̾ðÆ®°¡ ÀÌ ¿øÄ¢À» ÁؼöÇÏÁö ¾ÊÀ¸¸é ÀÌÀü¿¡ Á¢±ÙÇÑ ¼­¹öÀÇ IP ÁÖ¼Ò°¡ º¯°æµÉ °æ¿ì ¼ÓÀÓÀ» ´çÇÒ ¼ö ÀÖ´Ù. ³×Æ®¿öÅ© ÁÖ¼Ò ¼ýÀÚÀÇ º¯°æÀÌ Á¡Á¡ ´õ ÀϹÝÀûÀÎ °ÍÀÌ µÇ°í Àֱ⠶§¹®¿¡ ÀÌ·¯ÇÑ À¯ÇüÀÇ °ø°ÝÀº Áõ°¡ÇÒ °ÍÀÌ´Ù. ÀÌ ÇÊ¿ä Á¶°ÇÀ» ÁؼöÇÏ´Â °ÍÀÌ ÀáÀçÀûÀÎ º¸¾È Ãë¾à¼ºÀ» °¨¼Ò½ÃÄÑ ÁØ´Ù. ÀÌ ÇÊ¿ä Á¶°ÇÀº ¶ÇÇÑ µ¿ÀÏÇÑ DNS À̸§À» »ç¿ëÇÏ´Â Áߺ¹µÈ ¼­¹öÀÇ Å¬¶óÀ̾ðÆ® ÇàÅÂÀÇ load- balancingÀ» Çâ»ó½ÃÅ°¸ç ±× Àü·«À» »ç¿ëÇÏ´Â »çÀÌÆ®¿¡ Á¢±ÙÇßÀ» ¶§ »ç¿ëÀÚ°¡ ½ÇÆи¦ °æÇèÇÒ °¡´É¼ºÀ» °¨¼Ò½ÃÄÑ ÁØ´Ù. 15.9 Location Çì´õ¿Í Spoofing(¼ÓÀ̱â) ´ÜÀÏ ¼­¹ö°¡ ¼­·Î ½Å·ÚÇÏÁö ¾Ê´Â º¹¼öÀÇ Á¶Á÷À» Áö¿øÇÏ°í ÀÖ´Ù¸é ¼­¹ö´Â ¾ð±ÞÇÑ Á¶Á÷ÀÇ ÅëÁ¦ ÇÏ¿¡¼­ »ý¼ºµÇ´Â ÀÀ´äÀÇ Location ¹× Content-Location Çì´õ °ªÀ» ´Ù¸¥ Á¶Á÷ÀÌ ±ÇÇÑÀÌ ¾ø´Â ÀÚ ¿øÀ» ¹«È¿È­ÇÏ·Á ½ÃµµÇÏÁö ¸»µµ·Ï Çϱâ À§ÇØ Á¡°ËÇØ¾ß ÇÑ´Ù. 16 °¨»çÀÇ ¸» ÀÌ ±Ô°ÝÀº ÷°¡µÈ BNF ¹× David H. Crocker ÀÌ RFC 822¿¡¼­ ±ÔÁ¤ÇÑ ÀÏ¹Ý ±¸Ãà¹ýÀ»(generic constructs) ¸¹ÀÌ »ç¿ëÇÏ°í ÀÖ´Ù. ¸¶Âù°¡Áö·Î Nathaniel Borenstein ¿Í Ned FreedÀÇ MIMEÀÌ Á¦°ø ÇÏ´Â ¸¹Àº ±ÔÁ¤À» Àç»ç¿ëÇÏ¿´´Ù. ¿ì¸®´Â ÀÌ ±Ô°Ý¿¡ MIMEÀ» Æ÷ÇÔÇÏ¿© HTTP¿Í ÀÎÅÍ³Ý ÀüÀÚ ¿ìÆí ¸Þ½ÃÁö Æ÷¸Ë°úÀÇ °ü°è¿¡ ´ëÇÑ ÀÌÀüÀÇ È¥¶õÀÌ °¨¼ÒÇϸ®¶ó ±â´ëÇÑ´Ù. [Page 144] HTTP ±Ô¾àÀº Áö³­ 4³â°£ ºñ¾àÀûÀÎ ¹ßÀüÀ» ÇØ ¿Ô´Ù. ÀÌ ±Ô¾àÀº Å©°í È°µ¿ÀûÀÎ °³¹ßÀÚ °øµ¿Ã¼ ÀÇ ÇýÅÃÀ» ¸¹ÀÌ ¹Þ¾ÒÀ¸¸ç ÀÌ °øµ¿Ã¼°¡ HTTP ¹× ÀϹÝÀûÀÎ World Wide WebÀÇ ¼º°ø¿¡ ´ëÇÑ Âù »ç¸¦ µé¾î¾ß ÇÑ´Ù. Marc Andreessen, Robert Cailliau, Daniel W. Connolly, Bob Denny, John Franks, Jean-Francois Groff, Phillip M. Hallam-Baker, Hakon W. Lie, Ari Luotonen, Rob McCool, Lou Montulli, Dave Raggett, Tony Sanders, Marc VanHeyningen µî¿¡°Ô ÀÌ ±Ô¾àÀÇ Ã¹ Ãø¸éÀ» ±ÔÁ¤ÇÏ´Â µ¥ ³ë·ÂÇÑ µ¥ ´ëÇÏ¿© Ưº°ÇÑ °¨»ç¸¦ Ç¥ÇÑ´Ù. ÀÌ ¹®¼­´Â HTTP-WG¿¡ Âü°¡ÇÑ ¸¹Àº »ç¶÷µéÀÇ ÄÚ¸àÆ®¿¡¼­ ¸¹Àº ÇýÅÃÀ» ¹Þ¾Ò´Ù. ÀÌÀü¿¡ ¾ð±ÞÇÑ »ç¶÷µé ÀÌ¿Ü¿¡ ´ÙÀ½ÀÇ »ç¶÷µéÀÌ ÀÌ ±Ô°Ý¿¡ °øÇåÇß´Ù. Gary Adams Albert Lunde Harald Tveit Alvestrand John C. Mallery Keith Ball Jean-Philippe Martin-Flatin Brian Behlendorf Larry Masinter Paul Burchard Mitra Maurizio Codogno David Morris Mike Cowlishaw Gavin Nicol Roman Czyborra Bill Perry Michael A. Dolan Jeffrey Perry David J. Fiander Scott Powers Alan Freier Owen Rees Marc Hedlund Luigi Rizzo Greg Herlihy David Robinson Koen Holtman Marc Salomon Alex Hopmann Rich Salz Bob Jernigan Allan M. Schiffman Shel Kaphan Jim Seidman Rohit Khare Chuck Shotton John Klensin Eric W. Sink Martijn Koster Simon E. Spero Alexei Kosut Richard N. Taylor David M. Kristol Robert S. Thau Daniel LaLiberte Bill (BearHeart) Weinman Ben Laurie Francois Yergeau Paul J. Leach Mary Ellen Zurko Daniel DuBois ÀÌ ±Ô°ÝÀÇ ´ëºÎºÐÀÇ Ä³½Ã µðÀÚÀο¡ °üÇÑ ³»¿ëÀ̳ª ÇÁ¸®Á¨Å×À̼ÇÀº ´ÙÀ½ÀÇ »ç¶÷µéÀÌ ÁØ Á¦¾È ¹× ÄÚ¸àÆ®¿¡ ±âÃÊÇÏ¿´´Ù. - Shel Kaphan, Paul Leach, Koen Holtman, David Morris, Larry Masinter. [Page 145] ÀÌ ±Ô°ÝÀÇ ´ëºÎºÐÀÇ ¿µ¿ª¿¡ °üÇÑ °ÍÀº óÀ½ Ari LuotonenÀÌ ÇàÇÑ ¿¬±¸¿¡ ±âÃÊÇÏ°í ÀÖÀ¸¸ç Steve Zilles·ÎºÎÅÍ Ãß°¡ÀûÀÎ Á¤º¸¸¦ ±¸Çß´Ù. Palo AltoÀÇ "cave men"¿¡°Ô °¨»çÇÑ´Ù. ´ç½ÅÀº ´ç½ÅÀÌ ´©±¸ÀÎÁö ¾Ë°í ÀÖ´Ù. Jim Gettys (ÀÌ ¹®¼­ÀÇ ÇöÀç ÆíÁýÀå) Àº ÀÌÀü ÆíÁýÀåÀÎ Roy Fielding¿¡°Ô Ưº°È÷ °¨»çÇϸç John Klensin, Jeff Mogul, Paul Leach, Dave Kristol, Koen Holtman, John Franks, Alex Hopmann ¹× Larry Masinter¿¡°Ô ±×µéÀÇ µµ¿ò¿¡ °¨»çÇÑ´Ù. 17 Âü°í ¹®Çå [1] Alvestrand, H., "Tags for the identification of languages", RFC 1766, UNINETT, March 1995. [2] Anklesaria, F., McCahill, M., Lindner, P., Johnson, D., Torrey, D., and B. Alberti. "The Internet Gopher Protocol: (a distributed document search and retrieval protocol)", RFC 1436, University of Minnesota, March 1993. [3] Berners-Lee, T., "Universal Resource Identifiers in WWW", A Unifying Syntax for the Expression of Names and Addresses of Objects on the Network as used in the World-Wide Web", RFC 1630, CERN, June 1994. [4] Berners-Lee, T., Masinter, L., and M. McCahill, "Uniform Resource Locators (URL)", RFC 1738, CERN, Xerox PARC, University of Minnesota, December 1994. [5] Berners-Lee, T., and D. Connolly, "HyperText Markup Language Specification - 2.0", RFC 1866, MIT/LCS, November 1995. [6] Berners-Lee, T., Fielding, R., and H. Frystyk, "Hypertext Transfer Protocol -- HTTP/1.0.", RFC 1945 MIT/LCS, UC Irvine, May 1996. [7] Freed, N., and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies", RFC 2045, Innosoft, First Virtual, November 1996. [8] Braden, R., "Requirements for Internet hosts - application and support", STD 3, RFC 1123, IETF, October 1989. [9] Crocker, D., "Standard for the Format of ARPA Internet Text Messages", STD 11, RFC 822, UDEL, August 1982. [Page 146] [10] Davis, F., Kahle, B., Morris, H., Salem, J., Shen, T., Wang, R., Sui, J., and M. Grinbaum. "WAIS Interface Protocol Prototype Functional Specification", (v1.5), Thinking Machines Corporation, April 1990. [11] Fielding, R., "Relative Uniform Resource Locators", RFC 1808, UC Irvine, June 1995. [12] Horton, M., and R. Adams. "Standard for interchange of USENET messages", RFC 1036, AT&T Bell Laboratories, Center for Seismic Studies, December 1987. [13] Kantor, B., and P. Lapsley. "Network News Transfer Protocol." A Proposed Standard for the Stream-Based Transmission of News", RFC 977, UC San Diego, UC Berkeley, February 1986. [14] Moore, K., "MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text", RFC 2047, University of Tennessee, November 1996. [15] Nebel, E., and L. Masinter. "Form-based File Upload in HTML", RFC 1867, Xerox Corporation, November 1995. [16] Postel, J., "Simple Mail Transfer Protocol", STD 10, RFC 821, USC/ISI, August 1982. [17] Postel, J., "Media Type Registration Procedure", RFC 2048, USC/ISI, November 1996. [18] Postel, J., and J. Reynolds, "File Transfer Protocol (FTP)", STD 9, RFC 959, USC/ISI, October 1985. [19] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC 1700, USC/ISI, October 1994. [20] Sollins, K., and L. Masinter, "Functional Requirements for Uniform Resource Names", RFC 1737, MIT/LCS, Xerox Corporation, December 1994. [21] US-ASCII. Coded Character Set - 7-Bit American Standard Code for Information Interchange. Standard ANSI X3.4-1986, ANSI, 1986. [22] ISO-8859. International Standard -- Information Processing -- 8-bit Single-Byte Coded Graphic Character Sets -- Part 1: Latin alphabet No. 1, ISO 8859-1:1987. Part 2: Latin alphabet No. 2, ISO 8859-2, 1987. Part 3: Latin alphabet No. 3, ISO 8859-3, 1988. Part 4: Latin alphabet No. 4, ISO 8859-4, 1988. [Page 147] Part 5: Latin/Cyrillic alphabet, ISO 8859-5, 1988. Part 6: Latin/Arabic alphabet, ISO 8859-6, 1987. Part 7: Latin/Greek alphabet, ISO 8859-7, 1987. Part 8: Latin/Hebrew alphabet, ISO 8859-8, 1988. Part 9: Latin alphabet No. 5, ISO 8859-9, 1990. [23] Meyers, J., and M. Rose "The Content-MD5 Header Field", RFC 1864, Carnegie Mellon, Dover Beach Consulting, October, 1995. [24] Carpenter, B., and Y. Rekhter, "Renumbering Needs Work", RFC 1900, IAB, February 1996. [25] Deutsch, P., "GZIP file format specification version 4.3." RFC 1952, Aladdin Enterprises, May 1996. [26] Venkata N. Padmanabhan and Jeffrey C. Mogul. Improving HTTP Latency. Computer Networks and ISDN Systems, v. 28, pp. 25-35, Dec. 1995. Slightly revised version of paper in Proc. 2nd International WWW Conf. '94: Mosaic and the Web, Oct. 1994, which is available at http://www.ncsa.uiuc.edu/SDG/IT94/Proceedings/DDay/mogul/ HTTPLatency.html. [27] Joe Touch, John Heidemann, and Katia Obraczka, "Analysis of HTTP Performance", , USC/Information Sciences Institute, June 1996 [28] Mills, D., "Network Time Protocol, Version 3, Specification, Implementation and Analysis", RFC 1305, University of Delaware, March 1992. [29] Deutsch, P., "DEFLATE Compressed Data Format Specification version 1.3." RFC 1951, Aladdin Enterprises, May 1996. [30] Spero, S., "Analysis of HTTP Performance Problems" . [31] Deutsch, P., and J-L. Gailly, "ZLIB Compressed Data Format Specification version 3.3", RFC 1950, Aladdin Enterprises, Info-ZIP, May 1996. [32] Franks, J., Hallam-Baker, P., Hostetler, J., Leach, P., Luotonen, A., Sink, E., and L. Stewart, "An Extension to HTTP : Digest Access Authentication", RFC 2069, January 1997. [Page 148] 18 ÀúÀÚÀÇ ÁÖ¼Ò Roy T. Fielding Department of Information and Computer Science University of California Irvine, CA 92717-3425, USA Fax: +1 (714) 824-4056 EMail: fielding@ics.uci.edu Jim Gettys MIT Laboratory for Computer Science 545 Technology Square Cambridge, MA 02139, USA Fax: +1 (617) 258 8682 EMail: jg@w3.org Jeffrey C. Mogul Western Research Laboratory Digital Equipment Corporation 250 University Avenue Palo Alto, California, 94305, USA EMail: mogul@wrl.dec.com Henrik Frystyk Nielsen W3 Consortium MIT Laboratory for Computer Science 545 Technology Square Cambridge, MA 02139, USA Fax: +1 (617) 258 8682 EMail: frystyk@w3.org Tim Berners-Lee Director, W3 Consortium MIT Laboratory for Computer Science 545 Technology Square Cambridge, MA 02139, USA Fax: +1 (617) 258 8682 EMail: timbl@w3.org [Page 149] .19 ºÎ·Ï 19.1 Internet Media Type message/http HTTP/1.1 ±Ô¾àÀ» ±ÔÁ¤ÇÏ´Â °Í°ú ´õºÒ¾î ÀÌ ¹®¼­´Â Internet media type "message/http"¿¡ ´ëÇÑ ±Ô °ÝÀ¸·Îµµ »ç¿ëÇÑ´Ù. ´ÙÀ½ »çÇ×À» IANA¿¡ µî·ÏÇØ¾ß ÇÑ´Ù. Media Type name: message Media subtype name: http Required parameters: none Optional parameters: version, msgtype version: µ¿ºÀµÈ ¸Þ½ÃÁöÀÇ HTTP-Version ¹øÈ£(¿¹¸¦ µé¾î 1.1) °¡ ¾øÀ¸¸é ¹öÀüÀº º»¹®ÀÇ Ã¹ ¶óÀÎÀ¸·Î °áÁ¤ÇÑ´Ù. msgtype: ¸Þ½ÃÁö À¯Çü - "¿ä±¸" ¶Ç´Â "ÀÀ´ä". Ç¥½ÃµÇÁö ¾Ê¾ÒÀ¸¸é À¯ÇüÀº º»¹®ÀÇ Ã¹ ¶óÀÎÀ¸·Î °áÁ¤ÇÑ´Ù. Encoding considerations: "7bit", "8bit", ¶Ç´Â "binary" ¸¸ Çã¿ëµÈ´Ù. Security considerations: none 19.2 Internet Media Type multipart/byteranges HTTP¸Þ½ÃÁö°¡ º¹¼ö ¿µ¿ªÀÇ ³»¿ë(¿¹¸¦ µé¾î º¹¼öÀÇ ÁßøµÇÁö ¾Ê´Â ¿µ¿ª¿¡ ´ëÇÑ ¿ä±¸ÀÇ ÀÀ´ä) À» Æ÷ÇÔÇÏ°í ÀÖÀ» ¶§, ÀÌ°ÍÀº multipart MIME ¸Þ½ÃÁö·Î¼­ Àü¼ÛµÈ´Ù. ÀÌ·¯ÇÑ ¸ñÀûÀÇ multipart media typeÀ» "multipart/byteranges".¶ó°í ºÎ¸¥´Ù. Multipart/byteranges media typeÀº µÑ ¶Ç´Â ±× ÀÌ»óÀÇ ºÎºÐÀ» Æ÷ÇÔÇÏ¸ç °¢°¢ ÀÚ½ÅÀÇ Content-Type °ú Content-Range Çʵ带 °¡Áø´Ù. ÀÌ ºÎºÐµéÀº MIME °æ°è ÆĶó¹ÌÅÍ(boundary parameter)¸¦ ÀÌ¿ë ÇÏ¿© ±¸ºÐÇÑ´Ù. Media Type name: multipart Media subtype name: byteranges Required parameters: boundary Optional parameters: none Encoding considerations: "7bit", "8bit", ¶Ç´Â "binary" ¸¸ Çã¿ëµÈ´Ù. Security considerations: none [Page 150] ¿¹¸¦ µé¸é, HTTP/1.1 206 Partial content Date: Wed, 15 Nov 1995 06:25:24 GMT Last-modified: Wed, 15 Nov 1995 04:58:08 GMT Content-type: multipart/byteranges; boundary=THIS_STRING_SEPARATES --THIS_STRING_SEPARATES Content-type: application/pdf Content-range: bytes 500-999/8000 ...ù ¿µ¿ª... --THIS_STRING_SEPARATES Content-type: application/pdf Content-range: bytes 7000-7999/8000 ...µÎ ¹ø° ¿µ¿ª --THIS_STRING_SEPARATES-- 19.3 Tolerant Applications ÀÌ ¹®¼­°¡ HTTP/1.1 ¸Þ½ÃÁö¸¦ »ý¼ºÇÏ´Â µ¥ ÇÊ¿äÇÑ Á¶°ÇµéÀ» ¸í½ÃÇÏ°í ÀÖÁö¸¸ ¸ðµç ¾ÖÇø®ÄÉÀÌ ¼ÇÀÌ ÀÌ°ÍÀ» Á¤È®ÇÏ°Ô ±¸ÇöÇÏÁö´Â ¾ÊÀ» °ÍÀÌ´Ù. µû¶ó¼­ ¿ì¸®´Â ½ÇÁ¦ÀûÀÎ ¾ÖÇø®ÄÉÀ̼ÇÀÌ ÀÌ·¯ ÇÑ ÀÌÅ»(deviations)ÀÌ ¸íÈ®ÇÏ°Ô Çؼ®µÉ ¼ö ¾øÀ» ¶§´Â ¾ðÁ¦³ª ÀÌÅ»¿¡ ´ëÇØ °ü´ëÇÒ °ÍÀ» ÃßõÇÑ ´Ù. Ŭ¶óÀ̾ðÆ®´Â Status-LineÀ» ºÐ¼®ÇÏ´Â µ¥ °ü´ëÇÏ°í ¼­¹ö´Â Request-LineÀ» ºÐ¼®ÇÏ´Â µ¥ °ü´ëÇØ ¾ß ÇÑ´Ù. ƯÈ÷ µÑ ¸ðµÎ ÇÊµå »çÀÌ¿¡ ºñ·Ï ´Ü ÇϳªÀÇ SP¸¸ ÇÊ¿äÇÏ´Ù ÇÏ´õ¶óµµ SP ¹× HT ¹®ÀÚ ÀÇ ¼ö¿¡ °ü°è¾øÀÌ À̸¦ ¼ö¿ëÇÏ¿©¾ß ÇÑ´Ù. Message-headerÀÇ ¶óÀÎ Á¾°áÀÚ´Â ¿¬¼ÓÀûÀÎ CRLFÀÌ´Ù. ±×·¯³ª ¿ì¸®´Â ¾ÖÇø®ÄÉÀ̼ÇÀÌ ÀÌ·¯ÇÑ Çì´õ¸¦ ºÐ¼®ÇÒ ¶§ ´ÜÀÏ LF¸¦ ¶óÀÎ Á¾°áÀÚ·Î ÀνÄÇÏ°í ¾Õ¿¡ ÀÖ´Â CRÀ» ¹«½ÃÇÒ °ÍÀ» ÃßõÇÑ´Ù. Entity-bodyÀÇ ¹®ÀÚ ÁýÇÕÀº ÇØ´ç º»¹®¿¡ »ç¿ëµÈ ¹®ÀÚ ÁýÇÕÀÇ ÃÖÀú °øµ¿ ¸íĪ(lowest common denominator)À¸·Î ¶óº§À» ºÙ¿©¾ß Çϳª ¿¹¿ÜÀûÀ¸·Î US-ASCII ¶Ç´Â ISO-8859-1 ¶óº§¿¡´Â ¾Æ¹« °Í µµ ºÙÀÌÁö ¾Ê´Â °ÍÀÌ ÁÁ´Ù. ³¯Â¥ÀÇ ºÐ¼®°ú ÀÎÄÚµù ÇÊ¿ä Á¶°Ç¿¡ °üÇÑ Ãß°¡ ±ÔÄ¢ ¹× ³¯Â¥ ÀÎÄÚµù°ú °ü·ÃµÈ ´Ù¸¥ ÀáÀçÀû ¹® Á¦Á¡Àº ´ÙÀ½°ú °°´Ù. ? HTTP/1.1 Ŭ¶óÀ̾ðÆ®¿Í ij½Ã´Â ÇâÈÄ 50³â ÀÌÈÄ ÀÌ»óÀÇ RFC-850 ³¯Â¥´Â »ç½Ç»ó °ú°ÅÀÇ ³¯ Â¥¶ó°í °¡Á¤ÇØ¾ß ÇÑ´Ù.(ÀÌ°ÍÀÌ "2000 ³â" ¹®Á¦¸¦ ÇØ°áÇÏ´Â µ¥ µµ¿òÀ» ÁØ´Ù.) [Page 151] ? HTTP/1.1 ±¸Çö ¹æ½ÄÀº ³»ºÎÀûÀ¸·Î ÀûÀýÇÑ °ªº¸´Ù ÀÌÀüÀ¸·Î ºÐ¼®µÈ Expires ³¯Â¥¸¦ Ç¥½ÃÇÒ ¼ö´Â ÀÖÀ¸³ª Àý´ë·Î ÀûÀýÇÑ °ªº¸´Ù ÀÌÈÄ ³¯Â¥¸¦ Ç¥½ÃÇؼ­´Â ¾È µÈ´Ù. ? À¯È¿ÀÏ¿¡ °ü·ÃµÈ ¸ðµç °è»êÀº GMT·Î ÇØ¾ß ÇÑ´Ù. Áö¿ªÀûÀÎ ½Ã°£´ë´Â °æ°ú ½Ã°£À̳ª À¯È¿ ½Ã°£À» °è»êÇϰųª ºñ±³ÇÏ´Â µ¥ ¿µÇâÀ» ¹ÌÃļ­´Â ¾È µÈ´Ù. ? HTTP Çì´õ°¡ ºÎÁ¤È®ÇÏ°Ô GMT ÀÌ¿ÜÀÇ ½Ã°£ ´ë ³¯Â¥ °ªÀ» °¡Áö°í ÀÖ´Ù¸é °¡Àå Á¶½É½º·¯¿î ȯ»ê ¹æ¹ýÀ» »ç¿ëÇÏ¿© GMT·Î º¯È¯ÇÏ¿©¾ß ÇÑ´Ù. 19.4 HTTP ¿£ÅÍƼ¿Í MIME ¿£ÅÍƼÀÇ Â÷ÀÌÁ¡ HTTP/1.1Àº ÀÎÅÍ³Ý ¸ÞÀÏ(RFC 822) ¹× ´Ù¸ñÀû ÀÎÅÍ³Ý ¸ÞÀÏ È®Àå(Multipurpose Internet Mail Extensions (MIME ))À» À§ÇØ ±ÔÁ¤µÈ ¸¹Àº ±¸¼º¹°(construct)À» ÀÌ¿ëÇÏ¿© ¿£ÅÍƼ°¡ °ø°³µÈ ´Ù¾çÇÑ Ç¥½Ã ¹æ½Ä ¹× È®Àå °¡´ÉÇÑ ¸ÞÄ¿´ÏÁòÀ» ÅëÇÏ¿© Àü´ÞµÉ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ±×·¯³ª MIME [7] ¶ÇÇÑ ÀüÀÚ ¿ìÆí¿¡ ´ëÇØ ³íÀÇÇÏ°í ÀÖÀ¸¸ç HTTP¿¡´Â MIME¿¡¼­ ±â¼úµÈ °Í°ú »óÀÌÇÑ ±â´ÉÀÌ ¸î¸î ÀÖ´Ù. ÀÌ·¯ÇÑ Â÷ÀÌÁ¡Àº ¹ÙÀ̳ʸ® Á¢¼ÓÀÇ ¼º´ÉÀ» ÃÖÀûÈ­ÇÏ°í, »õ·Î¿î media typeÀ» »ç¿ëÇÏ´Â ÃÖ ´ëÇÑÀÇ ÀÚÀ¯¸¦ Çã¿ëÇϸç, ³¯Â¥ ºñ±³¸¦ ¿ëÀÌÇÏ°Ô Çϸç, ÀÌÀü HTTP ¼­¹ö ¹× Ŭ¶óÀ̾ðÆ®ÀÇ ÇàÅ ¸¦ ÀÎÁ¤ÇÒ ¼ö ÀÖµµ·Ï ÁÖÀÇ ±í°Ô ¼±ÅÃÇÏ¿´´Ù. ÀÌ ºÎ·ÏÀº HTTP¿Í MIMEÀÇ Â÷À̸¦ ±â¼úÇÏ°í ÀÖ´Ù. ÇÁ¶ô½Ã¿¡¼­ ¾ö°ÝÇÑ MIME ȯ°æÀ¸·ÎÀÇ °Ô ÀÌÆ®¿þÀÌ´Â ÀÌ·¯ÇÑ Â÷ÀÌÁ¡À» ÀνÄÇÏ°í ÇÊ¿äÇÏ´Ù¸é ÀûÀýÇÑ º¯È¯À» ÇØ ÁÖ¾î¾ß ÇÑ´Ù. ÇÁ¶ô½Ã¿Í MIME ȯ°æÀ¸·ÎºÎÅÍ HTTP·ÎÀÇ °ÔÀÌÆ®¿þÀÌ ¶ÇÇÑ ¾à°£ÀÇ º¯È¯ÀÌ ÇÊ¿äÇÒ ¼ö ÀÖÀ¸¹Ç·Î ÀÌ Â÷ÀÌ Á¡À» ÀÎÁöÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. 19.4.1 ±Ô¹üÀûÀÎ ÆûÀ¸·Î º¯È¯ MIMEÀº ÀÎÅÍ³Ý ¸ÞÀÏ ¿£ÅÍƼ¸¦ Àü¼ÛµÇ±â Àü¿¡ ±Ô¹üÀûÀÎ Æû(canonical form)À¸·Î º¯È¯ÇÒ °ÍÀ» ¿ä±¸ÇÑ´Ù. ÀÌ ¹®¼­ÀÇ 3.7.1ÀýÀº HTTP·Î Àü¼ÛµÉ ¶§ Æû¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â "text" media typeÀÇ subtypeÀ» ±â¼úÇÏ°í ÀÖ´Ù. MIME¿¡¼­ ÅؽºÆ® À¯ÇüÀÇ ³»¿ëÀº ÁٹٲÞÀ» CRLF·Î Ç¥½ÃÇØ¾ß ÇÏ°í ÁÙ¹Ù²Þ ÀÌ¿Ü´Â CR ¶Ç´Â LF¸¦ »ç¿ëÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù. HTTP´Â ¸Þ½ÃÁö°¡ HTTP¸¦ ÅëÇÏ¿© Àü´Þ µÉ ¶§ ÅؽºÆ® ³»¿ë ¾È¿¡¼­ ÁÙ ¹Ù²ÞÀ» Ç¥½ÃÇϱâ À§ÇØ CRLF, ´ÜÀÏ CR ¹× LF¸¦ Çã¿ëÇÑ´Ù. °¡´ÉÇÏ´Ù¸é ÇÁ¶ô½Ã¿¡¼­ ¾ö°ÝÇÑ MIME ȯ°æÀ¸·ÎÀÇ °ÔÀÌÆ®¿þÀÌ´Â 3.7.1Àý¿¡¼­ ±â¼úÇÑ text media type ³»ÀÇ ¸ðµç ÁٹٲÞÀ» CRLFÀÇ MIME Á¤±Ô ÆûÀ¸·Î Çؼ®ÇØ¾ß ÇÑ´Ù. ±×·¯³ª Content-Encoding ÀÌ ÀÖÀ¸¸é ÀÌ Çؼ®ÀÌ º¹ÀâÇØÁú ¼ö ÀÖÀ¸¸ç ¶ÇÇÑ HTTP°¡ multi-byte ¹®ÀÚ ÁýÇÕÀÇ °æ¿ìó·³ octets 13 ¹× 10À» CR ¹× LF¸¦ Ç¥½ÃÇϴµ¥ »ç¿ëÇÏÁö ¾Ê´Â ´Ù¸¥ ¹®ÀÚ Á¶ÇÕÀ» Çã¿ëÇÑ´Ù´Â »ç½Ç ¶§¹®¿¡ º¹ÀâÇØÁú ¼ö ÀÖ´Ù. [Page 152] 19.4.2 ³¯Â¥ Çü½ÄÀÇ º¯È¯ HTTP/1.1Àº ÇÑÁ¤µÈ ³¯ÀÚ Æ÷¸Ë(3.3.1)À» »ç¿ëÇÏ¿© ³¯Â¥ ºñ±³ °úÁ¤À» ´Ü¼øÈ­½ÃÄÑ ÁØ´Ù. ÇÁ¶ô½Ã ¿¡¼­ ´Ù¸¥ ±Ô¾àÀÇ °ÔÀÌÆ®¿þÀÌ´Â È®½ÇÇÏ°Ô HTTP/1.1 Æ÷¸Ë Áß Çϳª¸¦ µû¸£´Â ¸Þ½ÃÁö¿¡ Date Çì ´õ Çʵ尡 ÀÖ°í ÇÊ¿äÇÏ´Ù¸é ³¯Â¥¸¦ Àç±âÀÔÇϵµ·Ï ÇØ¾ß ÇÑ´Ù. 19.4.3 Content-Encoding ¼Ò°³ MIMEÀº HTTP/1.1ÀÇ Content-Encoding Çì´õ Çʵå¿Í µ¿µîÇÑ °³³äÀ» ¾Æ¹«°Íµµ Æ÷ÇÔÇÏ°í ÀÖÁö ¾Ê´Ù. ÀÌ°ÍÀÌ media type¿¡ º¯°æÀڷμ­ ÀÛµ¿Çϱ⠶§¹®¿¡ HTTP¿¡¼­ MIMEÀ» ÁؼöÇÏ´Â ±Ô¾àÀ¸ ·ÎÀÇ ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌ´Â ¹Ýµå½Ã Content-Encoding Çì´õ ÇʵåÀÇ °ªÀ» º¯°æÇϰųª ¸Þ½ÃÁö¸¦ Àü´ÞÇϱâ Àü¿¡ entity-body¸¦ Çص¶ÇØ¾ß ÇÑ´Ù. (ÀÎÅÍ³Ý ¸ÞÀÏÀ» À§ÇÑ ¸î¸î ½ÇÇèÀûÀÎ ÀÀ¿ëÇÁ·Î±×·¥ Àº media type ÆĶó¹ÌÅÍ ";conversions="¸¦ Content-Encoding°ú µ¿µîÇÑ ±â´É ¼öÇà À» À§ÇØ »ç¿ëÇÑ´Ù. ±×·¯³ª ÀÌ ÆĶó¹ÌÅÍ´Â MIMEÀÇ ÀϺκÐÀÌ ¾Æ´Ï´Ù.) 19.4.4 No Content-Transfer-Encoding HTTP´Â MIMEÀÇ Content-Transfer-Encoding (CTE) Çʵ带 »ç¿ëÇÏÁö ¾Ê´Â´Ù. HTTP¿¡¼­ MIME À» ÁؼöÇÏ´Â ±Ô¾àÀ¸·ÎÀÇ ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌ´Â ÀÀ´ä ¸Þ½ÃÁö¸¦ HTTP Ŭ¶óÀ̾ðÆ®¿¡°Ô ¹è´ÞÇÏ ±â Àü¿¡ ¹Ýµå½Ã ¸ðµç non-identity CTE ("quoted-printable" ¶Ç´Â "base64") ÀÎÄÚµùÀ» Á¦°ÅÇØ¾ß ÇÑ´Ù. HTTP¿¡¼­ MIMEÀ» ÁؼöÇÏ´Â ±Ô¾àÀ¸·ÎÀÇ ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌ´Â ¸Þ½ÃÁö°¡ ÇØ´ç ±Ô¾à¿¡¼­ ¾È ÀüÇÏ°Ô Àü¼ÛµÉ ¼ö ÀÖµµ·Ï, ¶ÇÇÑ Á¤È®ÇÑ Æ÷¸Ë°ú ÀÎÄÚµùÀÌ µÇµµ·Ï È®½ÇÇÏ°Ô ÇØ¾ß ÇÑ´Ù. ¿©±â¼­ " ¾ÈÀüÇÑ Àü¼Û"Àº »ç¿ëµÇ°í ÀÖ´Â ±Ô¾àÀÇ Á¦ÇÑ »çÇ׿¡ ÀÇÇØ ±ÔÁ¤µÈ´Ù. ÀÌ·¯ÇÑ ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þ ÀÌ´Â ±×·¸°Ô ÇÏ´Â °ÍÀÌ ¸ñÀûÁö ±Ô¾àÀ¸·Î ¾ÈÀüÇÏ°Ô Àü¼ÛÇÒ °¡´É¼ºÀ» ³ô¿©ÁØ´Ù¸é µ¥ÀÌŸ¿¡ ÀûÀý ÇÑ Content-Transfer-Encoding ¶óº§À» ºÙ¾î¾ß ÇÑ´Ù. 19.4.5 Multipart Body-PartÀÇ HTTP Çì´õ Çʵå MIME¿¡¼­ multipart body-partsÀÇ °ÅÀÇ ¸ðµç Çì´õ Çʵå´Â Çʵå À̸§ÀÌ "Content-"·Î ½ÃÀÛÇÏÁö ¾Ê´Â ÇÑ º¸Åë ¹«½ÃµÈ´Ù. HTTP/1.1¿¡¼­´Â multipart body-parts°¡ ÇØ´ç ºÎºÐÀÇ Àǹ̿¡ »ó´çÈ÷ Áß ¿äÇÑ HTTP Çì´õ Çʵ带 Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. [Page 153] 19.4.6 Transfer-Encoding ¼Ò°³ HTTP/1.1Àº Transfer-Encoding Çì´õ Çʵå(14.40 Àý)¸¦ ¼Ò°³ÇÏ°í ÀÖ´Ù. HTTP/1.1Àº ÇÁ¶ô½Ã/°ÔÀÌÆ® ¿þÀÌ°¡ MIMEÀ» ÁؼöÇÏ´Â ±Ô¾àÀ» ÅëÇÏ¿© ¸Þ½ÃÁö¸¦ Àü´ÞÇϱâ Àü¿¡ ¸ðµç Àü¼Û ÄÚµùÀ» Á¦°ÅÇØ¾ß ¸¸ ÇÑ´Ù´Â Á¡À» ¼Ò°³ÇÏ°í ÀÖ´Ù. µ¢¾î¸® Àü¼Û ÄÚµù(3.6 Àý)À» Çص¶ÇÏ´Â ÀýÂ÷¸¦ ´ÙÀ½°ú °°ÀÌ À¯»ç ÄÚµå(pseudo-code) Çü½ÄÀ¸·Î Ç¥ ÇöÇÒ ¼ö ÀÖ´Ù. length := 0 read chunk-size, chunk-ext (if any) and CRLF while (chunk-size > 0) { read chunk-data and CRLF append chunk-data to entity-body length := length + chunk-size read chunk-size and CRLF } read entity-header while (entity-header not empty) { append entity-header to existing header fields read entity-header } Content-Length := length Remove "chunked" from Transfer-Encoding 19.4.7 MIME-Version HTTP´Â MIMEÀ» ÁؼöÇÏ´Â ±Ô¾àÀÌ ¾Æ´Ï´Ù.(ºÎ·Ï 19.4 Àý ÂüÁ¶). ±×·¯³ª HTTP/1.1 ¸Þ½ÃÁö´Â ´Ü ÀÏ MIME-Version general-header Çʵ带 Æ÷ÇÔÇÏ¿© ¸Þ½ÃÁö¸¦ »ý¼ºÇϱâ À§ÇÏ¿© ¾î¶² MIME ±Ô¾à ¹öÀüÀ» »ç¿ëÇß´ÂÁö Ç¥½ÃÇÒ ¼ö ÀÖ´Ù. MIME-Version Çì´õ ÇʵåÀÇ »ç¿ëÀº ¸Þ½ÃÁö°¡ MIME ±Ô¾à¿¡ ÀüÀûÀ¸·Î µû¸£°í ÀÖ´Ù´Â °ÍÀ» Ç¥½ÃÇÑ´Ù. ÇÁ¶ô½Ã/°ÔÀÌÆ®¿þÀÌ´Â HTTP ¸Þ½ÃÁö¸¦ ¾ö°ÝÇÑ MIME ȯ°æÀ¸·Î Àü¼ÛÇÒ ¶§ ¿ÏÀüÇÑ ±Ô¾à Áؼö(°¡´É ÇÏ´Ù¸é)¸¦ È®½ÇÇÏ°Ô ÇÒ Ã¥ÀÓÀÌ ÀÖ´Ù. MIME-Version = "MIME-Version" ":" 1*DIGIT "." 1*DIGIT MIME ¹öÀü "1.0"ÀÌ HTTP/1.1¿¡¼­ »ç¿ëÇÒ ¶§ ±âº» °ªÀÌ´Ù. ±×·¯³ª HTTP/1.1 ¸Þ½ÃÁö ºÐ¼® ¹× Àǹ̴ MIME ±Ô°ÝÀÌ ¾Æ´Ñ ÀÌ ¹®¼­¿¡ ±ÔÁ¤µÇ¾î ÀÖ´Ù. 19.5 HTTP/1.0 ÀÌÈÄ º¯°æ »çÇ× ÀÌ Àý¿¡¼­ HTTP/1.0°ú HTTP/1.1 »çÀÌÀÇ ÁÖ¿ä Â÷ÀÌÁ¡À» ¿ä¾àÇÏ¿´´Ù. [Page 154] 19.5.1 º¹¼öÀÇ È¨À» °¡Áø À¥ ¼­¹ö¸¦ ´Ü¼øÇÏ°Ô Çϱâ À§ÇÑ º¯°æ »çÇ× ¹× IP ÁÖ¼Ò º¸Á¸ Ŭ¶óÀ̾ðÆ®¿Í ¼­¹ö°¡ Host request-header¸¦ Áö¿øÇØ¾ß ÇÑ´Ù´Â ¿ä±¸ Á¶°Ç ¶§¹®¿¡ Host request- header(14.23Àý)°¡ ºüÁ³À¸¸é ¿¡·¯¸¦ ¹ß»ý½ÃŲ´Ù. ¶ÇÇÑ Àý´ë URI(5.1.2 Àý)´Â ÀÌ ±Ô°ÝÀÌ ±ÔÁ¤ÇÑ º¯°æ »çÇ× Áß °¡Àå Áß¿äÇÑ °ÍÀÌ´Ù. ÀÌÀü HTTP/1.0 Ŭ¶óÀ̾ðÆ®´Â IP ÁÖ¼Ò¿Í ¼­¹öÀÇ ÀÏ´ëÀÏ °ü°è(one-to-one relationship)¸¦ °¡Á¤Çß´Ù. ¿ä±¸¸¦ ¹ß¼ÛÇÏ°íÀÚ ÇÏ´Â ¼­¹ö¿Í ¿ä±¸°¡ ¹ß¼ÛµÈ IP ÁÖ¼Ò¸¦ ±¸º°ÇÒ È®¸³µÈ ¸ÞÄ¿´ÏÁòÀÌ ¾ø¾ú´Ù. À§¿¡ ´ë·«ÀûÀ¸·Î ¼³¸íÇÑ º¯°æ »çÇ×Àº ÀÎÅͳÝÀÌ, ´ÜÀÏ È£½ºÆ®¿¡ º¹¼öÀÇ IP ÁÖ¼Ò¸¦ ÇÒ´çÇÏ´Â °Í ÀÌ ½É°¢ÇÑ ¹®Á¦¸¦ ¹ß»ý½ÃÄ×´ø ÀÌÀü HTTP Ŭ¶óÀ̾ðÆ®°¡ ´õ ÀÌ»ó º¸ÆíÀûÀÎ °ÍÀÌ ¾Æ´Ò ¶§, ´ÜÀÏ IP ÁÖ¼Ò°¡ º¹¼öÀÇ À¥ »çÀÌÆ®¸¦ Áö¿øÇÏ¿© ´ë·®ÀÇ À¥ ¼­¹ö ¿î¿µÀ» ´Ü¼øÇÏ°Ô ÇÒ °ÍÀÌ´Ù. ÀÎÅÍ³Ý Àº ¶ÇÇÑ ´ÜÁö ·çÆ® ¼öÁØ HTTP URl¿¡ »ç¿ëÇÒ Æ¯¼ö ¿ëµµÀÇ µµ¸ÞÀÎ À̸§À» »ç¿ëÇÒ ¸ñÀûÀ¸·Î ÇÒ ´çµÇ¾ú´ø IP ÁÖ¼Ò¸¦ º¹±¸ÇÒ ¼ö ÀÖ°Ô µÉ °ÍÀÌ´Ù. À¥ÀÇ ¼ºÀå ¼Óµµ ¹× ÀÌ¹Ì ¹èÄ¡µÈ ¼­¹öÀÇ ¼ýÀÚ ¸¦ °¨¾ÈÇÒ ¶§ HTTPÀÇ ¸ðµç ±¸Çö ¹æ½Ä(±âÁ¸ HTTP/1.0 ¾ÖÇø®ÄÉÀÌ¼Ç °»½ÅÀ» Æ÷ÇÔÇÏ¿©)ÀÌ ´ÙÀ½ ÀÇ ÇÊ¿ä Á¶°ÇÀ» Á¤È®ÇÏ°Ô ±¸ÇöÇÏ´Â °ÍÀÌ ¸Å¿ì Áß¿äÇÏ´Ù. ? Ŭ¶óÀ̾ðÆ®¿Í ¼­¹ö ¸ðµå ¹Ýµå½Ã Host request-header¸¦ Áö¿øÇØ¾ß ÇÑ´Ù. ? HTTP/1.1 ¿ä±¸¿¡´Â ¹Ýµå½Ã Host request-header¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. ? HTTP/1.1 ¿ä±¸°¡ Host request-header¸¦ Æ÷ÇÔÇÏ°í ÀÖÁö ¾ÊÀ¸¸é ¹Ýµå½Ã ¿¡·¯ ¸Þ½ÃÁö400 (Bad Request)À» ¹ß»ý½ÃÄÑ¾ß ÇÑ´Ù. ? ¼­¹ö´Â ¹Ýµå½Ã Àý´ë URI¸¦ ¼ö¿ëÇØ¾ß ÇÑ´Ù. [Page 155] 19.6 Ãß°¡ ±â´É ÀÌ ºÎ·ÏÀº ±âÁ¸ HTTP ±¸Çö ¹æ½ÄÀÌ »ç¿ëÇÏ°í ÀÖ´Â ±Ô¾à ¿ä¼Ò¸¦ ¹®¼­È­ÇÏ°í ÀÖÁö¸¸ ´ëºÎºÐÀÇ HTTP/1.1 ¾ÖÇø®ÄÉÀÌ¼Ç Àü¹Ý¿¡ °ÉÃÄ ÀÏ°ü¼º ÀÖ°í Á¤È®ÇÑ °ÍÀº ¾Æ´Ï´Ù. ±¸ÇöÀÚ°¡ ÀÌ·¯ÇÑ ±â´É À» ÀÎÁöÇØ¾ß ÇÏÁö¸¸ ´Ù¸¥ HTTP/1.1 ¾ÖÇø®ÄÉÀÌ¼Ç ³»¿¡¼­ÀÇ ÀÌ·¯ÇÑ ±â´ÉÀÇ Á¸À糪 »óÈ£ ¿î¿µ¼º (interoperability)¿¡ ÀÇÁ¸ÇÒ ¼ö´Â ¾ø´Ù. À̰͵é Áß ¸î¸îÀº Á¦¾ÈµÈ ½ÇÇèÀû ±â´ÉÀ» ±â¼úÇÏ°í ÀÖÀ¸ ¸ç ´Ù¸¥ °ÍµéÀº ÇöÀç ±âº» HTTP/1.1 ±Ô°Ý¿¡ ¾ð±ÞµÇ¾úÁö¸¸ ½ÇÇèÀûÀ¸·Î ¹èÆ÷ÇßÀ» ¶§ ºÎÁ·ÇÑ °Í À¸·Î ¹ß°ßµÈ ±â´ÉÀ» ±â¼úÇÏ°í ÀÖ´Ù. 19.6.1 Ãß°¡ÀûÀÎ ¿ä±¸ method 19.6.1.1 PATCH PATCH method ´Â ¿£ÅÍƼ°¡ Request-URI°¡ ½Äº°ÇÑ ÀÚ¿øÀÇ ¿ø·¡ ¹öÀü°ú PATCH ÀÛ¾÷À» Àû¿ëÇß À» ¶§ Èñ¸ÁÇÏ´Â ÀÚ¿øÀÇ Â÷ÀÌÁ¡ ¸ñ·ÏÀ» Æ÷ÇÔÇÏ°í ÀÖ´Ù´Â °ÍÀ» Á¦¿ÜÇÏ°í´Â PUT°ú À¯»çÇÏ´Ù. Â÷ ÀÌÁ¡ ¸ñ·ÏÀº ¿£ÅÍƼÀÇ media type(¿¹¸¦ µé¾î "application/diff")¿¡¼­ ±ÔÁ¤ÇÑ Æ÷¸ËÀÌ¸ç ¼­¹ö°¡ ÀÚ ¿øÀÇ ¿ø·¡ ¹öÀüÀ» Èñ¸ÁÇÏ´Â ¹öÀüÀ¸·Î º¯È­ÇÏ´Â µ¥ ÇÊ¿äÇÑ º¯°æ »çÇ×À» Àç»ý¼ºÇÒ ¼ö ÀÖµµ·Ï ÇÏ ´Â ÃæºÐÇÑ Á¤º¸¸¦ ¹Ýµå½Ã Æ÷ÇÔÇØ¾ß ÇÑ´Ù. ¿ä±¸°¡ ij½Ã¸¦ Åë°úÇϰųª Request-URI°¡ ÇöÀç ij½ÃµÈ ¿£ÅÍƼ¸¦ ½Äº°Çϸé ÇØ´ç ¿£ÅÍƼ´Â ¹Ýµå ½Ã ij½Ã¿¡¼­ »èÁ¦ÇØ¾ß ÇÑ´Ù. ÀÌ method¿¡ ´ëÇÑ ÀÀ´äÀ» ij½ÃÇÒ ¼ö ¾ø´Ù. ÆÐÄ¡ÇÑ ÀÚ¿øÀ» ¹èÄ¡ÇÏ´Â ¹æ¹ý ¹× ¼±ÇàÀÚ¿¡ ¹ÌÄ¡´Â ¿µÇâ¿¡ ´ëÇÑ ½ÇÁ¦ÀûÀÎ method´Â ÀüÀûÀ¸·Î ¿ø¼­¹ö°¡ ±ÔÁ¤ÇÑ´Ù. ¸¸¾à ÆÐÄ¡ÇÏ°í ÀÖ´Â ÀÚ¿øÀÇ ¿ø·¡ ¹öÀüÀÌ Content-Version Çì´õ Çʵ带 Æ÷ÇÔ ÇÏ°í ÀÖ´Ù¸é ¿ä±¸ ¿£ÅÍƼ´Â ¹Ýµå½Ã ¿ø·¡ Content-Version Çì´õ Çʵ忡 »óÀÀÇÏ´Â Derived-From Çì´õ Çʵ带 Æ÷ÇÔÇØ¾ß ÇÑ´Ù. ¾ÖÇø®ÄÉÀ̼ÇÀº ÀÌ·¯ÇÑ Çʵ带 ¹öÀü ºÎ¿© °ü°è ¹× ¹öÀü Ãæµ¹À» ÇØ°áÇÏ´Â µ¥ »ç¿ëÇϵµ·Ï ÃßõÇÑ´Ù. PATCH ¿ä±¸´Â 8.2Àý¿¡¼­ ¼³Á¤ÇÑ ¸Þ½ÃÁö Àü¼Û ÇÊ¿ä Á¶°Ç¿¡ µû¶ó¾ß ÇÑ´Ù. PATCH¸¦ ±¸ÇöÇϴ ij½Ã´Â 13.10 Àý PUT¿¡¼­ ±ÔÁ¤ÇÑ ´ë·Î ij½ÃµÈ ÀÀ´äÀ» ¹«È¿È­ÇØ¾ß ÇÑ´Ù. 19.6.1.2 LINK LINK method ´Â Request-URI°¡ ½Äº°ÇÏ´Â ±âÁ¸ ÀÚ¿ø°ú ´Ù¸¥ ±âÁ¸ ÀÚ¿øÀÇ Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ Link °ü°è¸¦ È®¸³ÇÑ´Ù. [Page 156] LINK¿Í ÀÚ¿ø »çÀÌÀÇ ¸µÅ©¸¦ ¼³Á¤ÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â ´Ù¸¥ method¿ÍÀÇ Â÷ÀÌÁ¡Àº LINK method ´Â ¾î¶°ÇÑ message-bodyµµ ¿ä±¸¿Í ÇÔ²² ¹ß¼ÛÇÏÁö ¸øÇϵµ·Ï ÇÑ´Ù´Â °Í°ú Á÷Á¢ÀûÀ¸·Î »õ·Î¿î ÀÚ ¿øÀ» »ý¼ºÇÏÁö ¾Ê´Â´Ù´Â °ÍÀÌ´Ù. ¿ä±¸°¡ ij½Ã¸¦ Åë°úÇϰųª Request-URI°¡ ÇöÀç ij½ÃµÈ ¿£ÅÍƼ¸¦ ½Äº°Çϸé ÇØ´ç ¿£ÅÍƼ´Â ¹Ýµå ½Ã ij½Ã¿¡¼­ »èÁ¦ÇØ¾ß ÇÑ´Ù. ÀÌ method¿¡ ´ëÇÑ ÀÀ´äÀ» ij½ÃÇÒ ¼ö ¾ø´Ù. LINK¸¦ ±¸ÇöÇϴ ij½Ã´Â 13.10 Àý PUT¿¡¼­ ±ÔÁ¤ÇÑ ´ë·Î ij½ÃµÈ ÀÀ´äÀ» ¹«È¿È­ÇØ¾ß ÇÑ´Ù. 19.6.1.3 UNLINK UNLINK method ´Â Request-URI°¡ ½Äº°ÇÏ´Â ±âÁ¸ ÀÚ¿ø°ú ´Ù¸¥ ±âÁ¸ ÀÚ¿øÀÇ Çϳª ¶Ç´Â ±× ÀÌ »óÀÇ Link °ü°è¸¦ »èÁ¦ÇÑ´Ù. ÀÌ·¯ÇÑ °ü°è´Â LINK¸¦ ÀÌ¿ëÇϰųª Link Çì´õ¸¦ Áö¿øÇÏ´Â ´Ù¸¥ method¿¡ ÀÇÇÏ¿© È®¸³µÇ¾úÀ» ¼ö ÀÖ´Ù. ÀÚ¿ø¿¡ ´ëÇÑ ¸µÅ©¸¦ »èÁ¦ÇÏ´Â °ÍÀº ÀÚ¿øÀÌ ´õ ÀÌ»ó Á¸ ÀçÇÏÁö ¾Ê´Â´Ù°Å³ª ÇâÈÄ ÂüÁ¶¸¦ À§ÇØ Á¢±ÙÇÒ ¼ö ¾ø´Ù´Â °ÍÀ» ÀǹÌÇÏ´Â °ÍÀº ¾Æ´Ï´Ù. ¿ä±¸°¡ ij½Ã¸¦ Åë°úÇϰųª Request-URI°¡ ÇöÀç ij½ÃµÈ ¿£ÅÍƼ¸¦ ½Äº°Çϸé ÇØ´ç ¿£ÅÍƼ´Â ¹Ýµå ½Ã ij½Ã¿¡¼­ »èÁ¦ÇØ¾ß ÇÑ´Ù. ÀÌ method¿¡ ´ëÇÑ ÀÀ´äÀ» ij½ÃÇÒ ¼ö ¾ø´Ù. UNLINK¸¦ ±¸ÇöÇϴ ij½Ã´Â 13.10 Àý PUT¿¡¼­ ±ÔÁ¤ÇÑ ´ë·Î ij½ÃµÈ ÀÀ´äÀ» ¹«È¿È­ÇØ¾ß ÇÑ´Ù. 19.6.2 Additional Header Field Definitions 19.6.2.1 Alternates Alternates response-header Çʵ带 ¿ø¼­¹ö°¡ Ŭ¶óÀ̾ðÆ®¿¡°Ô ¿ä±¸ ¹ÞÀº ÀÚ¿øÀ» Ç¥½ÃÇÒ ¼ö ÀÖ´Â ´Ù¸¥ ¹æ½ÄÀ» °¢°¢ÀÇ µ¶Æ¯ÇÑ ¼Ó¼º°ú ÇÔ²² ¾Ë·Á ÁÖ´Â ¼ö´ÜÀ¸·Î Á¦ÀÇÇÏ¿´´Ù. ÀÌ·¸°Ô ÇÏ¿© »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ »ç¿ëÀÚÀÇ Èñ¸Á »çÇ׿¡ ´õ ÀûÇÕÇÑ(12Àå¿¡¼­ ¿¡ÀÌÀüÆ®°¡ ÁÖµµÇÏ´Â Çù»ó(agent-driven negotiation)À¸·Î ±â¼úµÇ¾ú´Ù.) ´Ù¸¥ Ç¥½Ã ¹æ½ÄÀ» °è¼ÓÀûÀ¸·Î ¼±ÅÃÇÒ ¼ö ÀÖ´Â ½Å·ÚÇÒ ¼ö ÀÖ´Â ¹æ ¾ÈÀ» Á¦°øÇÑ´Ù. [Page 157] Alternates Çì´õ Çʵå´Â ÀÀ´äÀÇ Çؼ®À̳ª »ç¿ëÇÒ ¼ö Àִ ǥ½Ã ¹æ¹ý¿¡ ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê°í ¸Þ ½ÃÁö¿¡ µÑ ´Ù Á¸ÀçÇÒ ¼ö ÀÖ´Ù´Â Á¡¿¡¼­ Vary Çì´õ Çʵå¿Í Á÷±³ÇÏ°í ÀÖ´Ù. Alternates°¡ Vary ÇÊ µå°¡ Á¦°øÇÏ´Â À¯Çü ¹× ¾ð¾î¿Í °°ÀÌ °øµ¿ Â÷¿ø(common dimensions)¿¡ °ÉÃÄ º¯ÇüµÉ ¼ö ÀÖ´Â ÀÚ ¿ø¿¡ °üÇÑ ¼­¹ö ÁÖµµ Çù»ó(server-driven negotiation)¿¡ ´ëÇØ »ó´çÇÑ °³¼±À» ÇÒ ¼ö ÀÖÀ» °ÍÀ¸·Î ±â´ëµÇ°í ÀÖ´Ù. Alternates Çì´õ Çʵå´Â ÇâÈÄ ±Ô°Ý¿¡¼­ ±ÔÁ¤µÉ ¿¹Á¤ÀÌ´Ù. 19.6.2.2 Content-Version Content-Version entity-header Çʵå´Â ÁøÇàµÇ°í ÀÖ´Â ¿£ÅÍƼÀÇ Çؼ®¿¡ °ü·ÃµÈ ¹öÀü ű׸¦ ±ÔÁ¤ ÇÑ´Ù. 19.6.2.3 Àý¿¡¼­ ±â¼úÇÑ Derived-From Çʵå¿Í ´õºÒ¾î ÀÌ°ÍÀº »ç¶÷µéÀÌ ÀÛ¾÷À» ¹Ýº¹ÀûÀÎ Àý Â÷·Î µ¿½Ã¿¡ ÁøÇàÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ÀÌ Çʵå´Â ƯÁ¤ ÀÛ¾÷ÀÇ ÁøÇàÀÌ ÆÄ»ýµÈ ÀÛ¾÷À̳ª ´Ù¸¥ Ç¥ Çö ¹æ¹ý¿¡ ÀÇÇÑ Çؼ®ÀÌ ¾Æ´Ñ ´ÜÀÏ °æ·Î¸¦ µû¸¦ ¼ö ÀÖµµ·Ï ÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. Content-Version = "Content-Version" ":" quoted-string Content-Version ÇʵåÀÇ »ç¿ë ¿¹´Â ´ÙÀ½°ú °°´Ù. Content-Version: "2.1.2" Content-Version: "Fred 19950116-12:26:48" Content-Version: "2.5a4-omega7" 19.6.2.3 Derived-From Derived-From entity-header Çʵå´Â ¹ß¼ÛÃøÀÌ º¯°æÇϱâ Àü »óÅ¿¡¼­ ¿£ÅÍƼ°¡ ÆÄ»ýµÈ ÀÚ¿øÀÇ ¹ö Àü ű׸¦ Ç¥½ÃÇϱâ À§ÇØ »ç¿ëÇÑ´Ù. ÀÌ Çʵå´Â ¶ÇÇÑ ÀÚ¿ø¿¡ ´ëÇÑ °è¼ÓÀûÀÎ º¯°æÀ», ƯÈ÷ ÀÌ·¯ ÇÑ º¯°æÀÌ º¹¼öÀÇ ÀÚ¿ø°ú º´ÇàÇÏ¿© ÀÌ·ç¾î Áú ¶§ È¥ÇÕÇÏ´Â °úÁ¤À» °ü¸®ÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. Derived-From = "Derived-From" ":" quoted-string ÀÌ ÇʵåÀÇ »ç¿ë ¿¹´Â, Derived-From: "2.1.1" PUT ¹× PATCH ¿ä±¸¿¡´Â ¹ß¼ÛµÇ´Â ¿£ÅÍƼ°¡ ÀÌÀü¿¡ µ¿ÀÏÇÑ URI¿¡¼­ Á¶È¸µÈ °ÍÀÌ°í ¸¶Áö¸· À¸·Î Á¶È¸ÇßÀ» ¶§ Content-Version Çì´õ¸¦ Æ÷ÇÔÇÏ°í ÀÖ¾ú´Ù¸é Derived-From Çʵ尡 ÇÊ¿äÇÏ´Ù. [Page 158] 19.6.2.4 Link Link entity-header Çʵå´Â º¸Åë ¿ä±¸ ¹ÞÀº ÀÚ¿ø°ú ´Ù¸¥ ÀÚ¿ø°úÀÇ °ü°èÀÎ µÎ ÀÚ¿ø°úÀÇ °ü°è¸¦ ±â ¼úÇÏ´Â ¼ö´ÜÀ» Á¦°øÇÑ´Ù. ¿£ÅÍƼ´Â º¹¼öÀÇ Link °ªÀ» Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. ¸ÞŸ Á¤º¸ ¼öÁØÀÇ ¸µÅ© ´Â ´ë°³ °è¼­Àû ±¸Á¶³ª Ç×ÇØ °æ·Î(navigation paths)¿Í °°Àº °ü°è¸¦ Ç¥½ÃÇÑ´Ù. Link Çʵå´Â ÀÇ¹Ì »ó HTML.[5]ÀÇ ¿ä¼Ò¿Í µ¿µîÇÏ´Ù. Link = "Link" ":" #("<" URI ">" *( ";" link-param ) link-param = ( ( "rel" "=" relationship ) | ( "rev" "=" relationship ) | ( "title" "=" quoted-string ) | ( "anchor" "=" <"> URI <"> ) | ( link-extension ) ) link-extension = token [ "=" ( token | quoted-string ) ] relationship = sgml-name | ( <"> sgml-name *( SP sgml-name) <"> ) sgml-name = ALPHA *( ALPHA | DIGIT | "." | "-" ) °ü°è °ªÀº ´ë¼Ò¹®ÀÚ¸¦ ±¸º°Çϸç sgml-name ±¸¹®¹ýÀÇ Á¦ÇÑ »çÇ× ³»¿¡¼­ È®ÀåµÉ ¼ö ÀÖ´Ù. "title" ÆĶó¹ÌÅÍ´Â ¸µÅ©ÀÇ ¸ñÀûÁö¸¦ Ç¥½ÃÇÏ´Â µ¥ »ç¿ëÇÏ¿© »ç¶÷ÀÌ ÀÐÀ» ¼ö ÀÖ´Â ¸Þ´º¿¡¼­ ½Äº°ÀÚ·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¾ÞÄ¿ ÆĶó¹ÌÅÍ(anchor parameter)´Â ÀÌ ÀÚ¿ø ¶Ç´Â Á¦ »ïÀÇ ÀÚ¿øÀÇ ÇÑ ´ÜÆí°ú °° ÀÌ ÇöÀçÀÇ Àüü ÀÚ¿øÀÌ ¾Æ´Ñ ¼Ò½º ¾ÞÄ¿(source anchor)¸¦ Ç¥½ÃÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. »ç¿ë ¿¹¸¦ º¸¸é, Link: ; rel="Previous" Link: ; rev="Made"; title="Tim Berners-Lee" ù ¹ø° ¿¹´Â chapter2°¡ ³í¸®Àû ¿îÇ× °æ·Î¿¡¼­ ÀÌ ÀÚ¿øÀÇ ÀÌÀü °ÍÀÓÀ» Ç¥½ÃÇÑ´Ù. µÎ ¹ø° ¿¹ ´Â ÀÚ¿øÀ» »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ¸¸µå´Â Ã¥ÀÓÀ» Áø »ç¶÷À» ÁÖ¾îÁø ÀüÀÚ¿ìÆí ÁÖ¼Ò·Î ½Äº°ÇÑ´Ù´Â °Í À» Ç¥½ÃÇÑ´Ù. 19.6.2.5 URI ÀÌ ±Ô°ÝÀÇ ÀÌÀü ¹öÀü¿¡¼­ URI Çì´õ Çʵå´Â ±âÁ¸ Location, Content-Location, Vary Çì´õ ÇÊµå ¹× ÇâÈÄ AlternatesÀÇ °áÇÕü·Î »ç¿ëÇß¾ú´Ù. [Page 159] ÀÌ ÇʵåÀÇ ÁÖ¿ä ¸ñÀûÀº À̸§ ¹× ¹Ì·¯ À§Ä¡(name and mirror location)¸¦ Æ÷ÇÔÇÏ´Â ÀÚ¿øÀÇ Ãß°¡ URI ¸ñ·ÏÀ» Æ÷ÇÔÇÏ´Â °ÍÀ̾ú´Ù. ±×·¯³ª ÀÌ ´ÜÀÏ ÇÊµå ³»¿¡ ¸¹Àº º°µµÀÇ ±â´ÉÀ» °áÇÕÇÏ´Â °ÍÀº ÀÌ·¯ÇÑ ±â´ÉÀ» ÀÏ°ü¼º ÀÖ°í Á¤È®ÇÏ°Ô ±¸ÇöÇÏ´Â µ¥ Àå¾Ö¹°ÀÌ µÇ°í ÀÖ´Ù´Â °ÍÀÌ ¸í¹éÇØÁ³´Ù. ´õ ´õ¿í ¿ì¸®´Â À̸§ ¹× ¹Ì·¯ À§Ä¡ÀÇ ½Äº°Àº Link Çì´õ Çʵ带 ÅëÇÏ¿© ´õ Àß ¼öÇàÇÒ ¼ö ÀÖ´Ù°í ¹Ï´Â´Ù. µû¶ó¼­ URI Çì´õ Çʵå´Â ±×·¯ÇÑ Çʵ带 ¼±È£ÇÏ¿© °æ½ÃµÇ°í ÀÖ´Ù. URI-header = "URI" ":" 1#( "<" URI ">" ) 19.7 Ãß°¡ Çì´õ Çʵå Á¤ÀÇ ÀÌÀü ¹öÀü¿¡ µû¸£µµ·Ï °­Á¦ÇÏ´Â °ÍÀº ±Ô¾à ±Ô°ÝÀÇ ¹üÀ§¸¦ ¹þ¾î³ª´Â °ÍÀÌ´Ù. ±×·¯³ª HTTP/1.1 Àº ÀÌÀü ¹öÀüÀ» ½±°Ô Áö¿øÇϵµ·Ï Á¤±³ÇÏ°Ô µðÀÚÀÎ µÇ¾ú´Ù. ÀÌ ±Ô°ÝÀ» ÀÛ¼ºÇÏ´Â ¼ø°£ ¿ì¸®´Â »ó¾÷Àû HTTP/1.1 ¼­¹ö°¡ ´ÙÀ½ »çÇ×À» ¼öÇàÇÒ °ÍÀ¸·Î ±â´ëÇÏ°í ÀÖÀ½¿¡ ÁÖÀÇÇϱ⠹ٶõ´Ù. ? HTTP/0.9, 1.0, ¶Ç´Â 1.1 ¿ä±¸ÀÇ Request-Line Æ÷¸ËÀ» ÀνÄÇÑ´Ù. ? HTTP/0.9, 1.0, ¶Ç´Â 1.1 Æ÷¸ËÀ¸·Î µÈ ¾î¶°ÇÑ ¿ä±¸µµ ÀÌÇØÇÑ´Ù. ? Ŭ¶óÀ̾ðÆ®°¡ »ç¿ëÇÏ´Â ÁÖ¿ä ¹öÀü¿¡¼­ ÀûÀýÇÏ°Ô ¸Þ½ÃÁö¿¡ ÀÀ´äÇÑ´Ù. ¶ÇÇÑ ¿ì¸®´Â HTTP/1.1 Ŭ¶óÀ̾ðÆ®°¡ ´ÙÀ½À» ¼öÇàÇϱ⸦ ±â´ëÇÑ´Ù. ? HTTP/1.0 ¹× 1.1 ÀÀ´äÀÇ Status-Line Æ÷¸ËÀ» ÀÎÁöÇÑ´Ù. ? HTTP/0.9, 1.0, ¶Ç´Â 1.1 Æ÷¸ËÀ¸·Î µÈ ¾î¶°ÇÑ ¿ä±¸µµ ÀÌÇØÇÑ´Ù. ´ëºÎºÐÀÇ HTTP/1.0 ±¸Çö ¹æ½ÄÀº °¢°¢ÀÇ ¿¬°áÀº ¿ä±¸°¡ ¹ß»ýµÇ±â ÀÌÀü¿¡ Ŭ¶óÀ̾ðÆ®°¡ ¼³Á¤ÇÏ ¸ç ÀÀ´äÀ» ¹ß¼ÛÇÑ ÈÄ ¼­¹ö°¡ Á¾·áÇÑ´Ù. ¼Ò¼öÀÇ ±¸Çö ¹æ½ÄÀº 19.7.1.1¿¡¼­ ±â¼úÇÑ Keep-Alive Áö ¼ÓÀû Á¢¼ÓÀÇ ¹öÀüÀ» ±¸ÇöÇÑ´Ù. [Page 160] 19.7.1 HTTP/1.0 Áö¼ÓÀûÀÎ ¿¬°á°úÀÇ È£È¯¼º ¸î¸î Ŭ¶óÀ̾ðÆ® ¹× ¼­¹ö´Â ÀÌÀü HTTP/1.0 Ŭ¶óÀ̾ðÆ® ¹× ¼­¹öÀÇ Áö¼ÓÀû ¿¬°á°ú ȣȯ¼º À¯Áö ¸¦ ¿øÇÒ ¼ö ÀÖ´Ù. HTTP/1.0ÀÇ Áö¼ÓÀû ¿¬°áÀº ÀÌ°ÍÀÌ ±âº» ÇàÅ°¡ ¾Æ´Ï±â ¶§¹®¿¡ ¹Ýµå½Ã ¸í¹é ÇÏ°Ô Çù»óÇØ¾ß ÇÑ´Ù. HTTP/1.0 Áö¼ÓÀû Á¢¼ÓÀÇ ½ÇÇèÀû ±¸Çö ¹æ¹ýÀº À߸øÀ̾úÀ¸¸ç HTTP/1.1Àº ÀÌ·¯ÇÑ ¹®Á¦¸¦ ÀÎÁõÇϵµ·Ï µðÀÚÀÎ µÇ¾ú´Ù. ¹®Á¦´Â ¸î¸î ±âÁ¸ 1.0 Ŭ¶óÀ̾ðÆ®°¡ Keep-Alive¸¦ ConnectionÀ» ÀÌÇØÇÏÁö ¸øÇÏ´Â ÇÁ¶ô½Ã ¼­¹ö¿¡ ¹ß¼ÛÇÑ´Ù´Â °ÍÀ̾ú´Ù. Keep-Alive¸¦ ¹ß¼ÛÇÑ ÈÄ ÀÌ°ÍÀ» ´ÙÀ½ÀÇ ³»ºÎ¸¦ ÇâÇÑ ¼­¹ö(inbound server)¿¡ ½Ç¼öµµ Àü´ÞÇÏ¿© Keep-Alive ¿¬°áÀ» ¼³Á¤ÇÏ °í HTTP/1.0 ÇÁ¶ô½Ã°¡ ÀÀ´äÀÇ Á¾·á¸¦ ¹«ÇÑÁ¤ ±â´Ù¸®´Â °á°ú¸¦ ÃÊ·¡ÇÏ¿´´Ù. °á°ú´Â HTTP/1.0 Ŭ¶óÀ̾ðÆ®°¡ ÇÁ¶ô½Ã¿Í Åë½ÅÇÒ ¶§ Keep-Alive¸¦ »ç¿ëÇÏÁö ¸øÇϵµ·Ï ÇÏ´Â °ÍÀ̾ú´Ù. ±×·¯³ª ÇÁ¶ô½Ã¿ÍÀÇ Åë½ÅÀº Áö¼ÓÀûÀÎ Á¢¼ÓÀÇ °¡Àå Áß¿äÇÑ ¿ëµµ¿´±â ¶§¹®¿¡ ÀÌ·¯ÇÑ ±ÝÁö »çÇ×Àº ¸í¹éÇÏ°Ô ¼ö¿ëÇÒ ¼ö ¾ø´Â °ÍÀ̾ú´Ù. µû¶ó¼­ ¿ì¸®´Â ConnectionÀ» ¹«½ÃÇÏ´Â ÀÌÀü ÇÁ¶ô½Ã¿Í Åë ½ÅÇÒ ¶§µµ »ç¿ëÇϱ⿡ ¾ÈÀüÇÑ Áö¼ÓÀûÀÎ Á¢¼ÓÀ» ¹Ù¶õ´Ù´Â °ÍÀ» Ç¥½ÃÇÏ´Â ´Ù¸¥ ¸ÞÄ¿´ÏÁòÀÌ ÇÊ¿ä ÇÏ´Ù. Áö¼ÓÀûÀÎ ¿¬°á(persistent connection)Àº HTTP/1.1 ¸Þ½ÃÁöÀÇ ±âº» °ªÀÌ´Ù. ¿ì¸®´Â Áö¼ÓÀûÀÌ Áö ¾ÊÀº ¿¬°áÀ» À§ÇØ »õ·Î¿î Çٽɾî(Connection: close)¸¦ ¼Ò°³ÇÑ´Ù. ´ÙÀ½Àº ¿ø·¡ÀÇ HTTP/1.0 Çü½Ä Áö¼ÓÀû Á¢¼ÓÀ» ±â¼úÇÏ°í ÀÖ´Ù. ¿ø¼­¹ö¿Í ¿¬°áµÇ¾úÀ» ¶§ HTTP Ŭ¶óÀ̾ðÆ®´Â Persist connection-token¿¡ Ãß°¡ÇÏ¿© Keep-Alive connection-tokenÀ» ¹ß¼ÛÇÒ ¼öµµ ÀÖ´Ù. Connection: Keep-Alive ±×·¯¸é HTTP/1.0 ¼­¹ö°¡ Keep-Alive connection tokenÀ¸·Î ÀÀ´äÇÏ°í Ŭ¶óÀ̾ðÆ®´Â HTTP/1.0 (¶Ç ´Â Keep-Alive) persistent connectionÀ¸·Î °è¼Ó ÁøÇàÇÒ °ÍÀÌ´Ù. ¶ÇÇÑ HTTP/1.1 ¼­¹ö´Â Keep-Alive connection tokenÀ» ¼ö½ÅÇÏÀÚ¸¶ÀÚ HTTP/1.0 Ŭ¶óÀ̾ðÆ®¿ÍÀÇ Áö¼ÓÀûÀÎ Á¢¼ÓÀ» È®¸³ÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª HTTP/1.0 Ŭ¶óÀ̾ðÆ®¿ÍÀÇ Áö¼ÓÀûÀÎ Á¢¼Ó¿¡´Â µ¢¾î¸® Àü¼Û ÄÚµù(chunked transfer-coding)À» È°¿ëÇÒ ¼ö ¾ø±â ¶§¹®¿¡ °¢ ¸Þ½ÃÁöÀÇ Á¾·á °æ°è(ending boundary)¸¦ Ç¥½ÃÇϱâ À§Çؼ­´Â ¹Ýµå½Ã Content-Length¸¦ ÀÌ¿ëÇÏ¿© Ç¥½Ã¸¦ ÇØ¾ß ÇÑ´Ù. Ŭ¶óÀ̾ðÆ®´Â HTTP/1.0 ÇÁ¶ô½Ã ¼­¹ö°¡ Connection Çì´õ Çʵ带 ºÐ¼®Çϱâ À§ÇÑ HTTP/1.1 ¿øÄ¢ À» µû¸£Áö ¾Ê±â ¶§¹®¿¡ Keep-Alive connection tokenÀ» ÇÁ¶ô½Ã ¼­¹ö¿¡ ¹ß¼ÛÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù. [Page 161] 19.7.1.1 The Keep-Alive Header ¿ä±¸³ª ÀÀ´ä¿¡ Keep-Alive connection-token ÀÌ Àü¼ÛµÇ¾úÀ¸¸é Keep-Alive Çì´õ Çʵ尡 Æ÷Ç﵃ ¼ö ÀÖ´Ù. Keep-Alive Çì´õ Çʵå´Â ´ÙÀ½ÀÇ Çü½ÄÀ» ÃëÇÑ´Ù. Keep-Alive-header = "Keep-Alive" ":" 0# keepalive-param keepalive-param = param-name "=" value Keep-Alive Çì´õ ÀÚü´Â ¼±Åà »çÇ×À̸ç ÆĶó¹ÌÅÍ°¡ ¹ß¼ÛµÇ¾úÀ» ¶§¸¸ »ç¿ëµÈ´Ù. HTTP/1.1Àº ¾î ¶°ÇÑ ÆĶó¹ÌÅ͵µ ±ÔÁ¤ÇÏÁö ¾Ê°í ÀÖ´Ù. Keep-Alive°¡ ¹ß¼ÛµÇ¾úÀ¸¸é »óÀÀÇÏ´Â ¿¬°á ÅäÅ«(corresponding connection token)µµ ¹Ýµå½Ã Àü¼ÛµÇ ¾î¾ß ÇÑ´Ù. ¿¬°á ÅäÅ« ¾øÀÌ ¼ö½ÅµÇ¾úÀ¸¸é Keep-Alive Çì´õ¸¦ ¹«½ÃÇØ¾ß ÇÑ´Ù. [Page 162] 22