³ª¸¦ ã¾Æ°¡´Â ¿©Çà

ºÎÁ¦¸ñÀÌ ¾ø½À´Ï´Ù.



  • today
  • 5
  • total
  • 19567
  • ´ä±Û
  • 9
  • ½ºÅ©·¦
  • 0

ºí·Î±× ±¸µ¶Çϱâ



À¥¿¡·¯¸Þ½ÃÁö IT±â¼ú

ÀÎÅͳÝÀ» ŽÇèÇÏ´Ù°¡ º¸¸é, À¥»óÀÇ ÇÏÀÌÆÛ¸µÅ©³ª Áñ°Üã±âÀÇ ¹Ù·Î°¡±â¸¦ Ŭ¸¯Çϰųª Á÷Á¢ ÁÖ¼Ò¸¦ ÀÔ·ÂÇØ ³Ö¾úÀ» ¶§, °¡°íÀÚ ÇÏ´Â »çÀÌÆ®°¡ ¿­¸®´Â ´ë½Å¿¡ ±½Àº ±Û¾¾¿¡ °¡²û ¼ýÀÚµµ µé¾î ÀÖ´Â °æ°í¼º ¹®±¸ÀÇ ÆäÀÌÁö°¡ ¶ß´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ±× Áß¿¡¼­ °¡Àå ´ëÇ¥ÀûÀÎ ¿¡·¯ ¸Þ½ÃÁöµéÀ» ¼Ò°³ÇÒ±î ÇÕ´Ï´Ù.

¢º 403 Forbidden/Access Denied (403 ±ÝÁö/¾×¼¼½º °ÅºÎ)

    ÀÌ À¥ »çÀÌÆ®´Â Æнº¿öµå¿Í °°Àº Ưº°ÇÑ ¾×¼¼½º ½ÂÀÎÀ» ÇÊ¿ä·Î ÇÏ´Â
    °æ¿ìÀÔ´Ï´Ù.

¢º 404 Not Found (404 ãÀ» ¼ö ¾øÀ½)

    ºê¶ó¿ìÀú°¡ È£½ºÆ® ÄÄÇ»Åʹ ã¾ÒÀ¸³ª ¿äûµÈ ƯÁ¤ µµÅ¥¸ÕÆ®¸¦ ãÁö ¸øÇÑ °æ¿ìÀÔ´Ï´Ù.
    Á¤È®ÇÑ ÁÖ¼Ò¸¦ ÀÔ·ÂÇß´ÂÁö È®ÀÎÇØ º¾´Ï´Ù. ±× ÆäÀÌÁö´Â ÇØ´ç À¥ »çÀÌÆ®¿¡¼­ Á¦°ÅµÇ¾úÀ» ¼öµµ ÀÖ°í À§Ä¡°¡ ¹Ù²î¾úÀ» ¼öµµ ÀÖ½À´Ï´Ù.
    ÆÄÀϸíÀ» ¶¼¾î³»°í ÁÖ¼Ò¸¦ ´Ù½Ã ÇÑ ¹ø ÀÔ·ÂÇØ º¾´Ï´Ù. Áï, ÇÑ ´Ü°è À§ÀÇ À¥ »çÀÌÆ®¸¦ ã¾Æ º¾´Ï´Ù.

¢º 503 Service Unavailable (503 ¼­ºñ½º ºÒ°¡)

    ÇØ´ç À¥ »çÀÌÆ®ÀÇ ¼­¹ö¿¡ °úºÎÇÏ°¡ °É¸° °æ¿ìÀÔ´Ï´Ù.
    ¸î ÃÊ ÈÄ¿¡ ´Ù½Ã ½ÃµµÇØ º¾´Ï´Ù.

¢º Bad file request (À߸øµÈ ÆÄÀÏ ¿äû)

    ¿Â¶óÀÎ Æû ¶Ç´Â HTML Äڵ尡 À߸øµÈ °æ¿ìÀÔ´Ï´Ù.

¢º Connection refused by host (È£½ºÆ®ÀÇ Á¢¼Ó °ÅºÎ)

    À§¿¡ ÀÖ´Â ¡®403 Forbidden/Access Denied¡¯ ¿¡·¯¿Í À¯»çÇÑ »óȲÀÔ´Ï´Ù.

¢º Failed DNS lookup (DNS ã±â ½ÇÆÐ)

    ÇØ´ç À¥ »çÀÌÆ®ÀÇ URLÀÌ ÀûÀýÇÑ IP ÁÖ¼Ò·Î ÀüȯµÉ ¼ö ¾ø´Â °æ¿ìÀÔ´Ï´Ù.
    ÀÌ·± ¿¡·¯´Â »ó¿ë »çÀÌÆ®¿¡¼­ ºó¹øÇÏ°Ô ¹ß»ýÇϴµ¥ IP ÁÖ¼Ò ÀüȯÀ» ´ã´çÇÏ´Â ÄÄÇ»Å͵éÀÌ °úºÎÇÏ »óÅ¿¡ ³õÀ̱⠶§¹®À̶ó°í ÇÕ´Ï´Ù.
    ¹°·Ð, ÁÖ¼Ò¸¦ À߸ø ÀÔ·ÂÇÑ °æ¿ì¿¡µµ ¹ß»ýÇÒ ¼ö ÀÖ½À´Ï´Ù.
    ÁÖ¼Ò¸¦ ´Ù½Ã ÇÑ ¹ø ÀÔ·ÂÇØ º¸°Å³ª, È¥ÀâÇÏÁö ¾ÊÀ» °Í °°Àº ½Ã°£¿¡ ´Ù½Ã ½ÃµµÇØ º¾´Ï´Ù.

¢º Helper application not found

    º¸Á¶ ÀÀ¿ëÇÁ·Î±×·¥(helper application)À» ÇÊ¿ä·Î ÇÏ´Â ÆÄÀÏÀ» ´Ù¿î¹ÞÀ¸·Á Çϴµ¥, ÀÎÅÍ³Ý ÀͽºÇ÷η¯°¡ ãÁö ¸øÇÏ´Â °æ¿ìÀÔ´Ï´Ù.
    ÀÌ·± °æ¿ì¿¡´Â ¾Æ¹« Windows âÀ̳ª ¿­¾î¼­ ¡®º¸±â(V)¡¯ÀÇ ¡®Æú´õ ¿É¼Ç(O)¡¯¿¡ ÀÖ´Â ¡®ÆÄÀÏ Çü½Ä¡¯ ÅÇÀ» ¼±ÅÃÇÏ¿© º¸Á¶ ÀÀ¿ëÇÁ·Î±×·¥À» À§ÇÑ µð·ºÅ丮 ¹× ÆÄÀϸíÀÌ Á¤È®ÇÏ°Ô ÀԷµǵµ·Ï ÇÕ´Ï´Ù.

¢º Not found (ãÀ» ¼ö ¾øÀ½)

    ÇÏÀÌÆÛ¸µÅ©°¡ °¡¸®Å°´Â À¥ ÆäÀÌÁö°¡ ´õ ÀÌ»ó Á¸ÀçÇÏÁö ¾ÊÀ½À» ³ªÅ¸³À´Ï´Ù.

¢º Site unavailable (»çÀÌÆ® »ç¿ë ºÒ°¡)

    ³Ê¹« ¸¹Àº »ç¶÷µéÀÌ µ¿½Ã¿¡ ¾×¼¼½ºÇÏ·Á ÇÏ¸é ¿Â¶óÀÎ»ó¿¡ ³ëÀÌÁî°¡ »ý°Ü ÇØ´ç »çÀÌÆ®°¡ ´Ù¿îµÉ ¼öµµ ÀÖ°í, ¾Æ´Ï¸é ´õ ÀÌ»ó ±× »çÀÌÆ®°¡ Á¸ÀçÇÏÁö ¾Ê´Â °æ¿ìÀÏ ¼öµµ ÀÖ½À´Ï´Ù. ÁÖ¼Ò¸¦ À߸ø ÀÔ·ÂÇصµ ³ª¿Ã ¼ö ÀÖ½À´Ï´Ù.

¢º °¢ Error Äڵ庰 ÀǹÌ

    100 : Continue
    101 : Switching protocols
    200 : OK, ¿¡·¯¾øÀÌ Àü¼Û ¼º°ø
    201 : Created, POST ¸í·É ½ÇÇà ¹× ¼º°ø
    202 : Accepted, ¼­¹ö°¡ Ŭ¶óÀ̾ðÆ® ¸í·ÉÀ» ¹ÞÀ½
    203 : Non-authoritative information, ¼­¹ö°¡ Ŭ¶óÀ̾ðÆ® ¿ä±¸ Áß ÀϺΠ¸¸ Àü¼Û
    204 : No content, Ŭ¶ó¾ðÆ® ¿ä±¸À» ó¸®ÇßÀ¸³ª Àü¼ÛÇÒ µ¥ÀÌÅÍ°¡ ¾øÀ½
    205 : Reset content
    206 : Partial content
    300 : Multiple choices, ÃÖ±Ù¿¡ ¿Å°ÜÁø µ¥ÀÌÅ͸¦ ¿äû
    301 : Moved permanently, ¿ä±¸ÇÑ µ¥ÀÌÅ͸¦ º¯°æµÈ Àӽà URL¿¡¼­ ã¾ÒÀ½
    302 : Moved temporarily, ¿ä±¸ÇÑ µ¥ÀÌÅÍ°¡ º¯°æµÈ URL¿¡ ÀÖÀ½À» ¸í½Ã
    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, ¸®¼Ò½º¸¦ Çã¿ë¾ÈÇÔ
    406 : Not acceptable, Çã¿ëÇÒ ¼ö ¾øÀ½
    407 : Proxy authentication required, ÇÁ·Ï½Ã ÀÎÁõ ÇÊ¿ä
    408 : Request timeout, ¿äû½Ã°£ÀÌ Áö³²
    409 : Conflict
    410 : Gone, ¿µ±¸ÀûÀ¸·Î »ç¿ëÇÒ ¼ö ¾øÀ½
    411 : Length required
    412 : Precondition failed, ÀüüÁ¶°Ç ½ÇÆÐ
    413 : Request entity too large,
    414 : Request-URI too long, URLÀÌ ³Ê¹« ±è
    415 : Unsupported media type
    500 : Internal server error, ³»ºÎ¼­¹ö ¿À·ù(À߸øµÈ ½ºÅ©¸³Æ® ½ÇÇà½Ã)
    501 : Not implemented, Ŭ¶óÀ̾ðÆ®¿¡¼­ ¼­¹ö°¡ ¼öÇàÇÒ ¼ö ¾ø´Â ÇൿÀ» ¿ä±¸ÇÔ
    502 : Bad gateway, ¼­¹öÀÇ °úºÎÇÏ »óÅÂ
    503 : Service unavailable, ¿ÜºÎ ¼­ºñ½º°¡ Á×¾ú°Å³ª ÇöÀç ¸ØÃã »óÅÂ
    504 : Gateway timeout
    505 : HTTP version not supported



ÁÖÁ¦ : ¿©°¡/»ýÈ°/IT > ÄÄÇ»ÅÍ/ÀÎÅͳÝ

¡ãtop


HTTP 1/1 Àü¼Û±Ô¾à IT±â¼ú

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 Ŭ¶óÀ̾ðÆ®¿Í ij½Ã´Â ¿£ÅÍƼ ű׸¦ ¹«½ÃÇÒ °ÍÀÌ´Ù. ÀϹÝÀûÀ¸·Î ÀÌ ½Ã½ºÅÛµéÀÌ ¼ö
½ÅÇϰųª »ç¿ëÇÏ´Â Last-Modified °ªÀº Åõ¸íÇϰųª È¿°úÀûÀΠij½Ã¸¦ Áö¿øÇϱ⠶§¹®¿¡
HTTP/1.1 ¿ø¼­¹ö´Â Last-Modified °ªÀ» Á¦°øÇØ¾ß ÇÑ´Ù. HTTP/1.0 ½Ã½ºÅÛÀÌ Last-Modified °ªÀ»
°ËÁõÀÚ·Î »ç¿ëÇÏ¿© ½É°¢ÇÑ ¹®Á¦¸¦ ÃÊ·¡ÇÏ´Â ±ØÈ÷ µå¹® °æ¿ì¿¡´Â HTTP/1.1 ¿ø¼­¹ö´Â °ªÀ» Á¦
°øÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù.

13.3.5 °ËÁõÀ» ÇÏÁö ¾Ê´Â Á¶°Ç¹ý

¿£ÅÍƼ ÅÂ±× µÚÀÇ ¿øÄ¢Àº ¼­ºñ½º ÀúÀÛÀÚ¸¸ÀÌ ÀÚ¿øÀÇ Àǹ̸¦ ÃæºÐÈ÷ ¾Ë¾Æ¼­ ÀûÇÕÇÑ Ä³½Ã °ËÁõ
¸ÞÄ¿´ÏÁòÀ» ¼±ÅÃÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. ¹ÙÀÌÆ®-µ¿µî(byte-equality) ºñ±³º¸´Ù ´õ º¹ÀâÇÑ °ËÁõÀÚ ºñ
±³ ±â´ÉÀ» ¿­°ÅÇÏ¸é ¾ÆÁÖ º¹ÀâÇÏ°Ô µÉ °ÍÀÌ´Ù. µû¶ó¼­ ij½Ã ¿£Æ®¸®¸¦ °ËÁõÇÒ ¸ñÀûÀ¸·Î ´Ù¸¥
¾î¶² Çì´õÀÇ ºñ±³(HTTP/1.0°úÀÇ È£È¯¼ºÀ» À§ÇØ Last-Modified´Â Á¦¿Ü) µµ »ç¿ëÇؼ­´Â ¾È µÈ´Ù.

13.4 ÀÀ´äÀ» ij½ÃÇÒ ¼ö ÀÖ´Â Á¤µµ(Cachability)

Cache-Control (14.9 Àý) Áö½ÃÀÚ°¡ Ưº°È÷ ÅëÁ¦ÇÏÁö ¾Ê´Â ÇÑ Ä³½Ã ½Ã½ºÅÛÀº ¾ðÁ¦³ª ¼º°øÀûÀÎ ÀÀ
´äÀ» ij½Ã ¿£Æ®¸®·Î¼­ ÀúÀåÇÒ ¼ö ÀÖ°í, »õ·Î¿î °ÍÀ̶ó¸é °ËÁõ ¾øÀÌ ¸®ÅÏÇÒ ¼ö ÀÖÀ¸¸ç ¼º°øÀû
ÀÎ °ËÁõ ÈÄ¿¡ ¸®ÅÏÇÒ ¼öµµ ÀÖ´Ù.

[Page 86]

 

ij½Ã °ËÁõÀÚµµ ¾ø°í ÀÀ´ä°ú °ü·ÃµÈ ¸íÈ®ÇÑ À¯È¿ ½Ã°£µµ ¾øÀ¸¸é ¿ì¸®´Â ±×°ÍÀ» ij½ÃÇÒ ¼ö ÀÖ´Ù
°í ±â´ëÇÏÁö ¾Ê´Â´Ù. ±×·¯³ª ƯÁ¤ÇÑ Ä³½Ã´Â ÀÌ·¯ÇÑ ±â´ë¸¦ À§¹ÝÇÒ ¼öµµ ÀÖ´Ù.(¿¹¸¦ µé¾î ³×Æ®
¿öÅ©°¡ ¾àÇÏ°Ô ¿¬°áµÇ¾ú°Å³ª ¿¬°áµÇÁö ¾Ê¾ÒÀ» ¶§). Ŭ¶óÀ̾ðÆ®´Â º¸Åë ÀÌ·¯ÇÑ ÀÀ´äÀÌ Ä³½Ã¿¡
¼­ ³ª¿Ô´Ù´Â °ÍÀ» Date Çì´õ¿Í ÇöÀç ½Ã°£À» ºñ±³ÇÏ¿© ŽÁöÇÒ ¼ö ÀÖ´Ù.

¸î¸î HTTP/1.0 ij½Ã´Â ¾Æ¹«·± Warning µµ Á¦°øÇÏÁö ¾Ê°í ÀÌ·¯ÇÑ ±â´ë¸¦ À§¹ÝÇÏ´Â °ÍÀ¸·Î ¾Ë
·ÁÁ³´Ù´Â Á¡¿¡ ÁÖÀÇÇÑ´Ù.

±×·¯³ª ¾î¶² °æ¿ì¿¡´Â ij½Ã°¡ ¿£ÅÍƼ¸¦ º¸À¯ÇÏ°í ÀÖ´Â °ÍÀÌ, ¶Ç´Â ij½Ã¸¦ °è¼ÓµÇ´Â ¿ä±¸¿¡ ´ë
ÇÑ ÀÀ´äÀ¸·Î ¸®ÅÏÇÏ´Â °ÍÀÌ ÀûÀýÇÏÁö ¾ÊÀ» ¼ö ÀÖ´Ù. ÀÌ´Â ¼­ºñ½º ÀúÀÛÀÚ´Â Àý´ëÀûÀÎ ÀÇ¹Ì Åõ
¸í¼ºÀ» ´ç¿¬ÇÑ °ÍÀ¸·Î ¿©±â°í Àֱ⠶§¹®À̰ųª ¶Ç´Â º¸¾ÈÀ̳ª »ç»ýÈ° º¸È£¿¡ °üÇÑ °í·Á »çÇ×
¶§¹®ÀÌ´Ù. µû¶ó¼­ ´Ù¸¥ °í·Á »çÇ׿¡ °ü°è¾øÀÌ Æ¯Á¤ ¿£ÅÍƼ ¶Ç´Â ¿£ÅÍƼÀÇ ÀϺθ¦ ij½ÃÇÒ ¼ö
¾ø´Ù´Â °ÍÀ» Ç¥½ÃÇϱâ À§ÇØ Æ¯Á¤ Cache-Control Áö½ÃÀÚ°¡ Á¦°øµÇ¾ú´Ù.

14.8 ÀýÀº ´ë°³ ¿ä±¸°¡ Authorization Çì´õ¸¦ Æ÷ÇÔÇÏ°í ÀÖÀ¸¸é °øÀ¯µÈ ij½Ã°¡ ÀÌÀü ¿ä±¸¿¡ ´ëÇÑ
ÀÀ´äÀ» ÀúÀåÇϰųª ¸®ÅÏÇÒ ¼ö ¾ø°Ô ÇÑ´Ù´Â Á¡¿¡ ÁÖÀÇÇÑ´Ù.

