- 2004/06/03 22:48
- http://blog.moneta.co.kr/2347/50148/213989
°øÀ¯ÀÌ¿ô: ³ª´ÂÀ¯À¯ÀÚÀû´ÔÀÌ ¾´ ±Û
HTTP 1/1 Àü¼Û±Ô¾à
ÇÏÀÌÆÛÅØ½ºÆ® Àü¼Û±Ô¾à 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¿¡¼´Â ¶È°°Àº ¹Ýº¹ÀÌÁö¸¸ ¿©·¯ °³ ´Ü¾î³ª ¼öÀÇ ¿ ÇüÅÂ
¿Í °°ÀÌ ¿©·¯ °³ ¿ä¼ÒÀÇ ³ª¿ ÇüÅ·ΠǥÇöµÇ´Â °ÍÀÌ´Ù. <n>*<m>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
ƯÁ¤ Ƚ¼öÀÇ ¹Ýº¹À» ³ªÅ¸³½´Ù. "<n>(element)" Àº "<n>*<n>(element)"¿Í µ¿ÀÏÇÏ´Ù.
Áï ¿ä¼Ò(element)°¡ Á¤È®ÇÏ°Ô <n> ¹ø Ç¥½ÃµÈ´Ù. µû¶ó¼ 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 = <US-ASCII CR, ij¸®Áö ¸®ÅÏ(13)>
LF = <US-ASCII LF, ¶óÀÎÇǵå (10)>
SP = <US-ASCII SP, ½ºÆäÀ̽º (32)>
HT = <US-ASCII HT, ¼öÆò ÅÇ (9)>
<"> = <US-ASCII ÀÌÁß ÀÎ¿ë ºÎÈ£(34)>
[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*<CTL ¶Ç´Â tspecial¸¦ Á¦¿ÜÇÑ ¸ðµç CHAR>
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¿¡ µû¶ó ÀÎÄÚµùµÈ 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 = *<TEXT, excluding CR, LF>
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ÀÇ base64 [7] ÀÎÄÚµù,
¶óÀÎ ´ç 76 ¹®ÀÚ¿¡ Á¦ÇÑÀ» ¹ÞÁö ¾ÊÀ» °æ¿ì>
user-pass = userid ":" password
userid = *<TEXT excluding ":">
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 Ŭ¶óÀÌ¾ðÆ®¿Í Ä³½Ã´Â ¿£ÅÍÆ¼ ű׸¦ ¹«½ÃÇÒ °ÍÀÌ´Ù. ÀϹÝÀûÀ¸·Î ÀÌ ½Ã½ºÅÛµéÀÌ ¼ö
½ÅÇϰųª »ç¿ëÇÏ´Â 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 Çì´õÀÇ °áÇÕ
ij½Ã°¡ ¼¹ö¿¡°Ô °ËÁõ ¿ä±¸¸¦ ÇÏ°í ¼¹ö°¡ 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½ÃÇÒ ¼öµµ ÀÖ´Ù.
ÁÖÀÇ : »çÀûÀ̶ó´Â ´Ü¾î »ç¿ëÀÇ Àǹ̴ ÀÀ´äÀ» 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 = <base64 of 128 bit MD5 digest as per RFC 1864>
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 Ŭ¶óÀÌ¾ðÆ®¿Í Ä³½Ã´Â ¹Ýµå½Ã ´Ù¸¥ À¯È¿ÇÏÁö ¾Ê´Â ³¯Â¥ Æ÷¸ËÀ», ƯÈ÷ "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"). ¿¹¸¦ µé¾î ¿ø¼¹öÀÇ <http://www.w3.org/pub/WWW/>¿¡ ´ëÇÑ ¿äûÀº ¹Ýµå½Ã ´ÙÀ½À»
Æ÷ÇÔÇØ¾ß ÇÑ´Ù.
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)¸¦ ÃÖ¼ÒÈÇÏ¸é¼ Ä³½ÃµÈ Á¤º¸¸¦ È¿°ú
ÀûÀ¸·Î °»½ÅÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀÌ´Ù.
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)¸¦ ÃÖ¼ÒÈÇÏ¸é¼ Ä³½ÃµÈ Á¤º¸¸¦
È¿°úÀûÀ¸·Î °»½ÅÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀÌ´Ù. ¶ÇÇÑ ¿ä±¸¸¦ °»½ÅÇÒ ¶§ ÀÚ¿øÀÇ À߸øµÈ ¹öÀü¿¡ ´ë
ÇÑ ºÎÁÖÀÇÇÑ º¯°æÀ» ¹æÁöÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ´Ù. Ưº°ÇÑ °æ¿ì·Î "*" °ªÀº ÀÚ¿øÀÇ ¸ðµç ÇöÀç
¿£ÅÍÆ¼¿Í ÀÏÄ¡ÇÑ´Ù.
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)¸¦ ÃÖ¼ÒÈÇÏ¸é¼ Ä³½Ã
µÈ Á¤º¸¸¦ È¿°úÀûÀ¸·Î °»½ÅÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀÌ´Ù. ¶ÇÇÑ ¿ä±¸¸¦ °»½ÅÇÒ ¶§ ÀÚ¿øÀÇ À߸øµÈ
¹öÀü¿¡ ´ëÇÑ ºÎÁÖÀÇÇÑ º¯°æÀ» ¹æÁöÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
Ưº°ÇÑ °æ¿ì·Î "*" °ªÀº ÀÚ¿øÀÇ ¸ðµç ÇöÀç ¿£ÅÍÆ¼¿Í ÀÏÄ¡ÇÑ´Ù.
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´Â
¼¹ö°¡ Ãë¹Ì, ·Î±ë ¶Ç´Â ÃÖÀûÈµÈ Ä³½Ã µîÀÇ ¸ñÀûÀ¸·Î ÀÚ¿ø¿¡ ´ëÇÑ 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°¡ »õ·Î¿î ¿ä±¸ÀÇ ÇØ´ç Çì´õ¿Í ÀÏÄ¡ÇÏÁö ¾Ê´Â ÇÑ
ij½Ã´Â Àý´ë ÀÌ·¯ÇÑ Ä³½Ã ¿£Æ®¸®¸¦ ÀÌ¿ëÇÏ¿© »õ·Î¿î ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ» ±¸¼ºÇؼ´Â ¾È µÈ´Ù.
[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", <URL: http://www.isi.edu/lsam/ib/http-perf/>,
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"
<URL:http://sunsite.unc.edu/mdma-release/http-prob.html>.
[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 Ŭ¶óÀÌ¾ðÆ®¿Í Ä³½Ã´Â ÇâÈÄ 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-coding>"¸¦ 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 = "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: <http://www.cern.ch/TheBook/chapter2>; rel="Previous"
Link: <mailto:timbl@w3.org>; 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]
ÁÖÁ¦ : ¿©°¡/»ýȰ/IT > ÄÄÇ»ÅÍ/ÀÎÅͳÝ
- ½ºÅ©·¦ 0
- Àμâ
¡®¡¯ Ä«Å×°í¸®ÀÇ ´Ù¸¥±Û