Cache-Control Áö½ÃÀÚ°¡ ij½Ã¸¦ ±ÝÁöÇÏÁö ¾Ê´Â ÇÑ »óÅ ÄÚµå 200, 203, 206, 300, 301 ¶Ç´Â 410¿Í
´õºÒ¾î ¼ö½ÅÇÑ ÀÀ´äÀº À¯È¿ÀÏ ¸ÞÄ¿´ÏÁòÀ» Á¶°ÇÀ¸·Î ÇÏ¿© ij½Ã·Î ÀúÀåÇÒ ¼ö ÀÖ°í °è¼ÓµÇ´Â ¿ä
±¸¿¡ ´ëÇÑ ÀÀ´ä¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª Range ¹×  Content-Range Çì´õ¸¦ Áö¿øÇÏÁö ¾Ê´Â ij
½Ã´Â 206(Partial Content) ÀÀ´äÀ» Àý´ë·Î ij½ÃÇؼ­´Â ¾È µÈ´Ù.

´Ù¸¥ »óÅ ÄÚµå¿Í ÇÔ²² ¼ö½ÅµÈ ÀÀ´äÀº Cache-Control Áö½ÃÀÚ³ª À̸¦ ¸í¹éÇÏ°Ô Çã¿ëÇÏ´Â Çì´õ°¡
¾øÀ¸¸é °è¼ÓµÇ´Â ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î Àý´ë ¸®ÅÏÇؼ­´Â ¾È µÈ´Ù. ¿¹¸¦ µé¾î ÀÌ·¯ÇÑ °ÍµéÀº
´ÙÀ½°ú °°´Ù. - Expires Çì´õ (14.21 Àý); "max-age", "must-revalidate", "proxy-revalidate", "public" ¶Ç
´Â "private" Cache-Control Áö½ÃÀÚ (14.9 Àý).

13.5 ij½Ã¿¡¼­ ÀÀ´äÀ» ±¸ÃàÇϱâ

HTTP ij½ÃÀÇ ¸ñÀûÀº ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î ¼ö½ÅµÈ Á¤º¸¸¦ ÀúÀåÇÏ¿© ¹Ì·¡ÀÇ ¿ä±¸¿¡ ´ëÇÑ ÀÀ´ä
À» »ç¿ëÇϱâ À§ÇÔÀÌ´Ù. ¸¹Àº °æ¿ì¿¡ ij½Ã´Â ´Ü¼øÈ÷ ¿ä±¸ÀÚ¿¡°Ô ÀÀ´äÀÇ ÀûÇÕÇÑ ºÎºÐÀ» ¸®ÅÏÇÑ
´Ù. ±×·¯³ª ij½Ã°¡ ÀÌÀü ÀÀ´ä¿¡ ±âÃÊÇÑ Ä³½Ã ¿£Æ®¸®¸¦ º¸À¯ÇÏ°í ÀÖÀ¸¸é »õ·Î¿î ÀÀ´äÀÇ ÀÏ ºÎ
ºÐ°ú ±âÁ¸ ij½Ã ¿£Æ®¸®¿¡ º¸°üÇÏ°í ÀÖ´ø °ÍÀ» °áÇÕÇؾ߸¸ ÇÑ´Ù.

[Page 87]

 

13.5.1 End-to-end ¹× Hop-by-hop Çì´õ

ij½Ã¿Í ij½Ã¸¦ Áö¿øÇÏÁö ¾Ê´Â ÇÁ¶ô½ÃÀÇ ÇàŸ¦ ±ÔÁ¤ÇÒ ¸ñÀûÀ¸·Î ¿ì¸®´Â HTTP Çì´õ¸¦ µÎ Á¾·ù
µµ ±¸ºÐÇÏ¿´´Ù.

? End-to-end Çì´õ - ¿ä±¸³ª ÀÀ´äÀÇ ±Ã±ØÀûÀÎ ¼ö½ÅÃø¿¡°Ô Àü´ÞµÇ¾î¾ß ÇÑ´Ù. ÀÀ´äÀÇ End-to-
end Çì´õ´Â ij½Ã ¿£Æ®¸®ÀÇ ÀÏ ºÎºÐÀ¸·Î ÀúÀåµÇ¾î¾ß ÇÏ°í ij½Ã ¿£Æ®¸®¿¡¼­ ±¸¼ºµÈ ¾î¶°ÇÑ
ÀÀ´ä¿¡µµ Àü¼ÛµÇ¾î¾ß ÇÑ´Ù.
? Hop-by-hop Çì´õ - ´ÜÀÏ-Àü¼Û-¼öÁØ Á¢¼Ó¿¡¸¸ Àǹ̰¡ ÀÖÀ¸¸ç ij½Ã°¡ ÀúÀåÇÏÁöµµ ¾Ê°í ÇÁ¶ô
½Ã°¡ Àü¼ÛÇÏÁöµµ ¾Ê´Â´Ù.

´ÙÀ½ÀÇ HTTP/1.1 Çì´õµéÀÌ hop-by-hop Çì´õÀÌ´Ù:

? Connection
? Keep-Alive
? Public
? Proxy-Authenticate
? Transfer-Encoding
? Upgrade

HTTP/1.1ÀÌ ±ÔÁ¤ÇÑ ´Ù¸¥ ¸ðµç Çì´õ´Â end-to-end Çì´õÀÌ´Ù.

HTTP ÇâÈÄ ¹öÀü¿¡ ¼Ò°³µÉ Hop-by-hop Çì´õ´Â 14.10 Àý¿¡ ±â¼úÇÑ °Íó·³ ¹Ýµå½Ã Connection Çì
´õ¿¡ ¿­°ÅµÇ¾î¾ß ÇÑ´Ù.

13.5.2 º¯°æÇÒ ¼ö ¾ø´Â Çì´õ

Digest Authentication °ú °°Àº HTTP/1.1 ±Ô¾àÀÇ ¸î¸î ±â´ÉÀº ƯÁ¤ end-to-end Çì´õ °ª¿¡ ÀÇÁ¸ÇÑ
´Ù. ij½Ã³ª ij½Ã¸¦ Áö¿øÇÏÁö ¾Ê´Â ÇÁ¶ô½Ã´Â ÇØ´ç Çì´õÀÇ ±ÔÁ¤ÀÌ À̸¦ ¿ä±¸Çϰųª Ưº°È÷ Çã¿ë
ÇÏÁö ¾Ê´Â ÇÑ end-to-endÇì´õ¸¦ º¯°æÇؼ­´Â ¾È µÈ´Ù.

ij½Ã³ª ij½Ã¸¦ Áö¿øÇÏÁö ¾Ê´Â ÇÁ¶ô½Ã´Â ¿ä±¸³ª ÀÀ´ä¿¡¼­ ´ÙÀ½ÀÇ Çʵå Áß ¾î¶² °Íµµ º¯°æÇؼ­
´Â ¾È µÇ¸ç ±âÁ¸¿¡ Á¸ÀçÇÏÁö ¾ÊÀ¸¸é Ãß°¡Çؼ­µµ ¾È µÈ´Ù.

? Content-Location
? ETag
? Expires
? Last-Modified

[Page 88]

 

ij½Ã³ª ij½Ã¸¦ Áö¿øÇÏÁö ¾Ê´Â ÇÁ¶ô½Ã´Â º¯È¯ ±ÝÁö Cache-Control Áö½Ã¾î¸¦ Æ÷ÇÔÇÑ ÀÀ´ä ¶Ç´Â
¾î¶°ÇÑ ¿ä±¸¿¡¼­µµ ´ÙÀ½ÀÇ Çʵå Áß ¾î¶² °Íµµ º¯°æÇϰųª Ãß°¡Çؼ­´Â ¾È µÈ´Ù.

? Content-Encoding
? Content-Length
? Content-Range
? Content-Type

ij½Ã³ª ij½Ã¸¦ Áö¿øÇÏÁö ¾Ê´Â ÇÁ¶ô½Ã´Â º¯È¯ ±ÝÁö(no-transform)¸¦ Æ÷ÇÔÇÏÁö ¾ÊÀº ÀÀ´ä¿¡¼­ ÀÌ
·¯ÇÑ Çʵ带 º¯°æÇϰųª Ãß°¡Çؼ­´Â ¾È µÈ´Ù. ±×·¸°Ô Çß´Ù¸é ÀÀ´ä¿¡ Warning 14(Modification
Applied)°¡ ¾øÀ¸¸é À̸¦ Ãß°¡ÇØ¾ß ÇÑ´Ù.

°æ°í : ºÒÇÊ¿äÇÑ end-to-end Çì´õÀÇ º¯°æÀº HTTPÀÇ ÀÌÈÄ ¹öÀü¿¡¼­ ´õ °­·ÂÇÑ ÀÎÁõ ȹµæ ¸Þ
Ä¿´ÏÁòÀÌ µµÀԵȴٸé ÀÎÁõ ȹµæ ½ÇÆи¦ ÃÊ·¡ÇÒ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ ÀÎÁõ ȹµæ ¸ÞÄ¿´ÏÁòÀº ¿©±â
¿¡ ¿­°ÅµÇÁö ¾ÊÀº Çì´õ ÇÊµå °ª¿¡ ÀÇÁ¸ÇÒ ¼ö ÀÖ´Ù.

13.5.3 Çì´õÀÇ °áÇÕ

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½ÃÇÒ ¼ö ÀÖ´Â ºÎºÐ¸¸À» ÅëÁ¦ÇÏ´Â °ÍÀ̸ç
¸Þ½ÃÁö ³»¿ë¿¡ ´ëÇÑ º¸È£¸¦ È®º¸ÇÒ ¼ö´Â ¾ø´Ù.

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 Ŭ¶óÀ̾ðÆ®¿Í ij½Ã´Â ¹Ýµå½Ã ´Ù¸¥ À¯È¿ÇÏÁö ¾Ê´Â ³¯Â¥ Æ÷¸ËÀ», ƯÈ÷ "0" °ªÀ» Æ÷ÇÔ
ÇÏ°í ÀÖ´Â ³¯Â¥ Æ÷¸ËÀ» Áö³ª°£ ³¯Â¥·Î Ãë±ÞÇØ¾ß ÇÑ´Ù.(¿¹¸¦ µé¸é "¹ú½á ¸¸·áµÈ"À¸·Î)

ÀÀ´äÀ» "¹ú½á ¸¸·áµÈ" °ÍÀ¸·Î Ç¥½ÃÇϱâ À§Çؼ­ ¿ø¼­¹ö´Â Expires ³¯Â¥¸¦ Date Çì´õ Çʵå¿Í µ¿
ÀÏÇÑ °ÍÀ¸·Î »ç¿ëÇØ¾ß ÇÑ´Ù.(13.2.4ÀýÀÇ À¯È¿ÀÏ °è»ê ¿øÄ¢À» ÂüÁ¶)

ÀÀ´äÀ» "°áÄÚ ¸¸·áµÇÁö ¾Ê´Â" °ÍÀ¸·Î Ç¥½ÃÇϱâ À§Çؼ­ ¿ø¼­¹ö´Â Expires ³¯Â¥¸¦ ´ë·« ÀÀ´äÀÌ
¹ß¼ÛµÈ ÈÄ ½ÃÁ¡ºÎÅÍ 1 ³â Èĸ¦ ÁöÁ¤ÇÑ´Ù. HTTP/1.1 ¼­¹ö´Â ÇâÈÄ 1³â ÀÌ»ó µÈ Expires ³¯Â¥¸¦
¹ß¼ÛÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù.

±âº»ÀûÀ¸·Î ij½ÃÇÒ ¼ö ¾ø´Â ÀÀ´ä¿¡ ¹Ì·¡ÀÇ Æ¯Á¤ ½Ã°£ÀÇ ½Ã°£ °ª°ú ÇÔ²² Expires Çì´õ Çʵ尡
Á¸ÀçÇϸé Cache-Control Çì´õ Çʵ尡(14.9Àý ÂüÁ¶) ´Ù¸¥ ½ÄÀ¸·Î Ç¥½ÃÇÏÁö ¾Ê´Â ÇÑ ÀÀ´äÀ» ij½Ã
ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» Ç¥½ÃÇÑ´Ù.

14.22 From

From request-header Çʵå´Â, Á¸ÀçÇÑ´Ù¸é, ¿äû »ç¿ëÀÚ ¿¡ÀÌÀüÆ®¸¦ ÅëÁ¦ÇÏ´Â Àΰ£ »ç¿ëÀÚÀÇ ÀÎÅÍ
³Ý ÀüÀÚ¿ìÆí ÁÖ¼Ò¸¦ Æ÷ÇÔÇÏ°í ÀÖ¾î¾ß ÇÑ´Ù. ÁÖ¼Ò´Â RFC 822ÀÇ ¿ìÆíÇÔ (as updated by RFC 1123
¿¡ ÀÇÇÏ¿© °»½ÅµÈ °Íó·³)ÀÌ ±ÔÁ¤ÇÑ °Íó·³ ±â°è°¡ »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀ̾î¾ß ÇÑ´Ù.

          From   = "From" ":" mailbox

»ç¿ë ¿¹´Â,

          From: webmaster@w3.org

ÀÌ Çì´õ Çʵå´Â ·Î±ë(logging) ¸ñÀûÀ̳ª ¹«È¿À̰ųª ¿øÇÏÁö ¾Ê´Â ¿ä±¸ÀÇ Ãâó¸¦ È®ÀÎÇÏ´Â ¼ö´Ü
À¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. Á¢¼Ó ±ÝÁöÀÇ ºÒÈ®½ÇÇÑ ÆûÀ¸·Î »ç¿ëÇؼ­´Â ¾È µÈ´Ù. ÀÌ Çʵå´Â ¿ä±¸°¡ ÁÖ
¾îÁø »ç¶÷(¼öÇàµÈ method¿¡ ´ëÇÑ Ã¥ÀÓÀ» Áö´Â »ç¶÷)À» ´ë½ÅÇÏ¿© ¼öÇàµÇ°í ÀÖ´Â °ÍÀ¸·Î Çؼ®ÇÑ
´Ù. ƯÈ÷ ·Îº¿ ¿¡ÀÌÀüÆ®´Â ÀÌ Çì´õ¸¦ Æ÷ÇÔÇÏ¿© ¼ö½ÅÃø ³¡¿¡¼­ ¹®Á¦°¡ ¹ß»ýÇÏ¿´À» ¶§ ·Îº¿À»
¿î¿µÇϴ åÀÓÀ» Áø »ç¶÷°ú ¿¬¶ôÇÒ ¼ö ÀÖµµ·Ï ÇØ¾ß ÇÑ´Ù.

[Page 118]

 

ÀÌ ÇʵåÀÇ ÀÎÅÍ³Ý ÀüÀÚ¿ìÆí ÁÖ¼Ò´Â ¿ä±¸¸¦ ¹ß¼ÛÇÑ ÀÎÅÍ³Ý È£½ºÆ®¿Í ±¸º°µÉ ¼ö ÀÖ´Ù. ¿¹¸¦ µé
¾î ¿ä±¸°¡ ÇÁ¶ô½Ã¸¦ Åë°úÇÒ °æ¿ì ¿ø¼­¹öÀÇ ÁÖ¼Ò¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

ÁÖÀÇ: Ŭ¶óÀ̾ðÆ®´Â »ç¿ëÀÚÀÇ µ¿ÀÇ ¾øÀÌ´Â ±×°ÍÀÌ »ç¿ëÀÚÀÇ »ç»ýÈ° º¸È£³ª »çÀÌÆ®ÀÇ º¸¾È
Á¤Ã¥°ú Ãæµ¹ÇÒ ¼ö Àֱ⠶§¹®¿¡ From Çì´õ Çʵ带 ¹ß¼ÛÇؼ­´Â ¾È µÈ´Ù. »ç¿ëÀÚ´Â ¿ä±¸¸¦ ¹ß
¼ÛÇϱâ Àü ¾î¶² ½ÃÁ¡¿¡¶óµµ ÀÌ ÇʵåÀÇ °ªÀ» ¹«·ÂÈ­, È°¼ºÈ­ ¹× º¯°æÇÒ ¼ö ÀÖµµ·Ï ÇÒ °ÍÀ»
°­·ÂÈ÷ ÃßõÇÑ´Ù.

14.23 Host

Host request-header Çʵå´Â »ç¿ëÀÚ³ª ÂüÁ¶ÇÏ°íÀÚ ÇÏ´Â ÀÚ¿ø(º¸Åë 3.2.2 Àý¿¡ ±â¼úÇÑ HTTP
URL)ÀÌ ºÎ¿©ÇÑ ¿ø·¡ÀÇ URL¿¡¼­ ¾òÀº ´ë·Î ¿ä±¸ ¹Þ°í ÀÖ´Â ÀÚ¿øÀÇ ÀÎÅÍ³Ý È£½ºÆ®¿Í Æ÷Æ®
¼ýÀÚ¸¦ ¸í½ÃÇÑ´Ù. Host ÇÊµå °ªÀº ¹Ýµå½Ã ¿ø¼­¹ö³ª ¿ø·¡ÀÇ URLÀÌ ºÎ¿©ÇÑ °ÔÀÌÆ®¿þÀÌ ³×Æ®¿ö
Å© À§Ä¡¸¦ Ç¥½ÃÇØ¾ß ÇÑ´Ù. ÀÌ°ÍÀº ¿ø¼­¹ö³ª °ÔÀÌÆ®¿þÀÌ°¡ ´ÜÀÏ IP ÁÖ¼ÒÀÇ º¹¼ö È£½ºÆ® À̸§
¿¡ »ç¿ëµÇ´Â È£½ºÆ®ÀÇ ·çÆ® "/" URL°ú °°ÀÌ ³»ºÎÀûÀ¸·Î ¸ðÈ£ÇÑ URLÀ» ±¸º°ÇÒ ¼ö ÀÖµµ·Ï
ÇÑ´Ù.

          Host = "Host" ":" host [ ":" port ]    ; ¼½¼Ç3.2.2

µÚ µû¸£´Â Æ÷Æ® Á¤º¸°¡ ¾ø´Â "È£½ºÆ®"´Â ¿ä±¸µÈ ¼­ºñ½ºÀÇ ±âº» Æ÷Æ®¸¦ ÀǹÌÇÑ´Ù.(HTTP URL
ÀÇ "80"). ¿¹¸¦ µé¾î ¿ø¼­¹öÀÇ <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)¸¦ ÃÖ¼ÒÈ­Çϸ鼭 ij½ÃµÈ Á¤º¸¸¦ È¿°ú
ÀûÀ¸·Î °»½ÅÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀÌ´Ù.

Range request-header Çʵå´Â If-Modified-SinceÀÇ Àǹ̸¦ º¯°æÇÑ´Ù´Â Á¡¿¡ ÁÖÀÇÇÑ´Ù. ÀüüÀûÀÎ
³»¿ëÀº14.36ÀýÀ» ÂüÁ¶ÇÑ´Ù.

Ŭ¶óÀ̾ðÆ®¿Í µ¿½ÃÈ­µÇÁö ¾ÊÀº ½Ã°è¸¦ °¡Áø ¼­¹ö°¡ If-Modified-Since ½Ã°£À» Çؼ®ÇÒ ¼ö ÀÖÀ½
À» ÁÖÀÇÇØ¾ß ÇÑ´Ù.

Ŭ¶óÀ̾ðÆ®°¡ µ¿ÀÏÇÑ ¿ä±¸¿¡¼­ If-Modified-Since Çì´õ¸¦ °¡Á® ¿À´Â ´ë½Å If-Modified-Since Çì´õ
¿¡ ÀÚÀÇÀûÀÎ ³¯Â¥¸¦ »ç¿ëÇÏ¿´À¸¸é Ŭ¶óÀ̾ðÆ®´Â ÀÌ ³¯Â¥°¡ ¼­¹öÀÇ ½Ã°£ Çؼ® ¹æ½Ä¿¡ ÀÇÇØ ÇØ
¼®µÈ´Ù´Â »ç½ÇÀ» ÀÎÁöÇؾ߸¸ ÇÑ´Ù´Â °Í¿¡ ÁÖÀÇÇØ¾ß ÇÑ´Ù. Ŭ¶óÀ̾ðÆ®´Â µ¿½ÃÈ­µÇÁö ¾Ê´Â ½Ã°è
¹× Ŭ¶óÀ̾ðÆ®¿Í ¼­¹öÀÇ »çÀÌÀÇ °¢±â ´Ù¸¥ ½Ã°£ ÀÎÄÚµùÀ¸·Î ÀÎÇÑ ¹Ý¿Ã¸²À» °í·ÁÇØ¾ß ÇÑ´Ù. ÀÌ
°ÍÀº óÀ½ ¿ä±¸ÇÑ ½Ã°£°ú °è¼ÓµÇ´Â ¿ä±¸ÀÇ If-Modified-Since ³¯Â¥ »çÀÌ¿¡¼­ ¹®¼­°¡ º¯°æµÇ¾úÀ»
°æ¿ì °æÀï »óȲ(race conditions)ÀÌ ¹ß»ýÇÒ °¡´É¼º ¹× If-Modified-Since ³¯Â¥¸¦ Ŭ¶óÀ̾ðÆ®ÀÇ ½Ã°è
¿¡¼­ ¼­¹ö ½Ã°è¿Í ¿¬°á ¾øÀÌ ÃßÃâÇÏ¿´À» °æ¿ì Ʋ¸° ½Ã°è¿Í °ü·ÃµÈ(clock-skew-related) ¹®Á¦°¡
¹ß»ýÇÒ °¡´É¼ºÀ» ¸ðµÎ Æ÷ÇÔÇÑ´Ù. Ŭ¶óÀ̾ðÆ®¿Í ¼­¹ö »çÀÌÀÇ Æ²¸° ½Ã°£ÀÇ ±³Á¤Àº ±â²¯ÇØ¾ß ³×
Æ®¿÷ÀÇ Àẹ±â(network latency) ¶§¹®¿¡ ±Ù»çÄ¡ÀÏ »ÓÀÌ´Ù.

[Page 120]


14.25 If-Match

If-Match request-header Çʵå´Â method¿Í ÇÔ²² »ç¿ëÇÏ¿© method¸¦ Á¶°ÇÀûÀ¸·Î ¸¸µç´Ù. ÀÌÀü¿¡
ÀÚ¿ø¿¡¼­ ȹµæÇÑ Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ ¿£ÅÍƼ¸¦ °¡Áø Ŭ¶óÀ̾ðÆ®´Â ¿¬°üµÈ ¿£ÅÍƼ ű×ÀÇ ¸ñ
·ÏÀ» If-Match Çì´õ Çʵ忡 Æ÷ÇÔÇÏ¿© ÀÌ·¯ÇÑ ¿£ÅÍƼ ÁßÀÇ Çϳª°¡ ÇöÀçÀÇ °ÍÀÓÀ» Áõ¸íÇÒ ¼ö ÀÖ
´Ù. ÀÌ ±â´ÉÀÇ ¸ñÀûÀº Æ®·£Àè¼Ç ¿À¹öÇìµå(transaction overhead)¸¦ ÃÖ¼ÒÈ­Çϸ鼭 ij½ÃµÈ Á¤º¸¸¦
È¿°úÀûÀ¸·Î °»½ÅÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀÌ´Ù. ¶ÇÇÑ ¿ä±¸¸¦ °»½ÅÇÒ ¶§ ÀÚ¿øÀÇ À߸øµÈ ¹öÀü¿¡ ´ë
ÇÑ ºÎÁÖÀÇÇÑ º¯°æÀ» ¹æÁöÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ´Ù. Ưº°ÇÑ °æ¿ì·Î "*" °ªÀº ÀÚ¿øÀÇ ¸ðµç ÇöÀç
¿£ÅÍƼ¿Í ÀÏÄ¡ÇÑ´Ù.

          If-Match = "If-Match" ":" ( "*" | 1#entity-tag )

ÇØ´ç ÀÚ¿ø¿¡ À¯»çÇÑGET ¿ä±¸(If-Match Çì´õ ¾øÀÌ)¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î ¸®ÅϵǾúÀ» ¼ö ÀÖ´Â ¿£ÅÍ
ƼÀÇ ¿£ÅÍƼ ÅÂ±×¿Í ÀÏÄ¡ÇÏ´Â ¾î¶°ÇÑ ¿£ÅÍƼ ű׳ª "*"ÀÌ ÁÖ¾îÁö°í ÇØ´ç ÀÚ¿ø¿¡ ´ëÇÑ ÇöÀç
ÀÇ ¿£ÅÍƼ°¡ Á¸ÀçÇÑ´Ù¸é ¼­¹ö´Â If-Match Çì´õ Çʵ尡 Á¸ÀçÇÏÁö ¾Ê´Â °Íó·³ ¿ä±¸ ¹ÞÀº
method¸¦ ¼öÇàÇÒ °ÍÀÌ´Ù.

¼­¹ö´Â If-MatchÀÇ ¿£ÅÍƼ ű׸¦ ºñ±³Çϱâ À§ÇÏ¿© ¹Ýµå½Ã °­ÇÑ ºñ±³ ±â´É(strong comparison
function (3.11 Àý ÂüÁ¶))À» »ç¿ëÇØ¾ß ÇÑ´Ù.

¾Æ¹«·± ¿£ÅÍƼ ű׵µ ÀÏÄ¡ÇÏÁö ¾Ê°Å³ª "*" ÀÌ ÁÖ¾îÁ³´Âµ¥µµ ¾Æ¹«·± ÇöÀçÀÇ ¿£ÅÍƼ°¡ Á¸ÀçÇÏ
Áö ¾ÊÀ¸¸é ¼­¹ö´Â ¿ä±¸ ¹ÞÀº method¸¦ Àý´ë ¼öÇàÇؼ­´Â ¾ÈµÇ°í ¹Ýµå½Ã 412 (Precondition Failed)
ÀÀ´äÀ» ¸®ÅÏÇØ¾ß ÇÑ´Ù. ÀÌ ÇàÅ´ Ŭ¶óÀ̾ðÆ®°¡ PUT°ú °°Àº °»½Å method°¡ Ŭ¶óÀ̾ðÆ®°¡ ¸¶
Áö¸·À¸·Î Á¶È¸ÇÑ ÀÌÈÄ º¯°æµÈ ÀÚ¿øÀ» ´Ù½Ã º¯°æÇÏÁö ¸øÇϵµ·Ï ÇÑ´Ù.

If-Match Çì´õ ÇÊµå ¾øÀÌ ¿ä±¸°¡ 2xx »óÅ ÀÌ¿ÜÀÇ ¾î¶² °ÍÀÌ¶óµµ ÃÊ·¡ÇÏ°Ô µÇ¸é If-Match¸¦ ¹«
½ÃÇØ¾ß ÇÑ´Ù.

"If-Match: *" ÀÇ Àǹ̴ ¿ø¼­¹ö(¶Ç´Â Vary ¸ÞÄ¿´ÏÁòÀ» ÀÌ¿ëÇÑ Ä³½Ã, 14.43Àý ÂüÁ¶)°¡ ¼±ÅÃÇÑ Ç¥
½Ã ¹æ¹ýÀÌ Á¸ÀçÇϸé method¸¦ ¹Ýµå½Ã ¼öÇàÇØ¾ß ÇÏ°í ±×·¸Áö ¾Ê´Ù¸é Àý´ë ¼öÇàÇؼ­´Â ¾È µÈ´Ù
´Â °ÍÀÌ´Ù.

[Page 121]

 

ÀÚ¿øÀ» °»½ÅÇÒ ¸ñÀûÀÇ ¿ä±¸(¿¹¸¦ µé¾î PUT)´Â If-Match°ª(´ÜÀÏ ¿£ÅÍƼ ű×)¿¡ »óÀÀÇÏ´Â ¿£ÅÍ
Ƽ°¡ ´õ ÀÌ»ó ÇØ´ç ÀÚ¿øÀ» Ç¥½ÃÇÏ´Â ¾Ê´Â´Ù¸é ¿ä±¸ method¸¦ Àý´ë·Î Àû¿ëÇؼ­´Â ¾È µÈ´Ù´Â
°ÍÀ» Ç¥½ÃÇϱâ À§ÇÏ¿© If-Match Çì´õ Çʵ带 Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. ÀÌ°ÍÀº »ç¿ëÀÚ°¡ ÀÚ½ÅÀÌ ÀÎÁöÇÏ
Áö ¸øÇÏ´Â µ¿¾È ÀÚ¿øÀÌ º¯°æµÇ¾úÀ¸¸é ¿ä±¸°¡ ¿Ï·áµÇ´Â °ÍÀ» ¹Ù¶óÁö ¾ÊÀ½À» Ç¥½ÃÇÒ ¼ö ÀÖµµ·Ï
ÇÑ´Ù.
¿¹¸¦ µé¸é,

          If-Match: "xyzzy"
          If-Match: "xyzzy", "r2d2xxxx", "c3piozzzz"
          If-Match: *

14.26 If-None-Match

If-None-Match request-header Çʵå´Â method¿Í ÇÔ²² »ç¿ëÇÏ¿© method¸¦ Á¶°ÇÀûÀ¸·Î ¸¸µç´Ù. ÀÌ
Àü¿¡ ÀÚ¿ø¿¡¼­ ȹµæÇÑ Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ ¿£ÅÍƼ¸¦ °¡Áø Ŭ¶óÀ̾ðÆ®´Â ¿¬°üµÈ ¿£ÅÍƼ ű×
ÀÇ ¸ñ·ÏÀ» If-None-Match Çì´õ Çʵ忡 Æ÷ÇÔÇÏ¿© ÀÌ·¯ÇÑ ¿£ÅÍƼ ÁßÀÇ Çϳª°¡ ÇöÀçÀÇ °ÍÀÓÀ» Áõ
¸íÇÒ ¼ö ÀÖ´Ù. ÀÌ ±â´ÉÀÇ ¸ñÀûÀº Æ®·£Àè¼Ç ¿À¹öÇìµå(transaction overhead)¸¦ ÃÖ¼ÒÈ­Çϸ鼭 ij½Ã
µÈ Á¤º¸¸¦ È¿°úÀûÀ¸·Î °»½ÅÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀÌ´Ù. ¶ÇÇÑ ¿ä±¸¸¦ °»½ÅÇÒ ¶§ ÀÚ¿øÀÇ À߸øµÈ
¹öÀü¿¡ ´ëÇÑ ºÎÁÖÀÇÇÑ º¯°æÀ» ¹æÁöÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

Ưº°ÇÑ °æ¿ì·Î "*" °ªÀº ÀÚ¿øÀÇ ¸ðµç ÇöÀç ¿£ÅÍƼ¿Í ÀÏÄ¡ÇÑ´Ù.

          If-None-Match = "If-None-Match" ":" ( "*" | 1#entity-tag )

ÇØ´ç ÀÚ¿ø¿¡ À¯»çÇÑGET ¿ä±¸(If-Match Çì´õ ¾øÀÌ)¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î ¸®ÅϵǾúÀ» ¼ö ÀÖ´Â ¿£ÅÍ
ƼÀÇ ¿£ÅÍƼ ÅÂ±×¿Í ÀÏÄ¡ÇÏ´Â ¾î¶°ÇÑ ¿£ÅÍƼ ű׳ª "*"ÀÌ ÁÖ¾îÁö°í ÇØ´ç ÀÚ¿ø¿¡ ´ëÇÑ ÇöÀçÀÇ
¿£ÅÍƼ°¡ Á¸ÀçÇÑ´Ù¸é ¼­¹ö´Â ¿ä±¸ ¹ÞÀº method¸¦ Àý´ë·Î ¼öÇàÇؼ­´Â ¾È µÈ´Ù. ´ë½Å ¿ä±¸
method°¡ GET ¶Ç´Â HEADÀÌ¸é ¼­¹ö´Â ÀÏÄ¡ÇÏ´Â ¿£ÅÍƼ Áß ÇϳªÀÇ Ä³½Ã¿Í °ü·ÃµÈ entity-
header Çʵå(ƯÈ÷ ETag)¸¦ Æ÷ÇÔÇÏ¿© 304 (Not Modified) ÀÀ´äÀ¸·Î ÀÀÇØ¾ß ÇÑ´Ù. ´Ù¸¥ ¸ðµç ¿ä±¸
method¿¡ ´ëÇؼ­ ¼­¹ö´Â »óÅ 412(Precondition Failed)·Î ÀÀ´äÇØ¾ß ÇÑ´Ù.

µÎ ¿£ÅÍƼ űװ¡ ÀÏÄ¡ÇÏ´ÂÁö °áÁ¤ÇÏ´Â ¿øÄ¢¿¡ ´ëÇÏ¿©´Â 13.3.3ÀýÀ» ÂüÁ¶ÇÑ´Ù. GET ¶Ç´Â
HEAD ¿ä±¸¿¡´Â ¾àÇÑ ºñ±³ ±â´É(weak comparison function )¸¸À» »ç¿ëÇÒ ¼ö ÀÖ´Ù.

¾î¶°ÇÑ ¿£ÅÍƼ ű׵µ ÀÏÄ¡ÇÏÁö ¾Ê°í "*"ÀÌ ÁÖ¾îÁö°í ÇØ´ç ÀÚ¿ø¿¡ ´ëÇÑ ¾Æ¹«·± ÇöÀç ¿£ÅÍƼµµ
Á¸ÀçÇÏÁö ¾Ê´Â´Ù¸é ¼­¹ö´Â If-None-Match Çì´õ Çʵ尡 Á¸ÀçÇÏÁö ¾Ê´Â °Íó·³ ¿ä±¸ ¹ÞÀº
method¸¦ ¼öÇàÇÒ °ÍÀÌ´Ù.

[Page 121]

 

If-None-Match Çì´õ ÇÊµå ¾øÀÌ ¿ä±¸°¡ 2xx »óÅ ÀÌ¿ÜÀÇ ¾î¶² °ÍÀÌ¶óµµ ÃÊ·¡ÇÏ°Ô µÇ¸é If-None-
Match¸¦ ¹«½ÃÇØ¾ß ÇÑ´Ù.

" If-None-Match: *" ÀÇ Àǹ̴ ¿ø¼­¹ö(¶Ç´Â Vary ¸ÞÄ¿´ÏÁòÀ» ÀÌ¿ëÇÑ Ä³½Ã, 14.43Àý ÂüÁ¶)°¡ ¼±ÅÃ
ÇÑ Ç¥½Ã ¹æ¹ýÀÌ Á¸ÀçÇϸé method¸¦ ¹Ýµå½Ã ¼öÇàÇØ¾ß ÇÏ°í ±×·¸Áö ¾Ê´Ù¸é Àý´ë ¼öÇàÇؼ­´Â ¾È
µÈ´Ù´Â °ÍÀÌ´Ù. ÀÌ ±â´ÉÀº PUT ó¸® ½Ã °æÀï(race)À» ¹æÁöÇÏ´Â µ¥ À¯¿ëÇÏ´Ù.

   ¿¹:

          If-None-Match: "xyzzy"
          If-None-Match: W/"xyzzy"
          If-None-Match: "xyzzy", "r2d2xxxx", "c3piozzzz"
          If-None-Match: W/"xyzzy", W/"r2d2xxxx", W/"c3piozzzz"
          If-None-Match: *

14.27 If-Range

Ŭ¶óÀ̾ðÆ®°¡ ÀÚ½ÅÀÇ Ä³½Ã¿¡ ¿£ÅÍƼÀÇ ºÎºÐÀû »çº»À» °¡Áö°í ÀÖ°í Àüü ¿£ÅÍƼÀÇ ÃֽŠ°»½Å
»çº»À» °¡Áö°í ½Í´Ù¸é Á¶°ÇÀûÀÎ GET(If-Unmodified-Since ¹× If-Match Áß Çϳª³ª µÑ ¸ðµÎ¸¦ ÀÌ
¿ëÇÏ¿©)ÀÇ Range request-header¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª ¿£ÅÍƼ°¡ º¯°æµÇ¾î Á¶°ÇÀÌ ½ÇÆÐÇÑ´Ù
¸é Ŭ¶óÀ̾ðÆ®´Â ÇöÀçÀÇ Àüü entity-body¸¦ ȹµæÇϱâ À§ÇØ 2Â÷ ¿ä±¸¸¦ ÇÒ ¼ö ÀÖ´Ù.

If-Range Çì´õ´Â Ŭ¶óÀ̾ðÆ®°¡ 2Â÷ ¿ä±¸¸¦ "´ÜÃà(short-circuit)"ÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ¾à½ÄÀ¸·Î ¸»
Çϸé ÀÌ°ÍÀÇ Àǹ̴ `¿£ÅÍƼ°¡ º¯°æµÇÁö ¾Ê¾Ò´Ù¸é ³»°¡ ºüÆ®¸° ºÎºÐ¸¸À» ¹ß¼ÛÇÏ°í ±×·¸Áö ¾Ê
´Ù¸é »õ·Î¿î Àüü ¿£ÅÍƼ¸¦ ¹ß¼ÛÇϽÿÀ. 'ÀÌ´Ù.

           If-Range = "If-Range" ":" ( entity-tag | HTTP-date )

Ŭ¶óÀ̾ðÆ®°¡ ¿£ÅÍƼÀÇ ¿£ÅÍƼ ű׸¦ °¡Áö°í ÀÖÁö ¾ÊÀ¸³ª Last-Modified ³¯Â¥¸¦ °¡Áö°í ÀÖÀ¸
¸é Ŭ¶óÀ̾ðÆ®´Â ±× ³¯Â¥¸¦ If-Range Çì´õ¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ´Ù. (¼­¹ö´Â 2 ¹®ÀÚ À̳»¸¦ °Ë»çÇÏ
¿© À¯È¿ÇÑ HTTP-date¿Í entity-tageÀÇ ¾î¶°ÇÑ Æûµµ ±¸º°ÇÒ ¼ö ÀÖ´Ù.) If-Range Çì´õ´Â Range Çì
´õ¿Í ÇÔ²²¸¸ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç, Range Çì´õ¸¦ Æ÷ÇÔÇÏ°í ÀÖÁö ¾Ê°Å³ª ¼­¹ö°¡ ÇϺÎ-¿µ¿ª ¿î¿µ
(sub-range operation)À» Áö¿øÇÏÁö ¾ÊÀ¸¸é ¿ä±¸¸¦ ¹Ýµå½Ã ¹«½ÃÇØ¾ß ÇÑ´Ù.

[Page 123]

 

If-Range ³»ÀÇ ¿£ÅÍƼ űװ¡ ¿£ÅÍƼÀÇ ÇöÀç ¿£ÅÍƼ ÅÂ±×¿Í ÀÏÄ¡ÇÏ¸é ¼­¹ö´Â 206 (Partial
content)ÀÀ´äÀ» ÀÌ¿ëÇÏ¿© ÀÚ¼¼ÇÑ ¿£ÅÍƼÀÇ ÇϺÎ-¿µ¿ªÀ» Á¦°øÇؾ߸¸ ÇÑ´Ù. ¿£ÅÍƼ űװ¡ ÀÏÄ¡ÇÏ
Áö ¾ÊÀ¸¸é ¼­¹ö´Â 200 (OK) ÀÀ´äÀ» ÀÌ¿ëÇÏ¿© Àüü ¿£ÅÍƼ¸¦ ¸®ÅÏÇØ¾ß ÇÑ´Ù.

14.28 If-Unmodified-Since

If-Unmodified-Since request-header Çʵå´Â method¿Í ÇÔ²² »ç¿ëÇÏ¿© method¸¦ Á¶°ÇÀûÀ¸·Î ¸¸µç´Ù.
¿ä±¸µÈ ÀÚ¿øÀÌ ÀÌ Çʵ忡 ¸í½ÃµÈ ½Ã°£ ÀÌÈÄ º¯°æµÇÁö ¾Ê¾ÒÀ¸¸é ¼­¹ö´Â If-Unmodified-Since Çì
´õ°¡ Á¸ÀçÇÏÁö ¾Ê´Â °Íó·³ ¿ä±¸ ¹ÞÀº ÀÛ¾÷À» ¼öÇàÇØ¾ß ÇÑ´Ù.

¿ä±¸ ¹ÞÀº º¯ÇüÀÚ°¡ ÁöÁ¤µÈ ½Ã°£ ÀÌÈÄ¿¡ º¯°æµÇ¾úÀ¸¸é ¼­¹ö´Â ¿ä±¸ ¹ÞÀº ÀÛ¾÷À» Àý´ë·Î ¼öÇà
Çؼ­´Â ¾È µÇ¸ç ¹Ýµå½Ã 412 (Precondition Failed)¸¦ ¸®ÅÏÇØ¾ß ÇÑ´Ù.

         If-Unmodified-Since = "If-Unmodified-Since" ":" HTTP-date

ÀÌ ÇʵåÀÇ »ç¿ë ¿¹´Â,

          If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT

¿ä±¸°¡ ´ë°³(¿¹¸¦ µé¾î If-Unmodified-Since Çì´õ ¾øÀÌ) 2xx »óÅ ÀÌ¿ÜÀÇ ¾î¶² °ÍÀÌ¶óµµ ÃÊ·¡ÇÏ
°Ô µÇ¸é If-Unmodified-Since¸¦ ¹«½ÃÇØ¾ß ÇÑ´Ù.

¸í½ÃÇÑ ³¯Â¥°¡ À¯È¿ÇÏÁö ¾ÊÀ¸¸é Çì´õ¸¦ ¹«½ÃÇØ¾ß ÇÑ´Ù.

14.29 Last-Modified

Last-Modified entity-header Çʵå´Â ¿ø¼­¹ö°¡ º¯ÇüÀÚ°¡ ¸¶Áö¸·À¸·Î º¯°æµÇ¾ú´Ù°í ¹Ï´Â ³¯Â¥¿Í ½Ã
°£À» Ç¥½ÃÇÑ´Ù.

          Last-Modified  = "Last-Modified" ":" HTTP-date

»ç¿ë ¿¹´Â,

          Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT

ÀÌ Çì´õ ÇʵåÀÇ Á¤È®ÇÑ Àǹ̴ ¿ø¼­¹öÀÇ ±¸Çö ¹æ½Ä ¹× ¿ø·¡ ÀÚ¿øÀÇ ¼º°Ý¿¡ µû¶ó ´Þ¶óÁø´Ù. ÆÄ
ÀÏÀÇ °æ¿ì Àǹ̴ ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­ ¸¶Áö¸·À¸·Î º¯°æµÈ ½Ã°£À» ¿ªµ¿ÀûÀ¸·Î ºÎºÐÀ» Æ÷ÇÔÇÏ´Â ¿£
ÅÍƼÀÇ °æ¿ì Àǹ̴ ºÎºÐ ¿ä¼Ò°¡ ¸¶Áö¸·À¸·Î º¯°æµÈ ½Ã°£ ¼¼Æ®°¡ µÉ ¼ö ÀÖ´Ù. µ¥ÀÌÅÍ º£À̽º
°ÔÀÌÆ®¿þÀÌÀÇ °æ¿ì¿¡´Â ·¹ÄÚµåÀÇ ÃÖ±Ù °»½Å ½Ã°£ ½ºÅÆÇÁ(stamp)¸¦ , °¡»ó °´Ã¼ÀÇ °æ¿ì¿¡´Â ³»
ºÎ »óÅ°¡ ¸¶Áö¸·À¸·Î º¯°æµÈ ½Ã°£ÀÏ ¼ö ÀÖ´Ù.
[Page 124]

 

¿ø¼­¹ö´Â Àý´ë ¼­¹öÀÇ ¸Þ½ÃÁö ¹ß»ý ½Ã°£º¸´Ù ´ÊÀº Last-Modified ³¯ÀÚ¸¦ ¹ß¼ÛÇؼ­´Â ¾È µÈ´Ù.
ÀÌó·³ ÀÚ¿øÀÇ ÃÖ±Ù º¯°æÀÌ ¹Ì·¡ÀÇ Æ¯Á¤ ½Ã°£À» Ç¥½ÃÇÏ´Â °æ¿ì ¼­¹ö´Â ±× ³¯Â¥¸¦ ¸Þ½ÃÁö ¹ß»ý
³¯Â¥·Î ´ëüÇØ¾ß ÇÑ´Ù.

±âº» ¼­¹ö´Â ¿£ÅÍƼÀÇ Last-Modified °ªÀ» ÀÀ´äÀÇ Date °ªÀ» »ý¼ºÇÑ ½Ã°£°ú °¡´ÉÇÑ ÇÑ °¡±î¿î
°ÍÀ» ¾ò¾î¾ß ÇÑ´Ù. ÀÌ°ÍÀº ¼ö½ÅÃøÀÌ Æ¯È÷ ¿£ÅÍƼ°¡ ÀÀ´äÀÌ »ý¼ºµÈ ½Ã°£¿¡ °¡±õ°Ô º¯°æµÇ¾úÀ»
¶§ Á¤È®ÇÏ°Ô ¿£ÅÍƼÀÇ º¯°æ ½Ã°£À» Æò°¡ÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù.

HTTP/1.1 ¼­¹ö´Â °¡´ÉÇÒ ¶§ ¸¶´Ù ¹Ýµå½Ã Last-Modified¸¦ ¹ß¼ÛÇØ¾ß ÇÑ´Ù.

14.30 Location

Location response-header Çʵå´Â ¿ä±¸ÀÇ ¿Ï¼º ¶Ç´Â »õ·Î¿î ÀÚ¿øÀÇ ½Äº°À» À§ÇØ ¼ö½ÅÃøÀÇ ¹æÇâÀ»
Request-URI °¡ ¾Æ´Ñ ´Ù¸¥ Àå¼Ò·Î ¹æÇâÀ» Àç¼³Á¤ÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. 201 (Created) ÀÀ´äÀÇ °æ¿ì
Location Àº ¿ä±¸¿¡ ÀÇÇØ »õ·Ó°Ô »ý¼ºµÈ ÀÚ¿øÀÇ À§Ä¡ÀÌ´Ù. 3xx ÀÀ´äÀÇ °æ¿ì À§Ä¡´Â ÀÚ¿øÀÇ ÀÚ
µ¿ ¹æÇâ Àç¼³Á¤À» À§ÇØ ¼­¹ö°¡ ¼±È£ÇÏ´Â URLÀ» Ç¥½ÃÇÑ´Ù.

          Location       = "Location" ":" absoluteURI

¿¹´Â,

          Location: http://www.w3.org/pub/WWW/People.html

ÁÖÀÇ : Content-Location Çì´õ Çʵå(14.15Àý)´Â Content-LocationÀÌ ¿ä±¸¿¡ Æ÷ÇÔµÈ ¿£ÅÍƼÀÇ ¿ø
·¡ À§Ä¡¸¦ ½Äº°ÇÑ´Ù´Â Á¡¿¡¼­ Location°ú ´Ù¸£´Ù. µû¶ó¼­ ÀÀ´äÀÌ Location ¹× Content-
Location Çì´õ Çʵ带 ¸ðµÎ Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. ¸î¸î methodsÀÇ Ä³½Ã ÇÊ¿ä Á¶°Ç¿¡ °üÇؼ­´Â
13.10 ÀýÀ» ÂüÁ¶ÇÑ´Ù.

14.31 Max-Forwards

Max-Forwards request-header Çʵå´Â TRACE method (14.31 Àý)¿Í ÇÔ²² »ç¿ëÇÏ¿© ´ÙÀ½ÀÇ µé¾î¿À´Â
¹æÇâ(inbound)ÀÇ ¼­¹ö¿¡ ¿ä±¸¸¦ Àü´ÞÇÒ ¼ö ÀÖ´Â ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌÀÇ ¼ýÀÚ¸¦ Á¦ÇÑÇÑ´Ù.

          Max-Forwards   = "Max-Forwards" ":" 1*DIGIT

[Page 125]

 

Max-Forwards °ªÀº ÀÌ ¿ä±¸ ¸Þ½ÃÁö°¡ Àü´ÞµÉ ¼ö ÀÖ´Â ³²Àº Ƚ¼ö¸¦ Ç¥½ÃÇÏ´Â ½ÊÁø¼ö Á¤¼öÀÌ´Ù.

Max-Forwards Çì´õ Çʵ带 Æ÷ÇÔÇÏ°í ÀÖ´Â TRACE ¿ä±¸¸¦ ¼ö½ÅÇÏ´Â °¢°¢ÀÇ ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þ
ÀÌ´Â ¿ä±¸¸¦ Àü´ÞÇÏÁö ÀÌÀü¿¡ ±× °ªÀ» Á¡°ËÇÏ°í °»½ÅÇؾ߸¸ ÇÑ´Ù. ¼ö½ÅµÈ °ªÀÌ Á¦·Î(0)ÀÌ¸é ¼ö
½ÅÃøÀº ¿ä±¸¸¦ Àü´ÞÇؼ­´Â ¾È µÇ¸ç ´ë½Å ¼ö½ÅÇÑ ¿ä±¸ ¸Þ½ÃÁö¸¦ ÀÀ´ä entity-body(9.8 Àý¿¡ ±â¼ú
ÇÑ ¹Ù¿Í °°ÀÌ)·Î¼­ Æ÷ÇÔÇÏ´Â 200 (OK) ÀÀ´äÀ¸·Î ¸¶Áö¸· ¼ö½ÅÃøÀÇ ÀÔÀå¿¡¼­ ÀÀ´äÇØ¾ß ÇÑ´Ù. ¼ö
½ÅÇÑ Max-Forwards °ªÀÌ Á¦·Îº¸´Ù Å©¸é Àü´ÞµÈ ¸Þ½ÃÁö´Â °ªÀÌ 1¸¸Å­ °¨¼ÒµÈ °»½ÅµÈ Max-
Forwards Çʵ带 Æ÷ÇÔÇØ¾ß ÇÑ´Ù.

Max-Forwards Çì´õ Çʵå´Â ÀÌ ±Ô°Ý¿¡¼­ Á¤ÀÇÇÑ ´Ù¸¥ ¸ðµç method ¹× ÇØ´ç method Á¤ÀÇÀÇ ÀÏ
ºÎºÐÀ¸·Î ¸í¹éÇÏ°Ô ÂüÁ¶µÇÁö ¾Ê´Â ¸ðµç È®Àå method¿¡¼­´Â ¹«½ÃµÇ¾î¾ß ÇÑ´Ù.

14.32 Pragma

Pragma general-header Çʵå´Â request/response chainÀ» µû¶ó ¾î¶² ¼ö½ÅÃø¿¡µµ Àû¿ëÇÒ ¼ö ÀÖ´Â ±¸
Çö ¹æ½Ä¿¡ ÇÑÁ¤µÈ Áö½ÃÀÚ(implementation-specific)¸¦ Æ÷ÇÔÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. ¸ðµç pragma Áö½ÃÀÚ
´Â ±Ô¾àÀÇ °üÁ¡¿¡¼­ ¼±Åà »çÇ×Àû ÇàŸ¦ ¸í½ÃÇÑ´Ù. ±×·¯³ª ¸î¸î ½Ã½ºÅÛÀº ±× ÇàÅ°¡ Áö½ÃÀÚ¿Í
ÀÏÄ¡ÇÒ °ÍÀ» ¿ä±¸ÇÑ´Ù.

          Pragma             = "Pragma" ":" 1#pragma-directive

          pragma-directive   = "no-cache" | extension-pragma
          extension-pragma   = token [ "=" ( token | quoted-string ) ]

No-cache Áö½ÃÀÚ°¡ ¿ä±¸ ¸Þ½ÃÁö¿¡ Á¸ÀçÇÏ¸é ¾ÖÇø®ÄÉÀ̼ÇÀº ¿ä±¸µÇ°í ÀÖ´Â °ÍÀÇ Ä³½Ã »çº»À»
°¡Áö°í ÀÖ´Ù ÇÏ´õ¶óµµ ¿ä±¸¸¦ ¿ø¼­¹ö¿¡ Àü´ÞÇØ¾ß ÇÑ´Ù. ÀÌ pragma Áö½ÃÀÚ´Â no-cache cache-
directive (14.9 Àý ÂüÁ¶)¿Í µ¿ÀÏÇÑ Àǹ̸¦ °¡Áö¸ç ¿©±â¼­´Â HTTP/1.0°úÀÇ È£È¯¼º À¯Áö¸¦ À§ÇØ
±ÔÁ¤ÇÏ¿´´Ù. Ŭ¶óÀ̾ðÆ®´Â No-cache ¿ä±¸°¡ HTTP/1.1À» µû¸£Áö ¾Ê´Â °ÍÀ¸·Î ¾Ë·ÁÁø ¼­¹ö·Î Àü
´ÞµÇ¾úÀ» ¶§ µÎ Çì´õ Çʵ带 ¸ðµÎ Æ÷ÇÔÇØ¾ß ÇÑ´Ù.

Pragma Áö½ÃÀÚ´Â ¾ÖÇø®ÄÉÀ̼ǿ¡¼­ °¡Áö´Â Áß¿äµµ¿¡ °ü°è¾øÀÌ Áö½ÃÀÚ´Â request/response chainÀ» µû
¶ó ¸ðµç ¼ö½ÅÃø¿¡ Àû¿ëÇÒ ¼ö Àֱ⠶§¹®¿¡ ¹Ýµå½Ã ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌ ¾ÖÇø®ÄÉÀ̼ÇÀ» Åë°úÇØ
¾ß ÇÑ´Ù.

[Page 126]

 

HTTP/1.1 Ŭ¶óÀ̾ðÆ®´Â Pragma request-header¸¦ ¹ß¼ÛÇؼ­´Â ¾È µÈ´Ù. HTTP/1.1 ij½Ã´Â "Pragma:
no-cache"¸¦ Ŭ¶óÀ̾ðÆ®°¡ "Cache-Control: no-cache"¸¦ ¹ß¼ÛÇÑ °Íó·³ Ãë±ÞÇØ¾ß ÇÑ´Ù. ´õ ÀÌ»óÀÇ
»õ·Î¿î Pragma Áö½ÃÀÚ´Â HTTP¿¡ ±ÔÁ¤µÇÁö ¾ÊÀ» °ÍÀÌ´Ù.

14.33 Proxy-Authenticate

Proxy-Authenticate response-header Çʵå´Â 407 (Proxy Authentication Required) ÀÀ´äÀÇ ÀÏ ºÎºÐÀ¸·Î
¹Ýµå½Ã Æ÷ÇÔÇØ¾ß ÇÑ´Ù. ÇÊµå °ªÀº Request-URIÀÇ ÇÁ¶ô½Ã¿¡ Àû¿ëÇÒ ¼ö ÀÖ´Â ÀÎÁõ schemeÀ̳ª
ÆĶó¹ÌÅ͸¦ Ç¥½ÃÇÏ´Â ÀÎÁõ ȹµæ ½Ãµµ·Î ±¸¼ºµÇ¾î ÀÖ´Ù.

          Proxy-Authenticate  = "Proxy-Authenticate" ":" challenge

HTTP Á¢±Ù ÀÎÁõ 󸮴 11Àå¿¡ ±â¼úµÇ¾î ÀÖ´Ù. WWW-Authenticate¿Í´Â ´Þ¸® Proxy-
Authenticate Çì´õ Çʵå´Â ÇöÀçÀÇ Á¢¼Ó¿¡¸¸ Àû¿ëµÇ¸ç ´Ù¿î½ºÆ®¸²(downstream) Ŭ¶óÀ̾ðÆ®·Î Àü
´ÞÇؼ­´Â ¾È µÈ´Ù. ±×·¯³ª °¡Àå °¡±î¿î ÇÁ¶ô½Ã´Â ´Ù¿î½ºÆ®¸²(downstream) Ŭ¶óÀ̾ðÆ®¿¡ ¿äûÇÏ
¿© ÀÚ½ÅÀÇ Áõ¸í¼­¸¦ ȹµæÇÒ ÇÊ¿ä°¡ ÀÖÀ» ¼ö ÀÖ´Ù. ¾î¶² »óȲ¿¡¼­´Â ÇÁ¶ô½Ã°¡ Çì´õ Çʵ带 Àü
¼ÛÇÏ´Â °Íó·³ º¸ÀÏ °ÍÀÌ´Ù.

14.34 Proxy-Authorization

Proxy-Authorization request-header Çʵå´Â Ŭ¶óÀ̾ðÆ®°¡ ÀÎÁõÀ» ¿ä±¸ÇÏ´Â ÇÁ¶ô½Ã ÀÚ½Å(¶Ç´Â ÀÚ½Å
ÀÇ »ç¿ëÀÚ)À» ½Äº°½ÃŲ´Ù. Proxy-Authorization ÇÊµå °ªÀº ÇÁ¶ô½Ã ¹×/¶Ç´Â ¿äûµÇ°í ÀÖ´Â ÀÚ¿øÀÇ
¿µ¿ª¿¡ °üÇÑ »ç¿ë ¿¡ÀÌÀüÆ®ÀÇ ÀÎÁõ ȹµæ Á¤º¸¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Â Áõ¸í¼­·Î ±¸¼ºµÇ¾î ÀÖ´Ù.

       Proxy-Authorization     = "Proxy-Authorization" ":" credentials

HTTP Á¢±Ù ÀÎÁõ ȹµæ ÀýÂ÷´Â 11 Àå¿¡ ±â¼úµÇ¾î ÀÖ´Ù. Authorization¿Í´Â ´Þ¸®  Proxy-
Authorization Çì´õ Çʵå´Â Proxy-Authenticate Çʵ带 ÀÌ¿ëÇÑ ÀÎÁõ ȹµæÀ» ¿ä±¸ÇÏ´Â ´ÙÀ½ÀÇ ¿ÜºÎ
·Î ÇâÇÑ(outbound) ÇÁ¶ô½Ã¿¡¸¸ Àû¿ëµÈ´Ù. Chain¿¡¼­ º¹¼öÀÇ ÇÁ¶ô½Ã°¡ »ç¿ëµÇ¾úÀ» ¶§ Proxy-
Authorization Çì´õ Çʵå´Â º¸Áõ¼­¸¦ ¼ö½ÅÇÒ ¿¹Á¤ÀÎ ¿ÜºÎ·Î ÇâÇÑ Ã¹ ÇÁ¶ô½Ã¿¡ ÀÇÇØ »ç¿ëµÈ´Ù.
ÇÁ¶ô½Ã´Â ±×°ÍÀÌ ÇÁ¶ô½Ã°¡ ÁÖ¾îÁø ¿ä±¸¸¦ »óÈ£ ÇùÁ¶ÀûÀ¸·Î ÀÎÁõÇÏ´Â ¸ÞÄ¿´ÏÁòÀ̶ó¸é º¸Áõ¼­¸¦
Ŭ¶óÀ̾ðÆ® ¿ä±¸¿¡¼­ ´ÙÀ½ ÇÁ¶ô½Ã·Î Áß°èÇÒ ¼ö ÀÖ´Ù.

14.35 Public

Public response-header Çʵå´Â ¼­¹ö°¡ Áö¿øÇÏ´Â methods ¼¼Æ®¸¦ ¿­°ÅÇÑ´Ù. ÀÌ ÇʵåÀÇ ¸ñÀûÀº ¾ö
°ÝÇÏ°Ô ¼ö½ÅÃø¿¡ ÀÌ·ÊÀûÀÎ methods¿¡ °üÇÑ ¼­¹öÀÇ ´É·ÂÀ» ¾Ë¸®´Â µ¥ ÀÖ´Ù.
[Page 127]


¿­°ÅµÈ method´Â Request-URI¿¡ Àû¿ëÇÒ ¼ö µµ ÇÒ ¼ö ¾øÀ» ¼öµµ ÀÖ´Ù. Allow Çì´õ Çʵå(14.7Àý)
´Â ƯÁ¤ URI¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â method¸¦ Ç¥½ÃÇÏ´Â µ¥ »ç¿ëÇÑ´Ù.

          Public         = "Public" ":" 1#method

»ç¿ë ¿¹´Â,

          Public: OPTIONS, MGET, MHEAD, GET, HEAD

ÀÌ Çì´õ Çʵå´Â Ŭ¶óÀ̾ðÆ®(¿¹¸¦ µé¾î ¿¬°á °í¸®ÀÇ °¡Àå °¡±î¿î ÀÌ¿ô)¿¡ Á÷Á¢ÀûÀ¸·Î Á¢¼ÓµÈ
¼­¹ö¿¡¸¸ Àû¿ëµÈ´Ù. ÀÀ´äÀÌ ÇÁ¶ô½Ã¸¦ Åë°úÇÑ´Ù¸é ÇÁ¶ô½Ã´Â Public Çì´õ Çʵ带 »èÁ¦ÇϵçÁö ÀÚ
½ÅÀÇ ´É·Â¿¡ Àû¿ëÇÒ ¼ö ÀÖ´Â °ÍÀ¸·Î ´ëüÇØ¾ß ÇÑ´Ù.

14.36 Range

14.36.1 Byte Ranges

¸ðµç HTTP ¿£ÅÍƼ´Â ¿¬¼ÓÀûÀÎ ¹ÙÀÌÆ®·Î¼­ HTTP ¸Þ½ÃÁö ³»¿¡ Ç¥ÇöµÇ±â ¶§¹®¿¡ ¹ÙÀÌÆ® ¹üÀ§ÀÇ
°³³äÀº ¸ðµç HTTP ¿£ÅÍƼ¿¡ Àǹ̰¡ ÀÖ´Ù.(±×·¯³ª ¸ðµç Ŭ¶óÀ̾ðÆ®³ª ¼­¹ö°¡ byte-range ÀÛ¾÷À»
Áö¿øÇÒ ÇÊ¿ä´Â ¾ø´Ù.)

HTTP ³»ÀÇ ¹ÙÀÌÆ® ¿µ¿ª ±Ô°ÝÀº entity-body(¹Ýµå½Ã message-body¿Í µ¿ÀÏÇÒ ÇÊ¿ä´Â ¾ø´Ù.) ³»ÀÇ
¹ÙÀÌÆ® ¿¬¼Ó¿¡ Àû¿ëµÈ´Ù.

¹ÙÀÌÆ® ¿µ¿ª ÀÛ¾÷Àº ´ÜÀÏ ¹ÙÀÌÆ® ¿µ¿ªÀ̳ª ´ÜÀÏ ¿£ÅÍƼ ³»ÀÇ ¿µ¿ª ¼¼Æ®¸¦ ¸í½ÃÇÒ ¼ö ÀÖ´Ù.

       ranges-specifier  = byte-ranges-specifier

       byte-ranges-specifier = bytes-unit "=" byte-range-set

       byte-range-set   = 1#( byte-range-spec | suffix-byte-range-spec )

       byte-range-spec   = first-byte-pos "-" [last-byte-pos]

       first-byte-pos    = 1*DIGIT

       last-byte-pos     = 1*DIGIT

Byte-range-specÀÇ first-byte-pos °ªÀº ¿µ¿ª¿¡¼­ ù ¹ÙÀÌÆ®ÀÇ byte-offsetÀ» Á¦°øÇÑ´Ù. Last-byte-pos
°ªÀº ¿µ¿ª¿¡¼­ ¸¶Áö¸· ¹ÙÀÌÆ®ÀÇ byte-offsetÀ» Á¦°øÇÑ´Ù. ¸»ÇÏÀÚ¸é ¸í½ÃµÈ ¹ÙÀÌÆ® À§Ä¡´Â Æ÷°ý
ÀûÀÎ °ÍÀÌ´Ù. ¹ÙÀÌÆ® ¿ÀÇÁ¼Â(byte offsets)Àº 0ºÎÅÍ ½ÃÀÛÇÑ´Ù.
[Page 128]

 

Last-byte-pos °ªÀÌ Á¸ÀçÇϸé ÇØ´çbyte-range-specÀÇ first-byte-posº¸´Ù Å©°Å³ª °°¾Æ¾ß ÇÑ´Ù. ±×·¸
Áö ¾ÊÀ¸¸é byte-range-specÀº À¯È¿ÇÏÁö ¾Ê´Ù. À¯È¿ÇÏÁö ¾Ê´Â byte-range-specÀÇ ¼ö½ÅÃøÀº À̸¦ ¹«
½ÃÇØ¾ß ÇÑ´Ù.

Last-byte-pos °ªÀÌ ¾ø°Å³ª entity-bodyÀÇ ÇöÀç ±æÀ̺¸´Ù Å©°Å³ª °°À¸¸é last-byte-pos Àº ¹ÙÀÌÆ®
´ÜÀ§·Î entity-bodyÀÇ ÇöÀç ±æÀ̺¸´Ù ÀÛÀº °Í°ú µ¿ÀÏÇÑ °ÍÀ» »ç¿ëÇØ¾ß ÇÑ´Ù.

Ŭ¶óÀ̾ðÆ®´Â last-byte-pos ¼±ÅÃÀ» ÅëÇÏ¿© ¿£ÅÍƼÀÇ Å©±â¸¦ ¸ð¸¥ ä ¼ö½ÅÇÑ ¹ÙÀÌÆ®ÀÇ ¼ýÀÚ¸¦
Á¦ÇÑÇÒ ¼ö ÀÖ´Ù.

          suffix-byte-range-spec = "-" suffix-length

          suffix-length = 1*DIGIT

Suffix-byte-range-specÀº suffix-length °ªÀÌ ºÎ¿©ÇÑ ±æÀÌÀÇ entity-body Á¢¹Ì»ç¸¦ ¸í½ÃÇÏ´Â µ¥ »ç
¿ëÇÑ´Ù.(¸»ÇÏÀÚ¸é ÀÌ ÆûÀÌ entity-bodyÀÇ ¸¶Áö¸· N ¹ÙÀÌÆ®¸¦ ¸í½ÃÇÑ´Ù.) ¿£ÅÍƼ°¡ ¸í½ÃµÈ suffix-
lengthº¸´Ù ªÀ¸¸é Àüü entity-body°¡ »ç¿ëµÈ´Ù.

Byte-ranges-specifier °ªÀÇ »ç¿ë ¿¹ÀÌ´Ù.(entity-body ÀÇ ±æÀÌ°¡ 10000À̶ó°í °¡Á¤ÇßÀ» ¶§)

? ù 500 ¹ÙÀÌÆ® (byte offsets 0-499, inclusive):

          bytes=0-499

? µÎ ¹ø° 500 ¹ÙÀÌÆ® (byte offsets 500-999, inclusive):

          bytes=500-999

? ¸¶Áö¸· 500 ¹ÙÀÌÆ®(byte offsets 9500-9999, inclusive):

          bytes=-500

? ¶Ç´Â

          bytes=9500-

? óÀ½°ú ¸¶Áö¸· ¹ÙÀÌÆ®¸¸(bytes 0 and 9999):

          bytes=0-0,-1

[Page 129]

 

? ±Ô¹üÀûÀÌÁö´Â ¾ÊÁö¸¸ À¯È¿ÇÑ µÎ ¹ø° 500 ¹ÙÀÌÆ® ¸í½Ã (byte offsets 500-999, inclusive):

          bytes=500-600,601-999

          bytes=500-700,601-999

14.36.2 Range Retrieval Requests

Á¶°ÇÀû ¶Ç´Â ¹«Á¶°ÇÀû GET method¸¦ ÀÌ¿ëÇÏ´Â HTTP Á¶È¸ ¿ä±¸´Â Range ¿ä±¸ Çì´õ¸¦ ÀÌ¿ëÇÏ
¿© ¿ä±¸ÀÇ °á°ú·Î ¸®ÅϵǴ ¿£ÅÍƼ¿¡ Àû¿ëÇÒ ¼ö ÀÖ´Â Àüü ¿£ÅÍƼ ´ë½Å Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ
¿£ÅÍƼÀÇ ÇϺΠ¿µ¿ªÀ» ¿äûÇÒ ¼ö ÀÖ´Ù.

         Range = "Range" ":" ranges-specifier

¼­¹ö´Â Range Çì´õ¸¦ ¹«½ÃÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª HTTP/1.1 ¿ø¼­¹ö ¹× °¡Àå °¡±î¿î ij½Ã´Â Range
°¡ ºÎºÐÀûÀ¸·Î ½ÇÆÐÇÑ Àü¼ÛÀ» È¿°úÀûÀ¸·Î º¹±¸ÇÏ°í Å« ¿£ÅÍƼÀÇ È¿°úÀûÀÎ ºÎºÐÀû Á¶È¸¸¦ Áö¿ø
Çϱ⠶§¹®¿¡ °¡´ÉÇÏ¸é ¹ÙÀÌÆ® ¿µ¿ªÀ» Áö¿øÇØ¾ß ÇÑ´Ù.

¼­¹ö°¡ Range Çì´õ¸¦ Áö¿øÇÏ°í ¸í½ÃµÈ ¿µ¿ª À̳ª ¿µ¿ªµéÀÌ ¿£ÅÍƼ¿¡ ÀûÇÕÇÏ´Ù¸é:

? ¹«Á¶°ÇÀûÀÎ GET¿¡ Range Çì´õ°¡ ÀÖÀ¸¸é GETÀÌ ¼º°øÇßÀ» ¶§ ¸®ÅϵǴ °ÍÀ» º¯°æÇÑ´Ù.
´Þ¸® Ç¥ÇöÇϸé ÀÀ´äÀº »óÅ ÄÚµå 200 (OK) ´ë½Å¿¡ 206 (Partial Content)À» °¡Áö°í ¿Â´Ù.
 
? Á¶°ÇÀûÀÎ GET(If-Modified-Since ¹× If-None-Match Áß Çϳª³ª µÑ ¸ðµÎ, ¶Ç´ÂIf-Unmodified-
Since ¹× If-Match Áß Çϳª³ª µÑ ¸ðµÎ¸¦ ÀÌ¿ëÇÏ´Â ¿ä±¸)¿¡ Range Çì´õ°¡ ÀÖÀ¸¸é GETÀÌ
¼º°øÇÏ°í Á¶°ÇÀÌ ÂüÀÏ ¶§ ¸®ÅϵǴ °ÍÀ» º¯°æÇÑ´Ù. ÀÌ°ÍÀº Á¶°ÇÀÌ °ÅÁþÀÏ °æ¿ì ¸®ÅϵÇ
´Â 304 (Not Modified) ÀÀ´ä¿¡ ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê´Â´Ù.

¾î¶² °æ¿ì¿¡´Â Range Çì´õ¿¡ ÷°¡Çü If-Range Çì´õ(14.27 Àý ÂüÁ¶)¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ´õ ÀûÀýÇÒ
¼öµµ ÀÖ´Ù.

Range¸¦ Áö¿øÇÏ´Â ÇÁ¶ô½Ã°¡ Range ¿ä±¸¸¦ ¼ö½ÅÇÏ°í ¾ÈÀ¸·Î ÇâÇÏ´Â(inbound) ¼­¹ö¿¡ ¿ä±¸¸¦ Àü
´ÞÇÏ°í ÀÌÀÇ ÀÀ´äÀ¸·Î Àüü ¿£ÅÍƼ¸¦ ¼ö½ÅÇϸé ÇÁ¶ô½Ã´Â Ŭ¶óÀ̾ðÆ®¿¡°Ô ¿ä±¸ ¹ÞÀº ¿µ¿ª¸¸À»
¸®ÅÏÇØ¾ß ÇÑ´Ù. ÇÁ¶ô½Ã´Â ±×°ÍÀÌ Ä³½Ã ÇÒ´ç Á¤Ã¥°ú ºÎÇյȴٸé Àüü ¼ö½Å ÀÀ´äÀ» ÀÚ½ÅÀÇ Ä³½Ã
¿¡ ÀúÀåÇØ¾ß ÇÑ´Ù.

[Page 130]


14.37 Referer

Referer[sic] request-header Çʵå´Â Ŭ¶óÀ̾ðÆ®°¡ ¼­¹ö¸¦ À§ÇØ Request-URI¸¦ ¾òÀº("referrer", Çì´õ
ÇʵåÀÇ ½ºÆ縵ÀÌ Æ²·È´Ù.) ÀÚ¿øÀÇ ÁÖ¼Ò(URI)¸¦ ¸í½ÃÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. Referer request-header´Â
¼­¹ö°¡ Ãë¹Ì, ·Î±ë ¶Ç´Â ÃÖÀûÈ­µÈ ij½Ã µîÀÇ ¸ñÀûÀ¸·Î ÀÚ¿ø¿¡ ´ëÇÑ back-links ¸ñ·ÏÀ» »ý¼ºÇÒ
¼ö ÀÖµµ·Ï ÇÑ´Ù. ¶Ç´Â Æó±âµÇ¾ú°Å³ª ŸÀÌÇÎÀ» À߸øÇÑ ¸µÅ©¸¦ À¯Áö°ü¸®Çϱâ À§ÇØ ÃßÀûÇÒ ¼ö ÀÖ
µµ·Ï ÇÑ´Ù. Referer Çʵå´Â »ç¿ëÀÚ Å°º¸µå¿¡¼­ÀÇ ÀÔ·Â µî ÀÚ½ÅÀÇ URI¸¦ °¡Áö°í ÀÖÁö ¾Ê´Â Ãâó
¿¡¼­ ¾òÀº Request-URI¸¦ Àý´ë·Î ¹ß¼ÛÇؼ­´Â ¾È µÈ´Ù.

        Referer        = "Referer" ":" ( absoluteURI | relativeURI )

¿¹:

        Referer: http://www.w3.org/hypertext/DataSources/Overview.html

ÇÊµå °ªÀÌ ºÎºÐÀû URIÀÌ¸é °ªÀ» Request-URI¿¡ »ó´ëÀûÀ¸·Î Çؼ®ÇØ¾ß ÇÑ´Ù. URI´Â Àý´ë·Î ÆÄ
ÆíÀ» Æ÷ÇÔÇؼ­´Â ¾È µÈ´Ù.

ÁÖÀÇ: ¸µÅ©ÀÇ Ãâó°¡ °³ÀÎÀûÀÎ Á¤º¸À̰ųª °³ÀÎÀûÀÎ Á¤º¸ Ãâó¸¦ ´©¼³ÇÒ ¼ö Àֱ⠶§¹®¿¡ »ç¿ë
ÀÚ´Â Referer Çʵ带 ¹ß¼ÛÇÒ °ÍÀÎÁö ¿©ºÎ¸¦ ¼±ÅÃÇÒ ¼ö ÀÖµµ·Ï ÇÒ °ÍÀ» °­·ÂÇÏ°Ô ÃßõÇÑ´Ù. ¿¹
¸¦ µé¾î ºê¶ó¿ìÀú Ŭ¶óÀ̾ðÆ®´Â °ø°³/¹«¸í ºê¶ó¿ì¡(browsing)ÀÇ Åä±Û ½ºÀ§Ä¡(toggle switch)¸¦
°¡Áú ¼ö ÀÖÀ¸¸ç ÀÌ´Â °¢°¢ Referer ¹× From Á¤º¸ÀÇ ¹ß¼ÛÀ» È®¼ºÈ­/¹«·ÂÈ­ÇÑ´Ù.

14.38 Retry-After

Retry-After response-header Çʵå´Â 503 (Service Unavailable) ÀÀ´ä°ú ÇÔ²² »ç¿ëÇÏ¿© ¿äûÇϴ Ŭ¶ó
À̾ðÆ®¿¡°Ô ¾ó¸¶³ª ¿À·§µ¿¾È ¼­ºñ½º¸¦ »ç¿ëÇÒ ¼ö ÀÖ´ÂÁö Ç¥½ÃÇÒ ¼ö ÀÖ´Ù. ÀÌ ÇʵåÀÇ °ªÀº ÀÀ
´ä ½Ã°£ ÀÌÈÄÀÇ HTTP-date ¶Ç´Â ÃÊÀÇ Á¤¼ö(½ÊÁø¼ö)°¡ µÉ ¼ö ÀÖ´Ù.

          Retry-After  = "Retry-After" ":" ( HTTP-date | delta-seconds )

»ç¿ëÀÇ µÎ ¿¹´Â,

          Retry-After: Fri, 31 Dec 1999 23:59:59 GMT
          Retry-After: 120

ÈÄÀÚÀÇ ¿¹¿¡¼­ Áö¿¬½Ã°£Àº 2 ºÐÀÌ´Ù.

[Page 131]


14.39 Server

Server response-header Çʵå´Â ¿ä±¸¸¦ ó¸®ÇÏ´Â ¿ø¼­¹ö°¡ »ç¿ëÇÏ´Â ¼ÒÇÁÆ®¿þ¾î¿¡ °üÇÑ Á¤º¸¸¦
Æ÷ÇÔÇÏ°í ÀÖ´Ù. ÀÌ Çʵå´Â ¼­¹ö¿Í Áß¿äÇÑ ÇϺΠÁ¦Ç°À» ½Äº°ÇÏ´Â º¹¼öÀÇ Á¦Ç° ÅäÅ«(3.8 Àý) ¹×
ÁÖ¼®À» Æ÷ÇÔÇÏ°í ÀÖ´Ù. Á¦Ç° ÅäÅ«Àº ¾ÖÇø®ÄÉÀ̼ÇÀ» ½Äº°ÇÏ´Â Áß¿äµµÀÇ ¼ø¼­¿¡ µû¶ó ¿­°ÅµÇ¾î
ÀÖ´Ù.

          Server         = "Server" ":" 1*( product | comment )

¿¹:

          Server: CERN/3.0 libwww/2.17

ÀÀ´äÀÌ ÇÁ¶ô½Ã¸¦ ÅëÇÏ¿© Àü´ÞµÈ´Ù¸é ÇÁ¶ô½Ã ¾ÖÇø®ÄÉÀ̼ÇÀº Àý´ë Server response-header¸¦ º¯
°æÇؼ­´Â ¾È µÈ´Ù. ´ë½Å ÇÁ¶ô½Ã´Â Via Çʵå(14.44 Àý¿¡ ±â¼úµÈ ´ë·Î)¸¦ Æ÷ÇÔÇÏ¿©¾ß ÇÑ´Ù.

ÁÖÀÇ: ¼­¹öÀÇ Æ¯Á¤ ¼ÒÇÁÆ®¿þ¾î ¹öÀüÀ» ´©¼³ÇÏ´Â °ÍÀº ¼­¹ö°¡ º¸¾È ÇãÁ¡(security holes)À» °¡Áø
°ÍÀ¸·Î ¾Ë·ÁÁø ¼ÒÇÁÆ®¿þ¾î¿¡ ´ëÇÑ °ø°Ý¿¡ ´õ¿í Ãë¾àÇϵµ·Ï ¸¸µé ¼ö ÀÖ´Ù. ¼­¹ö ±¸ÇöÀÚ´Â ÀÌ
Çʵ带 ¼³Á¤ÇÒ ¼ö ÀÖ´Â ¼±Åà »çÇ×À¸·Î ¸¸µé °ÍÀ» ±Ç°íÇÑ´Ù.

14.40 Transfer-Encoding

Transfer-Encoding general-header Çʵå´Â ¼Û½ÅÃø°ú ¼ö½ÅÃø »çÀÌ¿¡ ¸Þ½ÃÁö¸¦ ¾ÈÀüÇÏ°Ô Àü¼ÛÇϱâ
À§ÇØ ¾î¶²(Àû¿ëµÇ¾ú´Ù¸é) À¯ÇüÀÇ º¯ÇüÀÌ ¸Þ½ÃÁö¿¡ Àû¿ëµÇ¾ú´ÂÁö Ç¥½ÃÇÑ´Ù. ÀÌ°ÍÀº Àü¼Û ÄÚµù
(transfer coding)ÀÌ ¸Þ½ÃÁöÀÇ Æ¯¼ºÀÌÁö ¿£ÅÍƼÀÇ Æ¯¼ºÀÌ ¾Æ´Ï¶ó´Â Á¡¿¡¼­ Content-Encoding°ú ´Ù
¸£´Ù.

          Transfer-Encoding     = "Transfer-Encoding" ":" 1#transfer-coding

Transfer codingsÀº 3.6 Àý¿¡ ±ÔÁ¤µÇ¾î ÀÖÀ¸¸é ±× ¿¹´Â,

          Transfer-Encoding: chunked

¸¹Àº ÀÌÀü HTTP/1.0 ¾ÖÇø®ÄÉÀ̼ÇÀº Transfer- Encoding Çì´õ¸¦ ÀÌÇØÇÏÁö ¸øÇÑ´Ù.

14.41 Upgrade

Upgrade general-header´Â Ŭ¶óÀ̾ðÆ®°¡ Ãß°¡ÀûÀ¸·Î ¾î¶² Åë½Å ±Ô¾àÀ» Áö¿øÇÏ¸ç ±Ô¾àÀ» ÀüȯÇÏ
´Â °ÍÀÌ ÀûÀýÇÒ ¶§ ¾î¶² Åë½Å ±Ô¾àÀ» »ç¿ëÇÏ°íÀÚ ÇÏ´ÂÁö ¸í½ÃÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù.

[Page 132]

 

¼­¹ö´Â ¹Ýµå½Ã Upgrade Çì´õ Çʵ带 101 (Switching Protocols) ÀÀ´ä¿¡ »ç¿ëÇÏ¿© ¾î¶² ±Ô¾àÀÌ Àü
ȯµÇ°í ÀÖ´ÂÁö Ç¥½ÃÇØ¾ß ÇÑ´Ù.

          Upgrade        = "Upgrade" ":" 1#product

   For example,

          Upgrade: HTTP/2.0, SHTTP/1.3, IRC/6.9, RTA/x11

Upgrade Çì´õ Çʵå´Â HTTP/1.1¿¡¼­ ´Ù¸¥ ȣȯµÇÁö ¾Ê´Â ±Ô¾àÀ¸·Î ÀÌÀüÇÏ´Â °£´ÜÇÑ ¸ÞÄ¿´ÏÁò
À» Á¦°øÇÒ ¸ñÀûÀ¸·Î »ç¿ëµÈ´Ù. Ŭ¶óÀ̾ðÆ®°¡ ºñ·Ï ÇöÀç ÀÇ ¿ä±¸¸¦ HTTP/1.1À» ÀÌ¿ëÇÏ¿© ÀÛ¼º
ÇÏ¿´´Ù ÇÏ´õ¶óµµ ³ôÀº ÁÖ¿ä º¯°æ ¹öÀü ¹øÈ£¸¦ °¡Áø HTTPÀÇ ÀÌÈÄ ¹öÀü°ú °°Àº ´Ù¸¥ ±Ô¾àÀ»
»ç¿ëÇÏ°í ½Í´Ù´Â °ÍÀ» ±¤°íÇÒ ¼ö ÀÖµµ·Ï ÇÏ¿© À̸¦ ¼ºÃëÇÑ´Ù. ÀÌ°ÍÀº Ŭ¶óÀ̾ðÆ®°¡ »ç¿ëÇÒ ¼ö
ÀÖ´Ù¸é "Á»´õ ³ºÀº" ±Ô¾àÀ» »ç¿ëÇÏ°í ½Í¾îÇÑ´Ù´Â °ÍÀ» Ç¥½ÃÇϸ鼭µµ Ŭ¶óÀ̾ðÆ®°¡ Á»´õ º¸Æí
ÀûÀ¸·Î Áö¿øµÇ´Â ±Ô¾à¿¡¼­ ¿ä±¸¸¦ ½ÃÀÛÇÒ ¼ö ÀÖµµ·Ï ÇÏ¿© ȣȯµÇÁö ¾Ê´Â ±Ô¾à°£ÀÇ ¾î·Á¿î ÀÌ
ÀüÀ» ¿ëÀÌÇÏ°Ô ÇÑ´Ù. ("Á»´õ ³ºÀº" ±Ô¾àÀº °¡´ÉÇÏ¸é ¿ä±¸ÇÏ°í ÀÖ´Â method ¹×/¶Ç´Â ÀÚ¿øÀÇ ±âº»
ÀûÀÎ ¼º°Ý¿¡ µû¶ó ¼­¹ö°¡ °áÁ¤ÇÑ´Ù.)

Upgrade Çì´õ Çʵå´Â ±âÁ¸ÀÇ Àü¼Û-°èÃþ ¿¬°á À§¿¡¼­ ¾ÖÇø®ÄÉÀ̼Ç-°èÃþ ±Ô¾àÀ» ÀüȯÇÏ´Â °Í¿¡
¸¸ Àû¿ëµÈ´Ù. Upgrade´Â ±Ô¾àÀÇ ÀüȯÀ» °íÁýÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ¾ø´Ù. ÀüȯÀÇ ¼ö¿ë ¹× »ç¿ëÀº
¼­¹öÀÇ ¼±Åà »çÇ×ÀÌ´Ù. ±Ô¾à º¯°æ ÈÄÀÇ Ã¹ ÀÛ¾÷Àº Upgrade Çì´õ Çʵ带 Æ÷ÇÔÇÏ°í Àִ ù
HTTP  ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ̾î¾ß ÇÏÁö¸¸ ±Ô¾à º¯°æ ÀÌÈÄÀÇ ¾ÖÇø®ÄÉÀ̼Ç-°èÃþ Åë½ÅÀÇ ´É·Â ¹×
±âº»ÀûÀÎ ¼º°ÝÀº »õ·Ó°Ô ¼±ÅÃµÈ ±Ô¾à¿¡ ÀüÀûÀ¸·Î ´Þ·Á ÀÖ´Ù.

Upgrade Çì´õ Çʵå´Â ¿ÀÁ÷ °¡Àå °¡±î¿î ¿¬°á¿¡¸¸ Àû¿ëµÈ´Ù. µû¶ó¼­ Upgrade Çٽɾî´Â Upgrade
Çì´õ Çʵ尡 HTTP/1.1 ¸Þ½ÃÁö¿¡ Á¸ÀçÇÒ ¶§ Connection Çì´õ Çʵå(14.10 Àý) ³»¿¡¼­¸¸ Á¦°øÇÏ¿©
¾ß ÇÑ´Ù.

Upgrade Çì´õ Çʵå´Â ´Ù¸¥ ¿¬°á·ÎÀÇ ±Ô¾à ÀüȯÀ» Ç¥½ÃÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ¾ø´Ù. ÀÌ·¯ÇÑ ¸ñÀû¿¡
´Â 301, 302, 303 ¶Ç´Â 305 ¹æÇâ Àç¼³Á¤ ÀÀ´äÀÌ ´õ ÀûÀýÇÏ´Ù.

ÀÌ ±Ô°ÝÀº 3.1ÀýÀÇ HTTP ¹öÀü ±ÔÄ¢ ¹× ÀÌ ±Ô°ÝÀÇ ÇâÈÄ °³Á¤¿¡¼­ ±ÔÁ¤ÇÑ °Í°ú °°ÀÌ ÇÏÀÌÆÛÅØ
½ºÆ® Àü¼Û ±Ô¾à Áý´Ü¿¡¼­ »ç¿ëÇÒ ¸ñÀûÀ¸·Î ¿ÀÁ÷ "HTTP"¶ó´Â À̸§ÀÇ ±Ô¾à¸¸À» ±ÔÁ¤ÇÑ´Ù. ±Ô¾à
À̸§À» À§ÇØ ¾î¶°ÇÑ ÅäÅ«À» »ç¿ëÇصµ µÇÁö¸¸ Ŭ¶óÀ̾ðÆ®¿Í ¼­¹ö ¸ðµÎ°¡ ÇØ´ç À̸§À» µ¿ÀÏÇÑ
±Ô¾àÀ¸·Î ¿¬°ü½Ãų ¶§¹®¿¡ À¯¿ëÇÒ °ÍÀÌ´Ù.

[Page 133]


14.42 User-Agent

User-Agent request-header Çʵå´Â ¿ä±¸¸¦ ¸¸µé¾î ³½ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®¿¡ °üÇÑ Á¤º¸¸¦ Æ÷ÇÔÇÏ°í
ÀÖ´Ù. ÀÌ°ÍÀº Åë°è ¸ñÀû, ±Ô¾à À§¹ÝÀÇ ÃßÀû, ƯÁ¤ »ç¿ëÀÚ ¿¡ÀÌÀüÆ® ÇѰ踦 ÇÇÇϱâ À§ÇØ ÀÀ´äÀ»
°íÄ¥ ¸ñÀûÀ¸·Î »ç¿ëÀÚ ¿¡ÀÌÀüÆ®¸¦ ÀÚµ¿ ÀÎÁöÇϱâ À§ÇÔÀÌ´Ù. »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â ¿ä±¸¿¡ ÀÌ ÇÊ
µå¸¦ Æ÷ÇÔÇØ¾ß ÇÑ´Ù. ÀÌ Çʵå´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ®ÀÇ Áß´ëÇÑ ºÎºÐÀ» Çü¼ºÇÏ´Â ¿¡ÀÌÀüÆ®, ¸ðµç ÇÏ
ºÎ Á¦Ç°À» ½Äº°ÇÒ ¼ö ÀÖ´Â º¹¼öÀÇ Á¦Ç° ÅäÅ«(3.8Àý) ¹× ÁÖ¼®À» Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. °ü·Ê»ó Á¦Ç°
ÅäÅ«Àº ¾ÖÇø®ÄÉÀ̼ÇÀ» ½Äº°ÇÏ´Â Áß¿äµµÀÇ ¼ø¼­¿¡ µû¶ó ¿­°ÅµÇ¾î ÀÖ´Ù.

          User-Agent     = "User-Agent" ":" 1*( product | comment )

¿¹:

          User-Agent: CERN-LineMode/2.15 libwww/2.17b3

14.43 Vary

Vary response-header Çʵå´Â ¼­¹ö°¡ ÀÀ´ä ¿£ÅÍƼ¸¦ ¼­¹ö°¡ ÁÖµµÇÏ´Â Çù»ó( 12Àå)À» ÀÌ¿ëÇÑ ÀÌ¿ë
°¡´ÉÇÑ ÀÀ´äÀÇ Ç¥½Ã ¹æ¹ý¿¡¼­ ¼±ÅÃÇÏ¿´À½À» Ç¥½ÃÇÏ´Â µ¥ »ç¿ëÇÑ´Ù. Vary Çì´õ¿¡ ¿­°ÅµÈ field-
namesÀº request-headersÀÇ field-namesÀÌ´Ù. Vary ÇÊµå °ªÀº ÁÖ¾îÁø Çì´õ ÇÊµå ¼¼Æ®°¡ Ç¥½Ã ¹æ
½ÄÀÌ º¯È­ÇÒ ¼ö ÀÖ´Â Â÷¿øÀ» ³Ñ¾î¼±´Ù´Â °ÍÀ» ³ªÅ¸³»°Å³ª, º¯ÇüÀÇ Â÷¿øÀÌ ¸í½ÃµÇÁö ¾Ê¾Æ("*")
ÇâÈÄ ¿ä±¸ÀÇ ¾î¶°ÇÑ Ãø¸é¿¡¼­µµ º¯ÇüµÉ ¼ö ÀÖ´Ù´Â °ÍÀ» ³ªÅ¸³½´Ù.

          Vary  = "Vary" ":" ( "*" | 1#field-name )

HTTP/1.1 ¼­¹ö´Â ¹Ýµå½Ã ¼­¹ö°¡ ÁÖµµÇÏ´Â Çù»ó¿¡ Á¾¼ÓµÇ´Â ¸ðµç ij½ÃÇÒ ¼ö ÀÖ´Â ÀÀ´ä¿¡ ÀûÀý
ÇÑ Vary Çì´õ Çʵ带 Æ÷ÇÔÇØ¾ß ÇÑ´Ù. ÀÌ·¸°Ô Çϸé ij½Ã°¡ ÇØ´ç ÀÚ¿ø¿¡ ´ëÇÑ ÇâÈÄ ¿ä±¸¸¦ ÀûÀý
ÇÏ°Ô Çؼ®ÇÒ ¼ö ÀÖµµ·Ï ÇÏ¸ç »ç¿ëÀÚ ¿¡ÀÌÀüÆ®¿¡°Ô ÇØ´ç ÀÚ¿ø¿¡ ´ëÇÑ Çù»óÀÌ Á¸ÀçÇÔÀ» ¾Ë¸± ¼ö
ÀÖ´Ù. ¼­¹ö´Â ¼­¹ö°¡ ÁÖµµÇÏ´Â Çù»ó¿¡ Á¾¼ÓµÇ´Â ij½ÃÇÒ ¼ö ¾ø´Â ÀÀ´ä¿¡ ÀûÀýÇÑ Vary Çì´õ ÇÊ
µå¸¦ Æ÷ÇÔÇØ¾ß ÇÑ´Ù. ÀÌ°ÍÀÌ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®¿¡°Ô ÀÀ´äÀÌ º¯ÇüµÉ ¼ö ÀÖ´Â Â÷¿ø¿¡ °üÇÑ À¯¿ëÇÑ
Á¤º¸¸¦ Á¦°øÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù.

Vary Çì´õ ÇÊµå °ª¿¡ ÀÇÇÏ¿© ¸í¸íµÇ´Â Çì´õ ÇʵåÀÇ ¼¼Æ®´Â "selecting" request-headers·Î ¾Ë·ÁÁ®
ÀÖ´Ù.

ij½Ã°¡ Request-URI°¡ Vary Çì´õ¸¦ Æ÷ÇÔÇÑ Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ Ä³½Ã ¿£Æ®¸®¸¦ ¸í½ÃÇÏ´Â °è¼Ó
ÀûÀÎ ¿ä±¸¸¦ ¼ö½ÅÇßÀ» ¶§ ij½ÃµÈ Vary Çì´õ¿¡ ¸í¸íµÈ ¸ðµç Çì´õ°¡ »õ·Î¿î ¿ä±¸¿¡ Àְųª ÀÌÀü
¿ä±¸ÀÇ ¸ðµç ÀúÀåµÈ selecting request-headers°¡ »õ·Î¿î ¿ä±¸ÀÇ ÇØ´ç Çì´õ¿Í ÀÏÄ¡ÇÏÁö ¾Ê´Â ÇÑ
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 Ŭ¶óÀ̾ðÆ®¿Í ij½Ã´Â ÇâÈÄ 50³â ÀÌÈÄ ÀÌ»óÀÇ RFC-850 ³¯Â¥´Â »ç½Ç»ó °ú°ÅÀÇ ³¯
Â¥¶ó°í °¡Á¤ÇØ¾ß ÇÑ´Ù.(ÀÌ°ÍÀÌ "2000 ³â" ¹®Á¦¸¦ ÇØ°áÇÏ´Â µ¥ µµ¿òÀ» ÁØ´Ù.)
[Page 151]

 

? HTTP/1.1 ±¸Çö ¹æ½ÄÀº ³»ºÎÀûÀ¸·Î ÀûÀýÇÑ °ªº¸´Ù ÀÌÀüÀ¸·Î ºÐ¼®µÈ Expires ³¯Â¥¸¦ Ç¥½ÃÇÒ
¼ö´Â ÀÖÀ¸³ª Àý´ë·Î ÀûÀýÇÑ °ªº¸´Ù ÀÌÈÄ ³¯Â¥¸¦ Ç¥½ÃÇؼ­´Â ¾È µÈ´Ù.

? À¯È¿ÀÏ¿¡ °ü·ÃµÈ ¸ðµç °è»êÀº GMT·Î ÇØ¾ß ÇÑ´Ù. Áö¿ªÀûÀÎ ½Ã°£´ë´Â °æ°ú ½Ã°£À̳ª À¯È¿
½Ã°£À» °è»êÇϰųª ºñ±³ÇÏ´Â µ¥ ¿µÇâÀ» ¹ÌÃļ­´Â ¾È µÈ´Ù.

? HTTP Çì´õ°¡ ºÎÁ¤È®ÇÏ°Ô GMT ÀÌ¿ÜÀÇ ½Ã°£ ´ë ³¯Â¥ °ªÀ» °¡Áö°í ÀÖ´Ù¸é °¡Àå Á¶½É½º·¯¿î
ȯ»ê ¹æ¹ýÀ» »ç¿ëÇÏ¿© GMT·Î º¯È¯ÇÏ¿©¾ß ÇÑ´Ù.

19.4 HTTP ¿£ÅÍƼ¿Í MIME ¿£ÅÍƼÀÇ Â÷ÀÌÁ¡

HTTP/1.1Àº ÀÎÅÍ³Ý ¸ÞÀÏ(RFC 822) ¹× ´Ù¸ñÀû ÀÎÅÍ³Ý ¸ÞÀÏ È®Àå(Multipurpose Internet Mail
Extensions (MIME ))À» À§ÇØ ±ÔÁ¤µÈ ¸¹Àº ±¸¼º¹°(construct)À» ÀÌ¿ëÇÏ¿© ¿£ÅÍƼ°¡ °ø°³µÈ ´Ù¾çÇÑ
Ç¥½Ã ¹æ½Ä ¹× È®Àå °¡´ÉÇÑ ¸ÞÄ¿´ÏÁòÀ» ÅëÇÏ¿© Àü´ÞµÉ ¼ö ÀÖµµ·Ï ÇÑ´Ù. ±×·¯³ª MIME [7] ¶ÇÇÑ
ÀüÀÚ ¿ìÆí¿¡ ´ëÇØ ³íÀÇÇÏ°í ÀÖÀ¸¸ç HTTP¿¡´Â MIME¿¡¼­ ±â¼úµÈ °Í°ú »óÀÌÇÑ ±â´ÉÀÌ ¸î¸î
ÀÖ´Ù. ÀÌ·¯ÇÑ Â÷ÀÌÁ¡Àº ¹ÙÀ̳ʸ® Á¢¼ÓÀÇ ¼º´ÉÀ» ÃÖÀûÈ­ÇÏ°í, »õ·Î¿î media typeÀ» »ç¿ëÇÏ´Â ÃÖ
´ëÇÑÀÇ ÀÚÀ¯¸¦ Çã¿ëÇϸç, ³¯Â¥ ºñ±³¸¦ ¿ëÀÌÇÏ°Ô Çϸç, ÀÌÀü HTTP ¼­¹ö ¹× Ŭ¶óÀ̾ðÆ®ÀÇ ÇàÅÂ
¸¦ ÀÎÁ¤ÇÒ ¼ö ÀÖµµ·Ï ÁÖÀÇ ±í°Ô ¼±ÅÃÇÏ¿´´Ù.

ÀÌ ºÎ·ÏÀº HTTP¿Í MIMEÀÇ Â÷À̸¦ ±â¼úÇÏ°í ÀÖ´Ù. ÇÁ¶ô½Ã¿¡¼­ ¾ö°ÝÇÑ MIME ȯ°æÀ¸·ÎÀÇ °Ô
ÀÌÆ®¿þÀÌ´Â ÀÌ·¯ÇÑ Â÷ÀÌÁ¡À» ÀνÄÇÏ°í ÇÊ¿äÇÏ´Ù¸é ÀûÀýÇÑ º¯È¯À» ÇØ ÁÖ¾î¾ß ÇÑ´Ù. ÇÁ¶ô½Ã¿Í
MIME ȯ°æÀ¸·ÎºÎÅÍ HTTP·ÎÀÇ °ÔÀÌÆ®¿þÀÌ ¶ÇÇÑ ¾à°£ÀÇ º¯È¯ÀÌ ÇÊ¿äÇÒ ¼ö ÀÖÀ¸¹Ç·Î ÀÌ Â÷ÀÌ
Á¡À» ÀÎÁöÇÒ ÇÊ¿ä°¡ ÀÖ´Ù.

19.4.1 ±Ô¹üÀûÀÎ ÆûÀ¸·Î º¯È¯

MIMEÀº ÀÎÅÍ³Ý ¸ÞÀÏ ¿£ÅÍƼ¸¦ Àü¼ÛµÇ±â Àü¿¡ ±Ô¹üÀûÀÎ Æû(canonical form)À¸·Î º¯È¯ÇÒ °ÍÀ»
¿ä±¸ÇÑ´Ù. ÀÌ ¹®¼­ÀÇ 3.7.1ÀýÀº HTTP·Î Àü¼ÛµÉ ¶§ Æû¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â "text" media typeÀÇ
subtypeÀ» ±â¼úÇÏ°í ÀÖ´Ù. MIME¿¡¼­ ÅؽºÆ® À¯ÇüÀÇ ³»¿ëÀº ÁٹٲÞÀ» CRLF·Î Ç¥½ÃÇØ¾ß ÇÏ°í
ÁÙ¹Ù²Þ ÀÌ¿Ü´Â CR ¶Ç´Â LF¸¦ »ç¿ëÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù. HTTP´Â ¸Þ½ÃÁö°¡ HTTP¸¦ ÅëÇÏ¿© Àü´Þ
µÉ ¶§ ÅؽºÆ® ³»¿ë ¾È¿¡¼­ ÁÙ ¹Ù²ÞÀ» Ç¥½ÃÇϱâ À§ÇØ CRLF, ´ÜÀÏ CR ¹× LF¸¦ Çã¿ëÇÑ´Ù.

°¡´ÉÇÏ´Ù¸é ÇÁ¶ô½Ã¿¡¼­ ¾ö°ÝÇÑ MIME ȯ°æÀ¸·ÎÀÇ °ÔÀÌÆ®¿þÀÌ´Â 3.7.1Àý¿¡¼­ ±â¼úÇÑ text media
type ³»ÀÇ ¸ðµç ÁٹٲÞÀ» CRLFÀÇ MIME Á¤±Ô ÆûÀ¸·Î Çؼ®ÇØ¾ß ÇÑ´Ù. ±×·¯³ª Content-Encoding
ÀÌ ÀÖÀ¸¸é ÀÌ Çؼ®ÀÌ º¹ÀâÇØÁú ¼ö ÀÖÀ¸¸ç ¶ÇÇÑ HTTP°¡ multi-byte ¹®ÀÚ ÁýÇÕÀÇ °æ¿ìó·³
octets 13 ¹× 10À» CR ¹× LF¸¦ Ç¥½ÃÇϴµ¥ »ç¿ëÇÏÁö ¾Ê´Â ´Ù¸¥ ¹®ÀÚ Á¶ÇÕÀ» Çã¿ëÇÑ´Ù´Â »ç½Ç
¶§¹®¿¡ º¹ÀâÇØÁú ¼ö ÀÖ´Ù.

[Page 152]


19.4.2 ³¯Â¥ Çü½ÄÀÇ º¯È¯

HTTP/1.1Àº ÇÑÁ¤µÈ ³¯ÀÚ Æ÷¸Ë(3.3.1)À» »ç¿ëÇÏ¿© ³¯Â¥ ºñ±³ °úÁ¤À» ´Ü¼øÈ­½ÃÄÑ ÁØ´Ù.  ÇÁ¶ô½Ã
¿¡¼­ ´Ù¸¥ ±Ô¾àÀÇ °ÔÀÌÆ®¿þÀÌ´Â È®½ÇÇÏ°Ô HTTP/1.1 Æ÷¸Ë Áß Çϳª¸¦ µû¸£´Â ¸Þ½ÃÁö¿¡ Date Çì
´õ Çʵ尡 ÀÖ°í ÇÊ¿äÇÏ´Ù¸é ³¯Â¥¸¦ Àç±âÀÔÇϵµ·Ï ÇØ¾ß ÇÑ´Ù.

19.4.3 Content-Encoding ¼Ò°³

MIMEÀº HTTP/1.1ÀÇ Content-Encoding Çì´õ Çʵå¿Í µ¿µîÇÑ °³³äÀ» ¾Æ¹«°Íµµ Æ÷ÇÔÇÏ°í ÀÖÁö
¾Ê´Ù. ÀÌ°ÍÀÌ media type¿¡ º¯°æÀڷμ­ ÀÛµ¿Çϱ⠶§¹®¿¡ HTTP¿¡¼­ MIMEÀ» ÁؼöÇÏ´Â ±Ô¾àÀ¸
·ÎÀÇ ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌ´Â ¹Ýµå½Ã Content-Encoding Çì´õ ÇʵåÀÇ °ªÀ» º¯°æÇϰųª ¸Þ½ÃÁö¸¦
Àü´ÞÇϱâ Àü¿¡ entity-body¸¦ Çص¶ÇØ¾ß ÇÑ´Ù. (ÀÎÅÍ³Ý ¸ÞÀÏÀ» À§ÇÑ ¸î¸î ½ÇÇèÀûÀÎ ÀÀ¿ëÇÁ·Î±×·¥
Àº media type ÆĶó¹ÌÅÍ ";conversions=<content-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 > ÄÄÇ»ÅÍ/ÀÎÅͳÝ

¡ãtop


Garbage Collection IT񃬣

Pick up performance with generational garbage collection


Use the appropriate Java HotSpot VM 1.3.1 parameters to improve throughput


[Summary]

With generational garbage collection (introduced in Sun Microsystems's Java HotSpot VM for Solaris), command line parameters control how the JVM uses heap space to perform garbage collection. The default parameters are effective for most small applications that require faster startup and a smaller footprint. By selecting parameters that activate the Java HotSpot Server VM, you can improve the throughput of large, server-side applications by 20 percent or more. This article explains how the HotSpot JVM uses system resources to provide significant throughput improvement with no code modifications. (4,200 words; January 11, 2002)


Garbage collection (GC) reclaims the heap space previously allocated to £Ïbjects no longer needed. The process of locating and removing those dead £Ïbjects can stall your Java application while consuming as much as 25 percent of throughput.

Sun Microsystems introduced generational GC in the Java HotSpot VM for Solaris. Generational GC separates older and newer £Ïbjects into separate heap spaces. With command line parameters, you control how the HotSpot JVM uses that heap space to perform GC. HotSpot's default parameters are effective for most small applications that require faster startup and a smaller footprint. But you can select parameters that activate the Java HotSpot Server VM to improve the throughput of large, server-side applications, like those running under BEA's WebLogic, by 20 percent or more.

This article is written from the perspective of the infrastructure architect, not the Java developer. I don't explain how to modify Java code to achieve better GC. Instead, I show how the HotSpot JVM uses the system resources allocated to it to provide significant throughput improvement with no code modifications.


Pre-HotSpot JVMs

Prior to HotSpot, most JVMs had three main GC problems. First, all £Ïbjects were scanned during every GC. As the number of £Ïbjects increased, this type of GC's performance time increased as well.

Second, partially accurate GC algorithms were conservative when reclaiming memory. These algorithms had difficulty differentiating between pointers and other data types. This often meant the algorithm would fail to collect all garbage for fear of eliminating valid data £Ïbjects.

Third, a garbage collector used handles to refer indirectly to £Ïbjects in memory. Those handles were thought to expedite and simplify £Ïbject relocation during garbage collection; however, they proved to be a significant performance bottleneck. The inability to relocate £Ïbjects caused significant memory fragmentation and prevented the use of more sophisticated GC algorithms. Other collectors used handleless £Ïbjects, but when relocated £Ïbjects were collected, all other £Ïbjects had to be scanned so that pointers to relocated £Ïbjects could be updated.


Post-HotSpot JVM

The Exact VM (JVM 1.2.2) introduced exact garbage collection. Sun then improved the exact GC design in JVM 1.3 and renamed it generational GC. Java HotSpot VM 1.3.1's GC is fully accurate, guaranteeing that:

  • You can reliably reclaim all inaccessible £Ïbjects' memory
  • You can relocate all £Ïbjects to compact memory, eliminating £Ïbject memory fragmentation


The HotSpot JVM uses a two-machine-word £Ïbject header, rather than the three-word header found in most other JVMs. This saves as much as 10 percent of the heap size for typical applications while accelerating the code to scan all £Ïbjects.

The HotSpot JVM also eliminates the concept of handles. This reduces memory usage and speeds processing. In the HotSpot JVM, £Ïbject references are implemented as direct pointers, providing C-speed access to instance variables.


Three types of collection algorithms

The HotSpot JVM provides three GC algorithms, each tuned for a specific type of collection within a specific generation. The copy (also known as scavenge) collection quickly cleans up short-lived £Ïbjects in the new generation heap. The mark-compact algorithm employs a slower, more robust technique to collect longer-lived £Ïbjects in the old generation heap. The incremental algorithm attempts to improve old generation collection by performing robust GC while minimizing pauses.

Copy/scavenge collection
Using the copy algorithm, the JVM reclaims most £Ïbjects in the new generation £Ïbject space (also known as eden) simply by making small scavenges -- a Java term for collecting and removing refuse. Longer-lived £Ïbjects are ultimately copied, or tenured, into the old £Ïbject space.

Mark-compact collection
As more £Ïbjects become tenured, the old £Ïbject space begins to reach maximum occupancy. The mark-compact algorithm, used to collect £Ïbjects in the old £Ïbject space, has different requirements than the copy collection algorithm used in the new £Ïbject space.

The mark-compact algorithm first scans all £Ïbjects, marking all reachable £Ïbjects. It then compacts all remaining gaps of dead £Ïbjects. The mark-compact algorithm occupies more time than the copy collection algorithm; however, it requires less memory and eliminates memory fragmentation.

Incremental (train) collection
The new generation copy/scavenge and the old generation mark-compact algorithms can't eliminate all JVM pauses. Such pauses are proportional to the number of live £Ïbjects. To address the need for pauseless GC, the HotSpot JVM also offers incremental, or train, collection.

Incremental collection breaks up old £Ïbject collection pauses into many tiny pauses even with large £Ïbject areas. Instead of just a new and an old generation, this algorithm has a middle generation comprising many small spaces. There is some overhead associated with incremental collection; you might see as much as a 10-percent speed degradation.

The -Xincgc and -Xnoincgc parameters control how you use incremental collection. The next release of HotSpot JVM, version 1.4, will attempt continuous, pauseless GC that will probably be a variation of the incremental algorithm. I won't discuss incremental collection since it will soon change.


Performance factors

JVM performance is usually measured by its GC's effectiveness. "Tuning Garbage Collection with the 1.3.1 Java Virtual Machine" covers performance considerations in more depth. I will cover those factors that concern this article.

A JVM's throughput accounts for the percentage of total time GC does not take place. Therefore, 80 percent throughput implies that garbage collection consumes 20 percent of the JVM's processing while your application consumes only 80 percent. Throughput is also measured in pauses, during which your application stops processing while the JVM collects garbage.

Footprint accounts for the JVM's required amount of memory. On computers with limited memory, a large footprint can increase swapping and paging, where the operating system (OS) struggles to find free memory pages for the JVM to use. As OS paging increases, it consumes more processors and likely decreases the JVM's overall performance.

Command line parameters that divide the heap between new and old generations usually cause the greatest performance impact. If you increase the new generation's size, you often improve the overall throughput; however, you also increase footprint, which may slow down servers with limited memory.

Heap layout

The HotSpot JVM manages heap space in generations -- that is, memory pools for both new and old £Ïbjects. As these £Ïbjects accumulate, eventually a low memory condition occurs, forcing garbage collection to take place. Figure 1 illustrates the heap space divided into the old and the new generation.


Figure 1. Heap broken into its components

The new generation includes the new £Ïbject space (eden), plus two survivor spaces (SS#1 and SS#2), as Figure 1 shows. New £Ïbjects allocate in eden. Longer-lived £Ïbjects are moved from the new generation and tenured to the old generation.

Figure 1 shows another heap section, called the permanent generation, which holds the JVM's class and method £Ïbjects. The -XX:MaxPermSize=64m command line parameter controls the permanent generation's size. I won't discuss the permanent generation further in this article.

Control the heap size
You can control the heap size using several parameters. The -Xms and -Xmx parameters define the minimum and maximum heap sizes, respectively. Most large, server-side applications set the values equal to each other for a fixed heap size.

If you set those parameters unequal, then the JVM must increase or decrease the heap size at each collection; the £Ïbjective is to keep the living £Ïbject space's proportion within a specific range. The -Xminf and -Xmaxf parameters define the total heap size's minimum proportion and the maximum proportion, respectively.

If you use expandable heaps, you should bear in mind the impact of changing the old and new generation heap sizes. When the heap grows or shrinks, the JVM must recalculate the old and new generation sizes in order to maintain a predefined ratio (the NewRatio parameter).

The NewSize and MaxNewSize parameters control the new generation's minimum and maximum size, respectively. You can regulate the new generation size by setting these parameters equal. You can gain a fine granularity when using these parameters to tune the new generation.


Garbage collections

When the new generation fills up, it triggers a minor collection, in which surviving £Ïbjects are moved to the old generation. When the old generation fills up, it triggers a major collection, which involves the entire £Ïbject heap.

Minor collections
The Java HotSpot VM 1.3.1 uses copying collection for all minor collections. Figure 2's top portion shows that newly allocated £Ïbjects (the blank circles) exist in eden. During a minor collection, the living £Ïbjects (the dark circles) in eden are copied to the first survivor space. Once the copy is complete, you can use the entire eden space.


Figure 2. Minor collections. Click on thumbnail to view full-size image.

During the next GC, the living £Ïbjects from eden and from the first survivor space are copied to the second survivor space. This is illustrated in Figure 2's middle portion, where all the living £Ïbjects are copied, thus leaving only newly allocated £Ïbjects in eden and the first survivor space.

The minor collection copies £Ïbjects between survivor spaces until they become tenured; those £Ïbjects are then copied to the old generation, as Figure 2's bottom portion shows.

Major collections
The Java HotSpot VM 1.3.1 uses mark-compact collection for all major collections; therefore, major collections occur in the old £Ïbject space. Figure 3 illustrates the two-step process that comprises the mark-compact algorithm. During the first step, garbage collection goes through the entire heap, marking all unreachable £Ïbjects (the red circles). During the second step, the unreachable £Ïbjects (red circles) are compacted, leaving only live £Ïbjects (the gray circles).


Figure 3. Major collections


Ratio of old to new generations

So far, my diagrams have casually drawn a line to separate the old and the new generations. The actual placement of the dividing line between the old and new generations is the most critical decision influencing HotSpot JVM performance. Every time you start the HotSpot JVM, you determine where to place this line by including or omitting one parameter.

NewRatio
You can divide the heap into old and new generations using the NewRatio parameter. If you use -XX:NewRatio=5, then you create an old-to-new ratio of 5:1; the old generation occupies 5/6 of the heap while the new generation occupies 1/6 of the heap. If you increase the new generation's size, minor collections may occur less often. However, because the -Xmx parameter sets the total heap size, you also decrease the old generation's size. This may increase the frequency of major collections.

Java HotSpot Client VM ratio
The Java HotSpot Client VM 1.3.1 replaces both the classic JVM and the JVM 1.2 just-in-time (JIT) compilers to improve runtime performance for applications and applets. The HotSpot Client JVM has been specially tuned to reduce application startup time and memory footprint, making it particularly well suited for client environments. On all platforms, the HotSpot Client JVM is the default.

The default NewRatio for the HotSpot Client JVM is 8; the old generation occupies 8/9 of the heap while the new generation occupies 1/9, as Figure 4 shows. This allocation is appropriate for client applications, like Java GUIs, that allocate many short-lived £Ïbjects. £Ïbjects created to support a GUI window often do not live beyond the window display's life. After a few minor collections for longer-running applications where £Ïbjects live longer, tenure occurs and the £Ïbjects move to the old generation. Once this happens, every subsequent collection is commonly a major one.


Figure 4. Impact of NewRatio on generation sizes


Java HotSpot Server VM ratio
The Java HotSpot Server VM 1.3.1 is similar to the HotSpot Client JVM except that it has been specially tuned to maximize peak operating speed. It is intended for long-running server applications, for which the fastest possible operating speed is generally more important than having the fastest startup time. To invoke the HotSpot Server JVM instead of the default HotSpot Client JVM, use the -server parameter; for example, java -server MyApp.

The default NewRatio for the HotSpot Server JVM is 2; the old generation occupies 2/3 of the heap while the new generation occupies 1/3, as Figure 4 above shows. The larger new generation can accommodate many more short-lived £Ïbjects, thus decreasing the need for slow major collections. The old generation is still sufficiently large enough to hold many long-lived £Ïbjects.


Client JVM vs. Server JVM: Which is right for you?
There is no simple answer to the question of which HotSpot JVM is right for your application. Just because an application is long running doesn't mean it doesn't allocate many short-lived £Ïbjects. Also, just because an application is a GUI doesn't mean it only allocates short-lived £Ïbjects. Only you understand how your application creates and destroys £Ïbjects.

The "Capture GC Statistics" section below explains how to determine GC behavior within your application. Poorly selected JVM parameters can severely degrade your application performance. For applications running under the WebLogic framework, I have often seen 20 to 30 percent performance improvement simply by adding the -server parameter, thereby selecting the HotSpot Server JVM over the default HotSpot Client JVM.

In general, if your Java application is a standalone program, the HotSpot Client JVM will probably give you the best performance. If your Java application executes within a server framework, such as BEA WebLogic, the HotSpot Server JVM will probably give you better performance. Try each and see what works best for your application.

Note: When no client or server parameter is provided, the Java HotSpot VM 1.3.1 uses its default value. The default is the first line in the jvm.cfg file, which is located in the <jvm_dir>/jre/lib directory. Rather than modifying all your startup £Ócripts to add the -server parameter, you can make -server the first noncomment line in the file.


SurvivorRatio
The SurvivorRatio parameter controls the size of the two survivor spaces. For example, if you set the parameter to -XX:SurvivorRatio=10, the ratio between each survivor space and eden is 1:10. Since two survivor spaces exist, each survivor space will be 1/12 of the new generation.

While SurvivorRatio is generally less important to performance, you should know that the default setting is 25. Figure 5 shows a drawn-to-scale default HotSpot Server JVM heap with a NewRatio of 2 (i.e., the old generation is twice the size of the new generation) and a SurvivorRatio of 25 (i.e., a survivor space is 1/25 the size of eden).


Figure 5. SurvivorRatio default setting of 25


Word to the wise
To improve performance, it's important to keep eden smaller than half the heap size. This ensures that you have enough memory available to complete a minor collection. When you lack enough memory, a major collection will occur, which will bog down performance.

This means that the old generation must typically be larger than the new generation. One reason for this is that the HotSpot JVM guarantees that if everything is alive in eden, it can all be copied to the old space, so that every collection triggers a full GC. An exception is if you use the -XX:MaxLive£ÏbjectEvacuationRatio=<n> parameter. This ratio lets you declare that you have short-lived £Ïbjects and that the HotSpot JVM needn't worry about having a large enough old space. This parameter can be 0 if you want almost no old generation; the default value is 100, meaning that 100 percent of eden may contain live £Ïbjects.

This gives you an idea of the level of control you can have over the way in which the HotSpot JVM uses the heap space you allocate to it. It should also show the level of understanding you should possess before using -XX parameters in production environments. For example, if you set the -XX:MaxLive£ÏbjectEvacuationRatio=<n> parameter too low, you will continually get an out-of-memory error, so use it with extreme caution. (See "Sidebar 1: Support for -XX Parameters" at the end of this article.)


Analyze GC behavior
To determine which HotSpot JVM parameters are best for your application, you may need to ask the JVM to display information about its GC behavior.

Capture GC statistics
Every time the JVM performs a collection, the command line parameter -verbosegc instructs it to output the heap data. In the following sample output, there are four minor collections, one major collection, and then three more minor collections. The numbers before and after the arrow indicate the size of the live £Ïbjects before and after the GC. The number in parentheses is the total heap size. In the first GC, 40,549 KB of £Ïbjects existed before collection and 20,909 KB of £Ïbjects after collection. This means that 19,640 KB of £Ïbjects were dead and collected. The total heap size is 64,768 KB. The collection process required 0.0484179 seconds:

ÄÚµå:
[GC 40549K->20909K(64768K), 0.0484179 secs]
[GC 41197K->21405K(64768K), 0.0411095 secs]
[GC 41693K->22995K(64768K), 0.0846190 secs]
[GC 43283K->23672K(64768K), 0.0492838 secs]
[Full GC 43960K->1749K(64768K), 0.1452965 secs]
[GC 22037K->2810K(64768K), 0.0310949 secs]
[GC 23098K->3657K(64768K), 0.0469624 secs]
[GC 23945K->4847K(64768K), 0.0580108 secs]


An awk £Ócript to analyze the GC data
The following awk £Ócript parses the output from -verbosegc on a Solaris computer, creating a file suitable for importing into Excel for graphing. (Why awk, you ask? As an infrastructure architect, not a Java developer, I felt more comfortable using awk.)

ÄÚµå:
BEGIN {
  printf("Minor\tMajor\tAlive\tFreed\n")
}
{
  if ( substr($0,1,4) == "[GC " )  {
    # break each input line into 4 pieces in array[]
    split($0,array," ");
    # array[1]="[GC"
    # array[2]="20713K->549K(64768K),"
    # array[3]="0.0086130"
    # array[4]="secs]"
    printf("%s\t0.0\t",array[3])

    # break array[2]="43960K->1749K(64768K)," into 4 pieces in barray[]
    split(array[2],barray,"K")
    # barray[1]="43960"
    # barray[2]="->1749"
    # barray[3]="(64768"
    # barray[4]="),"
    before=barray[1]
    after=substr(barray[2],3)
    reclaim=before-after
    printf("%s\t%s\n",after,reclaim)
  }

  if ( substr($0,1,9) == "[Full GC " )  {
    # break each input line into 4 pieces in array[]
    split($0,array," ");
    # array[1]="[Full"
    # array[2]="GC"
    # array[3]="20713K->549K(64768K),"
    # array[4]="0.0086130"
    # array[5]="secs]"
    printf("0.0\t%s\t",array[4])

    # break array[2]="43960K->1749K(64768K)," into 4 pieces in barray[]
    split(array[3],barray,"K")
    # barray[1]="43960"
    # barray[2]="->1749"
    # barray[3]="(64768"
    # barray[4]="),"
    before=barray[1]
    after=substr(barray[2],3)
    reclaim=before-after
    printf("%s\t%s\n",after,reclaim)
  }

  # no idea what this line is so skip it
  next;
}


Here is sample output from the above awk £Ócript:

ÄÚµå:
Minor       Major       Alive       Freed
0.0484179   0.0         20909       19640
0.0411095   0.0         21405       19792
0.0846190   0.0         22995       18698
0.0492838   0.0         23672       19611
0.0         0.1452965   1749        42211
0.0310949   0.0         2810        19227
0.0469624   0.0         3657        19441
0.0580108   0.0         4847        19098


I imported the awk £Ócript's output into MS Excel. Figure 6 illustrates a graph created from the two lefthand columns. It shows the frequency of minor and major collections plus the amount of time required to perform the GC (i.e., the pauses).


Figure 6. Sample graph of minor/major collections

Figure 7 illustrates a graph created from the two righthand columns. It shows the amount of memory live £Ïbjects consumed following each GC, as well as the amount of memory freed when dead £Ïbjects were reclaimed.


Figure 7. Sample graph of GC behavior


Tenure distribution
After £Ïbjects have been collected several times, they become tenured and are promoted to the old generation. You can use the -XX:+PrintTenuringDistribution parameter to display the information the JVM uses during its tenure calculations.

The JVM attempts to keep a target percentage of the survivor spaces empty, as defined by the -XX:TargetSurvivorRatio parameter. The default value is 50, meaning that the goal is to empty one-half (50 percent) of the survivor capacity following GC. The JVM computes the desired survivor size as shown below, and then computes the £Ïbject threshold. An £Ïbject's threshold accounts for the number of times an £Ïbject is copied before it is tenured; this is recalculated at each collection:

ÄÚµå:
(survivor_capacity * TargetSurvivorRatio) / 100 * sizeof(a pointer)


Below is sample output when running java -verbosegc -XX:+PrintTenuringDistribution MyApp. In the first GC, the desired survivor size is 393,216 bytes (384 KB) and the threshold is 1, meaning that £Ïbjects will be tenured following one collection. Then the garbage collector goes through the ages, the number of times the collector decides not to promote:

ÄÚµå:
[GC
Desired survivor size 393216 bytes, new threshold 1 (max 32)
- age   1:   509624 bytes,   509624 total
20288K->497K(64768K), 0.0147963 secs]
[GC
Desired survivor size 393216 bytes, new threshold 32 (max 32)
- age   1:   169616 bytes,   169616 total
27697K->6997K(64768K), 0.0038858 secs]
[GC
Desired survivor size 393216 bytes, new threshold 32 (max 32)
- age   1:   191392 bytes,   191392 total
- age   2:    52944 bytes,   244336 total
27285K->7070K(64768K), 0.0046738 secs]
[GC
Desired survivor size 393216 bytes, new threshold 1 (max 32)
- age   1:   733488 bytes,   733488 total
- age   3:    52944 bytes,   786432 total
27358K->7662K(64768K), 0.0148100 secs]


In the first GC above, £Ïbjects occupying 509,624 bytes have already been copied once, meaning that they are in the first age bucket (age 1). In the third GC, there are £Ïbjects occupying 191,392 bytes in the first age bucket and £Ïbjects occupying 52,944 bytes in the second age bucket. Since the threshold is 32 during the third GC, you see that the £Ïbjects were not tenured, because in the fourth GC there are £Ïbjects occupying 52,944 bytes in the third age bucket.

(See "Sidebar 2: Performance Test Program" at the end of this article for information on Ed Ort's HeapTest program used to test parameters in this article.)


Take out the trash
Ordinarily, the Java developer doesn't have to be concerned with the complexity of memory allocation and GC within the JVM. However, understanding aspects of this hidden implementation can help you ensure effective resource use. Garbage collection algorithms make assumptions about the way applications use £Ïbjects. The HotSpot JVM's tunable parameters let you adjust the GC algorithms to better meet your application's behavior characteristics. Sometimes just adding the -server parameter to switch from the default HotSpot Client JVM to the HotSpot Server JVM can improve throughput of WebLogic applications by 20 percent or more.

Stay tuned for the Java HotSpot VM 1.4 release, which will extend the train, or incremental, garbage collector algorithm to perform GC in parallel.

---------------------------------------------------------------------

Sidebar 1: Support for -XX parameters

The NewRatio parameter is preceded with -XX. The HotSpot JVM documentation contains these cautions:

  • Options that begin with -X are nonstandard (not guaranteed to be supported on all VM implementations), and are subject to change without notice in subsequent releases of the Java 2 SDK.
  • Because the -XX options have specific system requirements for correct operation and may require privileged access to system configuration parameters, they are not recommended for casual use. These options are also subject to change without notice.


While I understand the intent of these cautions, I also understand that the JVM behavior for my applications can either be controlled by Sun Microsystems or by me. If I decide not to use the -XX parameters, then I accept the default logic as defined by Sun within the JVM. Sun may have coded this default logic to address issues with Java client GUI applications, using assumptions about heap usage and £Ïbject lifespan inappropriate for my large, server-side applications running inside the WebLogic framework.

The JVM contains the necessary logic to control all aspects of heap allocation and usage. The decision to use the -XX parameters is not a decision to use nonstandard logic; it is a decision to control the logic yourself rather than have Sun control it. My decision to use the -XX parameters shows that I know my application's behavior, and that I choose not to accept default logic.

Sidebar 2: Performance test program

I needed a Java program to run while testing the parameters for the HotSpot JVM. Since I am an infrastructure architect, not a Java developer, I borrowed one. In February 2001, Ed Ort published "A Test of Java Virtual Machine Performance" at Sun's Java Developer Connection, in which he introduced a multithreaded, performance test program called HeapTest.

The HeapTest program iterates through a number of loops of work. In each loop, it performs a set of memory allocation and computation tasks. In the first loop, HeapTest performs memory allocation exclusively. In the next loop, it performs primarily memory allocation and some computation. With each succeeding loop, it lowers the amount of memory allocation activity and raises the amount of computation activity, until the final loop, in which all the work is computation.

No matter what mix of tasks it performs, the program equally distributes the work it does across a number of threads. The maximum number of threads HeapTest starts and the number of loops HeapTest executes depend on arguments specified at runtime. For example, the following command runs HeapTest (in the heaptest package) with a maximum of five threads, and performs a maximum of two loops for either memory allocation or computation:

ÄÚµå:
java  -server  heaptest.HeapTest 5 2


The maximum loop value of 2 results in HeapTest executing a set of tasks three times: first, it performs two loops of memory allocation; second, it performs one loop of memory allocation and one loop of computation; and third, it performs two computation loops.

For each run, the program prints the total time required to perform the work (that is, memory allocation and computation) for a given number of threads, up to the maximum number of threads available. Here's an example of HeapTest output for a maximum of five threads and two loops:

ÄÚµå:
Threads     2 Heap, 0 CPU     1 Heap, 1 CPU     0 Heap, 2 CPU
1     8887    14203     18855
2     9836    14865     18657
3     10588   16572     18738
4     10253   16190     18303
5     10194   16675     18895


ÁÖÁ¦ : ¿©°¡/»ýÈ°/IT > ÄÄÇ»ÅÍ/ÀÎÅͳÝ

¡ãtop