)¿¡¼ °¡Á®¿Â °ÍÀÓÀ» ¹àÈü´Ï´Ù. (°¡Á®¿Â »ç¶÷: Á¶ÀçÇõ
Hypertext Transfer Protocol - HTTP/1.0 (Korean Version 3.0)
HyperText Transfer Protocol -- HTTP/1.0
(Korean Version 3.0)
305-350, ´ëÀü±¤¿ª½Ã À¯¼º±¸ °¡Á¤µ¿ 161¹øÁö
Çѱ¹ÀüÀÚÅë½Å¿¬±¸¼Ò ¸ÖƼ¹Ìµð¾îÇ¥ÁØ¿¬±¸½Ç
±è ¿ë ¿î
E-mail
: qkim@pec.etri.re.kr
URL : http://pec.etri.re.kr/~qkim/
- Abstract:
- HTTP´Â HyperText Transfer ProtocolÀÇ ¾àÀÚÀ̸ç, ºÐ»êȯ°æ ¹× °øµ¿ÀÛ¾÷ ȯ°æ¿¡ ÀÌ¿ëÇÒ ÇÏÀÌÆÛ¹Ìµð¾î Á¤º¸½Ã½ºÅÛÀÇ
°³¹ßÀ» ¸ñÀûÀ¸·Î ¼³°èµÈ ÀÀ¿ë°èÃþÀÇ ÇÁ·ÎÅäÄݷμ WWW¿¡¼ÀÇ ÇÏÀÌÆÛÅØ½ºÆ® ¹®¼ÀÇ Àü¼ÛÀ» À§ÇØ ¾²ÀÌ´Â ÇÁ·ÎÅäÄÝÀ̶õ ¶æÀÌ´Ù. ¶ÇÇÑ ¿ä±¸ ¸í·É¾îÀÇ
Ãß°¡¸¦ ÅëÇØ ³×ÀÓ ¼¹ö³ª ºÐ»ê °´Ã¼ °ü¸® ½Ã½ºÅÛ µî°ú °°Àº ¿©·¯ °¡Áö ÀÏ¿¡µµ »ç¿ëÇÒ ¼ö ÀÖ´Â °´Ã¼ ÁöÇâ ÇÁ·ÎÅäÄÝÀ̸ç, ±Û¿¡¼ º¸ÀÌ´Â
HyperText ¹®¼¸¸ÀÌ ¾Æ´Ï¶ó À½¼º, È»ó, µ¥ÀÌŸ µî°ú °°ÀÌ MIME¿¡ ÀÇÇØ Á¤ÀÇµÉ ¼ö ÀÖ´Â ¸ðµç ¹®¼ Çü½ÄÀ» Àü¼ÛÇÒ ¼ö ÀÖ´Ù. ÀÌ¿Í
°°Àº HTTP ÇÁ·ÎÅäÄÝÀÇ ±¸Á¶¿Í µ¿ÀÛ ¸ÞÄ«´ÏÁò¿¡ ´ëÇØ »ìÆìº¸°íÀÚ ÇÑ´Ù.
- Keywords:
- HTTP, Protocol, BNF, Message, Header, Request, Response, Entity, Method,
Proxy, Cache, Access Authentication
- Status:
- ÀÌ ¹®¼´Â ftp://ds.internic.net/rfc/rfc1945.txt
¹®¼¸¦ Á¤¸®ÇÑ °ÍÀÌ´Ù. º»¹® ¼Ó¿¡ µé¾îÀÖ´Â ¸ðµç ³»¿ëÀÌ ±×´ë·Î ¶Ç´Â º¸¿Ï ¼³¸íµÇ¾î ÀÖ´Ù. º» ¹®¼ÀÎ Korean Version 3.0ÀÌ
À§Ä¡ÇÏ´Â °÷Àº http://pec.etri.re.kr/~qkim/HTTP/http10v3.html
À̸ç, ÀÌÀü ¹®¼ÀÎ Korean Version 2.0ÀÌ À§Ä¡ÇÏ´Â °÷Àº http://pec.etri.re.kr/~qkim/HTTP/http10v2.html
À̰í, ÀÌ ÀÌÀü ¹®¼ÀÎ Korean Version 1.0ÀÌ À§Ä¡ÇÏ´Â °÷Àº http://pec.etri.re.kr/~qkim/HTTP/http10v1.txt
ÀÌ´Ù. WWW¿¡¼ »ç¿ëÇÏ´Â °¢Á¾ ÇÁ·ÎÅäÄÝ¿¡ ´ëÇÑ ¹®¼ Á¤¸®´Â http://pec.etri.re.kr/~qkim/HTTP/¿¡
Á¤¸®µÇ°í ÀÖÀ¸¸ç ¹®¼ ³»¿ëÀÇ º¯°æ¿¡ ´ëÇÑ ¾Ë¸²±ÛÀÌ ÀÖ´Ù.
1. ¼·Ð
1.1 HTTP vs. TCP/IP
HTTP´Â World Wide Web¿¡¼ »ç¿ëÇϰí ÀÖ´Â µ¥ÀÌŸ ¼Û¼ö½Å ÇÁ·ÎÅäÄÝÀ̸ç TCP ¼ö¼Û°èÃþ ÇÁ·ÎÅäÄÝÀ» ±â¹ÝÀ¸·Î ÇÏ´Â ÀÀ¿ë°èÃþÀÇ
ÇÁ·ÎÅäÄÝÀÌ´Ù. ±×·¯¹Ç·Î TCP Àü¼ÛÀÇ Æ¯¼º¿¡ µû¶ó¼ ¸ðµç µ¥ÀÌŸ Çü½Ä¿¡ ´ëÇØ 8-bit ÀÌÁø¸ðµå·Î Àü¼ÛÇÒ ¼ö ÀÖ´Ù.
¿©±â¼ 8-bit ÀÌÁø¸ðµå Àü¼ÛÀ̶ó ÇÔÀº 1-bitµµ ºüÁü¾øÀÌ ¿ÏÀü¹«°áÇÏ°Ô Àü¼ÛµÈ´Ù´Â °ÍÀ̸ç, 7-bit ¾Æ½ºÅ°¸ðµå Àü¼ÛÀ̶ó ÇÔÀº
8-bit ±âº» ´ÜÀ§¿¡¼ MSB 1-bitÀÇ ¿ÏÀü¹«°á¼ºÀ» º¸ÀåÇÏÁö ¸ø ÇÑä Àü¼ÛµÈ´Ù´Â °ÍÀ̹ǷΠµ¥ÀÌŸ Àü¼Û¿¡ ¿À·ù°¡ »ý±æ °¡´É¼ºÀÌ ÀÖ´Ù. µû¶ó¼
¾Æ½ºÅ° ÅØ½ºÆ® ¹®¼¸¦ Àü¼ÛÇÒ ¶§´Â 7-bit ¾Æ½ºÅ°¸ðµå·Î Àü¼ÛÀ» ÇØµµ µÇÁö¸¸ ½ÇÇàÆÄÀϰú °°Àº ÀÌÁø µ¥ÀÌŸ¸¦ Àü¼ÛÇϰíÀÚ ÇÒ ¶§´Â ¹Ýµå½Ã 8-bit
ÀÌÁø¸ðµå·Î Àü¼ÛÇÏ¿©¾ß¸¸ ÇÑ´Ù.

[±×¸² 1] TCP/IP Protocol Stack[19]
±×·¯¹Ç·Î HTTP Àü¼Û ÇÁ·ÎÅäÄÝÀÌ ÀÌÁø¸ðµå·Î µ¥ÀÌŸ¸¦ Àü¼ÛÇÑ´Ù´Â °ÍÀº TCP/IP ÇÁ·ÎÅäÄÝ Ã¼°è °¡¿îµ¥ TELNETÀ̳ª FTP¿Í °°ÀÌ
TCP Àü¼Û ÇÁ·ÎÅäÄÝ »ó¿¡¼ Ȱ¿ëµÇ´Â ÀÀ¿ë ÇÁ·ÎÅäÄÝÀÇ ÇÑ °¡ÁöÀÓÀ» ¶æÇϸç, ´Ù¸¸ WWW ¿ëÀÇ ±Ô¾à Á¤º¸°¡ HTTP ÇÁ·ÎÅäÄݷμ Ȱ¿ëµÇ°í ÀÖÀ»
»ÓÀÌ´Ù. Áï, ±×¸² 1°ú °°ÀÌ ³ªÅ¸³¾ ¼ö ÀÖ´Ù.
TCP/IP ÇÁ·ÎÅäÄÝ¿¡¼´Â TCP Àü¼Û ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇÏ´Â ÀÀ¿ë ÇÁ·ÎÅäÄÝµé »çÀÌÀÇ ±¸º°À» port ¹øÈ£¸¦ ÅëÇØ ÇØ°áÇϰí ÀÖ´Ù. ±×·¯¹Ç·Î
HTTP ÀÀ¿ë ÇÁ·ÎÅäÄÝ¿¡ ÇÒ´çµÇ¾î »ç¿ëÇÏ´Â TCP Æ÷Æ®°¡ ÀÖÀ¸¸ç 80¹øÀ¸·Î ÁöÁ¤µÇ¾î ÀÖ´Ù. Á¤ÀǵǾî ÀÖÁö ¾ÊÀº ´Ù¸¥ ÀÓÀÇÀÇ Æ÷Æ®¸¦ ÀÌ¿ëÇÒ ¼öµµ
ÀÖÀ¸³ª ±âº»ÀûÀ¸·Î Á¤ÀǵǾî ÀÖ´Â ¹øÈ£´Â 80¹øÀÌ´Ù.
±×·¸´Ù°í ÇØ¼ HTTP ÇÁ·ÎÅäÄÝÀº TCP/IP¿¡¼¸¸ µ¿ÀÛÇÒ ¼ö ÀÖ´Â °ÍÀº ¾Æ´Ï´Ù. OSI ÂüÁ¶¸ðµ¨À» ÀÌ¿ëÇÑ ÇÁ·ÎÅäÄÝ Ã¼°è¿¡¼µµ ¼ö¼Û°èÃþÀÇ
Àü¼Û ÇÁ·ÎÅäÄÝ »ó¿¡¼ HTTP ÇÁ·ÎÅäÄÝÀº ÀÀ¿ë ÇÁ·ÎÅäÄݷμ Ȱ¿ëµÉ ¼ö ÀÖ´Â °ÍÀÌ´Ù. ´Ù¸¸ ´Ù¸¥ ÇÁ·ÎÅäÄÝ Ã¼°è¿¡¼ »ç¿ëÇϰíÀÚ ÇÒ ¶§´Â ±×¿¡ ¸Â°Ô²û
¾à°£ÀÇ ÀûÀýÇÑ ¼öÁ¤À» ÇØ¾ß¸¸ °¡´ÉÇÒ °ÍÀÌ´Ù.
¹öÀü 1.0 HTTP ÇÁ·ÎÅäÄÝ(HTTP/1.0)Àº IETF (Internet Engineering Task Forces)¿¡ ÀÇÇØ RFC
1945·Î Á¤½Ä µî·ÏµÇ¾úÀ¸¸ç, ¹öÀü 1.1Àº(HTTP/1.1)Àº Proposed Standard·Î µî·ÏµÇ¾î RFC editor¿¡ ÀÇÇØ ÀçÀÛ¼ºµÈ
ÈÄ RFC·Î¼ »õ·ÎÀÌ µî·ÏµÉ ¿¹Á¤ÀÌ´Ù. ÇöÀçÀÇ WWW¿¡¼ ¾²À̰í ÀÖ´Â HTTP ÇÁ·ÎÅäÄÝÀº 1.0 ¹öÀüÀ̸ç 1.1 ¹öÀüÀÇ °ÍÀÌ ±¸ÇöµÇ°í ÀÖ´Â
ÁßÀ̰í '96³â 10¿ù ÇöÀç W3C¿¡¼ ¹ßÇ¥ÇÑ Amaya¿Í Jigsaw°¡ 1.1 ¹öÀüÀ» ±¸ÇöÇÑ °ÍÀÌ´Ù.
1.2 HTTPÀÇ µîÀå ¹è°æ ¹× ¸ñÀû
½ÇÁ¦ÀûÀÎ Á¤º¸½Ã½ºÅÛ¿¡¼´Â °Ë»ö, Á¤º¸ °»½Å, ¹× ÁÖ¼® µî°ú °°Àº °£´ÜÇÑ ÀÛ¾÷º¸´Ù´Â ´õ¿í ´Ù¾çÇÑ ±â´ÉÀ» ÇÊ¿ä·Î Çϰí ÀÖ´Ù. ¶ÇÇÑ ºÐ»ê ȯ°æ,
°øµ¿ÀÛ¾÷ ȯ°æ, ÇÏÀÌÆÛ¹Ìµð¾î Á¤º¸½Ã½ºÅÛ µîÀÇ »óȲ¿¡¼ ÇÊ¿ä·Î ÇÏ´Â ºü¸¥ ¼Óµµ¿Í °£Æí¼ºÀ» Á¦°øÇϱâ À§ÇÑ ÀÀ¿ë°èÃþÀÇ ÇÁ·ÎÅäÄÝÀÌ ÇÊ¿äÇÏ°Ô µÇ¾ú°í À̸¦
¸ñÀûÀ¸·Î HTTP ÇÁ·ÎÅäÄÝÀÌ ¼³°èµÇ¾ú´Ù.
ÀÌ¿¡ µû¶ó ´ë»óüÀÇ À§Ä¡³ª À̸§À» ÁöÁ¤ÇÏ´Â URI·ÎºÎÅÍ Á¦°øµÇ´Â Á¤º¸¸¦ ÀÌ¿ëÇÏ¿©, ´ë»ó ÈÀÏÀ» ¾î¶»°Ô Ȱ¿ëÇÒ °ÍÀΰ¡ ÁöÁ¤ÇÏ´Â methodÀÇ
ÁýÇÕ¿¡ µû¶ó¼ ÀûÀýÇÑ ±â´É µ¿ÀÛÀ» ÇϰԲû HTTP´Â ¼³°èµÇ¾î ÀÖ´Ù. ÀÌ¿¡ µû¶ó ¼Û¼ö½ÅµÇ´Â ÇÁ·ÎÅäÄÝ ±¸¼ºÃ¼´Â ¸Þ½ÃÁö¶ó´Â À̸§À¸·Î ºÒ¸®¿ì¸ç
Internet Mail°ú MIME¿¡¼ »ç¿ëÇÏ´Â ¹æ½Ä°ú ºñ½ÁÇÏ°Ô ±¸¼ºµÇ¾î ¼Û¼ö½ÅµÈ´Ù.
¶ÇÇÑ HTTP´Â »ç¿ëÀÚ ºê¶ó¿ìÀú¿Í ÇÁ¶ô½Ã ¼¹ö ¶Ç´Â °ÔÀÌÆ®¿þÀÌ »çÀÌ¿¡¼ SMTP, NNTP, FTP, Gopher, WAIS µî°ú °°Àº
±âÁ¸ ÇÁ·ÎÅäÄݰúÀÇ Åë½ÅÀ» °¡´ÉÇÏ°Ô ÇØÁÖ´Â ÇÁ·ÎÅäÄÝÀÇ ¿ªÇÒÀ» ÇϰԲû ÇÒ ¼öµµ ÀÖ´Ù. ÀÌ¿¡ µû¶ó ±âÁ¸ÀÇ ÃàÀûµÇ¾î ÀÖ´Â ÇÏÀÌÆÛ¹Ìµð¾î Á¤º¸µéÀ» ±×´ë·Î
Ȱ¿ëÇÒ ¼ö ÀÖ°Ô ÇÏ¸ç »ç¿ëÀÚ ºê¶ó¿ìÀúÀÇ ±¸Çöµµ ´Ü¼øÈ ½Ãų ¼ö ÀÖ°Ô ÇÑ´Ù.
ÀÌ ¹®¼´Â "HTTP/1.0"À¸·Î¼ ¾Ë·ÁÁø HTTP ÇÁ·ÎÅäÄÝÀÇ È°¿ë¿¡ °üÇÑ °ÍÀÌ¸ç ´ëºÎºÐÀÇ HTTP/1.0 Ŭ¶óÀÌ¾ðÆ®¿Í
¼¹ö¿¡ ±¸ÇöµÇ¾î ÀÖ´Â ±â´É ¹× Ư¡µé¿¡ °üÇÑ »çÇ×À» ´Ù·ç°í ÀÖ´Ù.
ÀÌ ¹®¼´Â µÎ °¡Áö ºÎºÐÀ¸·Î ±¸¼ºµÇ¾î ÀÖÀ¸¸ç ´ëºÎºÐÀÇ ¿¡ÀÌÀüÆ®¿¡¼ ±¸ÇöµÇ¾î ÀÖ¾î ´Ù¸¥ ¿¡ÀÌÀüÆ®µé°úµµ ÀϰüÀûÀ¸·Î Àß µ¿ÀÛÇÏ´Â ±â´É Ư¼ºµéÀ»
¾ÕºÎºÐ¿¡ Æ÷ÇÔÇϰí ÀÖ°í, ƯÁ¤ ¿¡ÀÌÀüÆ®¿¡¸¸ ±¸ÇöµÇ¾î ÀÖ¾î ´Ù¸¥ ¿¡ÀÌÀüÆ®µé°ú ÀϰüÀûÀ¸·Î ¾²ÀÌÁö ¾Ê´Â ±â´É Ư¼ºµéÀº ºÎ·Ï D¿¡ Æ÷ÇÔÇϰí ÀÖ´Ù.
1.3 HTTP ÇÁ·ÎÅäÄÝ ±Ô°Ý¼¿¡ ¾²ÀÌ´Â ¿ë¾î
HTTP ÇÁ·ÎÅäÄÝ ¼³¸í¼¿¡´Â ¿©·¯ °¡Áö ¿ë¾îµéÀÌ ¾²À̰í ÀÖÀ¸¸ç ÁÖ¿ä ¿ë¾îµé¿¡ ´ëÇØ ¼³¸íÇϵµ·Ï ÇÑ´Ù.
- ¿¬°á(connection)
- µ¥ÀÌŸ ¼Û¼ö½ÅÀ» À§ÇØ µÎ °³ÀÇ ÀÀ¿ë ÇÁ·Î±×·¥ »çÀÌ¿¡ TCP µ¥ÀÌŸ Àü¼Û ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇØ¼ ¸¸µé¾îÁø °¡»óÀûÀÎ ¿¬°á¼±ÀÌ´Ù.
- ¸Þ½ÃÁö(message)
- HTTP ÇÁ·ÎÅäÄÝÀÇ Åë½ÅÀ» À§ÇØ »ç¿ëµÇ´Â ±âº»ÀûÀÎ ¼Û¼ö½Å ´ÜÀ§ÀÌ´Ù. ¿¬°áÀ» ÅëÇØ Àü¼ÛµÇ¸ç Á¦4Àå¿¡ Á¤ÀǵǾî Àִ ǥÇö½Ä°ú ÀÏÄ¡µÇ´Â
±¸Á¶Àû µ¥ÀÌŸ¿ÀÌ´Ù.
- ¿ä±¸(request)
- HTTP ÇÁ·ÎÅäÄÝ »ó¿¡¼ ºê¶ó¿ìÀú°¡ ¾î¶² µ¥ÀÌŸ ¿ä±¸¸¦ Çϱâ À§ÇØ º¸³»´Â HTTP ¸Þ½ÃÁö. (Á¦5Àå ÂüÁ¶)
- ÀÀ´ä(response)
- HTTP ÇÁ·ÎÅäÄÝ »ó¿¡¼ ¼ö½ÅÇÑ ¿ä±¸¿¡ ´ëÇØ ¼¹ö°¡ ó¸®ÇÑ °á°ú¸¦ ºê¶ó¿ìÀú¿¡°Ô ÀÀ´äÀ¸·Î º¸³»´Â HTTP ¸Þ½ÃÁö. (Á¦6Àå ÂüÁ¶)
- ÀÚ¿ø(resource)
- URI¿¡ ÀÇÇØ ÁöÁ¤µÉ ¼ö ÀÖ´Â ¼ºñ½º ¶Ç´Â Åë½Å¸Á »óÀÇ µ¥ÀÌŸ
- ¿£ÅÍÆ¼(entity), °³Ã¼
- µ¥ÀÌŸ ÀÚ¿øÀÇ Æ¯Á¤ÇÑ Ç¥Çö Çüųª ¿¬ÃâµÈ ÇüÅÂ, ¶Ç´Â ¾î´À ¼ºñ½º ÀÚ¿øÀ¸·ÎºÎÅÍÀÇ ÀÀ´äÀÌ ¿£ÅÍÆ¼°¡ µÉ ¼ö ÀÖÀ¸¸ç, À̰ÍÀº ¿ä±¸ ¶Ç´Â
ÀÀ´ä ¸Þ½ÃÁö¿¡ Æ÷Ç﵃ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ¿£ÅÍÆ¼´Â ¿£ÅÍÆ¼ ¿µ¿ª¿¡ ÀÖ´Â ³»¿ë°ú ¿£ÅÍÆ¼ Çì´õÀÇ ÇüÅ·ΠµÇ¾î ÀÖ´Â
¸ÞŸÁ¤º¸(metainformation, 4.6Àý ÂüÁ¶)·Î ±¸¼ºµÇ¾î ÀÖ´Ù.
- Ŭ¶óÀ̾ðÆ®(client)
- HTTP ÇÁ·ÎÅäÄÝ ±Ô¾à¿¡ ¸ÂÃß¾î ¿ä±¸¸¦ º¸³»°í ¼¹ö°¡ º¸³»¿À´Â ÀÀ´äÀ» ¼ö½ÅÇÏ´Â ¿ªÇÒÀ» Çϸç, ÀÌ·± ¼Û¼ö½Å¿¡ ÀÖ¾î ¿ä±¸ ¸Þ½ÃÁö¸¦
Àü´ÞÇϱâ À§ÇÑ ¿¬°áÀ» ¼³¸³ÇÏ´Â ÀÀ¿ë ÇÁ·Î±×·¥.
- »ç¿ëÀÚ ¿¡ÀÌÀüÆ®(user agent)
- ¿ä±¸¸¦ ¹ß»ý½ÃŰ´Â ¿ªÇÒÀ» Çϴ Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥À» ¸»ÇÑ´Ù. ºê¶ó¿ìÀú, ¹®¼ÀÛ¼º±â, ½ºÆÄÀÌ´õ(À¥°Ë»ö ·Îº¸Æ®), ¶Ç´Â ´Ù¸¥ »ç¿ëÀÚ
µµ±¸µéÀÌ ±× ¿¹ÀÌ´Ù.
- ¼¹ö(server)
- ¿äû¹ÞÀº ¼ºñ½º¸¦ Á¦°øÇØÁÖ±â À§ÇØ ¿¬°áÀ» Çã¿ëÇÏ´Â ÀÀ¿ë ÇÁ·Î±×·¥.
- ¿ø¼¹ö(origin server)
- ÇÁ¶ô½Ã ¼¹ö¿Í °°ÀÌ Áß°èÇØÁÖ´Â °ÍÀÌ ¾Æ´Ï¶ó ÃÖÁ¾ÀûÀ¸·Î ½ÇÁ¦ µ¥ÀÌŸ¸¦ ÀúÀåÇØµÎ°í¼ ¼ö½ÅÇÑ ¿ä±¸¿¡ ´ëÇØ ¼ºñ½º¸¦ Á¦°øÇϰųª, ¿ä±¸¿¡ ÀÇÇØ
ÀúÀåÇÒ ¼ö ÀÖ´Â Àå¼Ò¸¦ Á¦°øÇÏ´Â ¼¹öÀÌ´Ù.
- ÇÁ¶ô½Ã(proxy)
- ´Ù¸¥ Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥°úÀÇ »çÀÌ¿¡¼ ¼¹ö·Î¼µµ Ŭ¶óÀÌ¾ðÆ®·Î¼µµ µ¿ÀÛÇÏ´Â Áß°è ÇÁ·Î±×·¥ÀÌ´Ù. ¿ä±¸´Â ³»ºÎÀûÀÎ µ¿ÀÛ¿¡ ÀÇÇØ 󸮵ǵçÁö,
¾Æ´Ï¸é °¡´ÉÇÑ º¯È¯À» ÅëÇØ ´Ù¸¥ ¼¹ö·Î Àü´ÞµÇµçÁö ÇÑ´Ù. ÇÁ¶ô½Ã´Â Áß°èÇØÁֱ⿡ ¾Õ¼ ¿ä±¸ ¸Þ½ÃÁö¸¦ ÇØ¼®ÇØ º¸¾Æ¾ß Çϰí, ÇÊ¿äÇÏ´Ù¸é ÀûÀýÈ÷
´Ù½Ã ¸¸µé ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ÇÁ¶ô½Ã´Â ¹æÈº®À» Åë°úÇϴ Ŭ¶óÀ̾ðÆ®Ãø Åë·Î·Î¼, ¶Ç´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ®¿¡ ±¸ÇöµÇ¾î ÀÖÁö ¾ÊÀº ÇÁ·ÎÅäÄÝ¿¡ µû¸¥
¿ä±¸¸¦ ó¸®ÇÒ ¼ö ÀÖ´Â µµ¿ì¹Ì ÀÀ¿ë ÇÁ·Î±×·¥À¸·Î¼ Á¾Á¾ ¾²ÀδÙ.
- °ÔÀÌÆ®¿þÀÌ(gateway)
- ´Ù¸¥ ¾î¶² ¼¹ö¿ÍÀÇ Áß°è ¿ªÇÒÀ» ÇÏ´Â ¼¹öÀÌ´Ù. ÇÁ¶ô½Ã¿Í´Â ´Þ¸® ºê¶ó¿ìÀú°¡ ¿ä±¸ÇÑ ÀÚ¿ø¿¡ ´ëÇØ ¸¶Ä¡ ÀÚ½ÅÀÌ ¿ø¼¹öÀÎ °Íó·³ µ¿ÀÛÇÏ¿©
Áß°è ¼ºñ½º ÇØÁØ´Ù. µû¶ó¼ °ÔÀÌÆ®¿þÀÌ´Â ºê¶ó¿ìÀú¿¡ ´ëÇØ ¿ø¼¹öó·³ µ¿ÀÛÇÔÀ¸·Î½á ºê¶ó¿ìÀú´Â Á¦°ø¹ÞÀº ¼ºñ½º°¡ °ÔÀÌÆ®¿þÀ̷κÎÅÍ Àü´ÞµÈ °ÍÀÎÁö
¸ð¸¥´Ù. °ÔÀÌÆ®¿þÀÌ´Â ¹æÈº®À» Åë°úÇÏ´Â ¼¹öÃø Åë·Î·Î¼, ¶Ç´Â HTTP ½Ã½ºÅÛÀÌ ¾Æ´Ñ °÷¿¡ ÀúÀåµÇ¾î ÀÖ´Â ÀÚ¿ø¿¡ ´ëÇØ Á¢±ÙÇÏ´Â ÇÁ·ÎÅäÄÝ
º¯È¯±â·Î¼ Á¾Á¾ Ȱ¿ëµÈ´Ù.
- ÅͳÎ(tunnel)
- ÅͳÎÀº µÎ °³ÀÇ ¿¬°á »çÀÌ¿¡ ¹«Á¶°Ç Áß°è (blind relay)ÀÇ ¿ªÇÒÀ» ÇÏ´Â Áß°è ÇÁ·Î±×·¥ÀÌ´Ù. ÀÏ´Ü µ¿ÀÛÇϱ⸸ Çϸé ÅͳÎÀº ¾î´À
HTTP ¿ä±¸¿¡ ÀÇÇØ »ý¼ºµÇ¾úÀ½¿¡µµ ºÒ±¸Çϰí HTTP Åë½Å¿¡ ÀÖ¾î ÇÑ ³¡´Ü(ÇÑ ¿¬°á¼±ÀÇ ¼Û½ÅÃø ¶Ç´Â ¼ö½ÅÃø)À¸·Î °£ÁÖÇÒ ¼ö´Â ¾ø´Ù. Áß°èµÇ´Â
¿¬°á¼±ÀÇ ¾çÂÊ ³¡´ÜÀÌ ÇØÁ¦µÉ ¶§ Åͳεµ ÇØÁ¦µÈ´Ù. ÅͳÎÀº ¾î¶² Åë°ú¹®ÀÌ ÇÊ¿äÇÏÁö¸¸ Áß°è ÇÁ·Î±×·¥ÀÌ Áß°èµÇ´Â Åë½Å µ¥ÀÌŸ¿¡ ´ëÇØ ÇØ¼®ÇÒ ¼ö
¾ø°Å³ª ÇØ¼®Çؼµµ ¾È µÇ´Â °æ¿ì¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
- ij½Ã(cache)
- ÀÀ´ä¹ÞÀº ¸Þ½ÃÁö¸¦ ÀÚ½ÅÀÇ ÄÄÇ»ÅÍ¿¡ ÀúÀåÇÑ Àå¼Ò ¶Ç´Â ÀúÀå/°Ë»ö/»èÁ¦°¡ °¡´ÉÇϵµ·Ï ¸¸µç ÀúÀå ½Ã½ºÅÛÀÌ´Ù. ÀúÀå °¡´ÉÇÑ µ¥ÀÌŸ¸¦
ÀúÀåÇØµÎ°í ÀÖ´Ù°¡ °°Àº µ¥ÀÌŸÀÎ °æ¿ì ´Ù½Ã °¡Á®¿ÀÁö ¾Ê°í ÀúÀåµÇ¾î ÀÖ´Â °ÍÀ» º¸¿©ÁÖµµ·Ï ÇÏ¿© ÀÀ´ä ½Ã°£À» ºü¸£°Ô Çϰí Åë½Å¸Á ÀÌ¿ëÀÇ È¿À²¼ºÀ»
³ôÀδÙ. ¾î¶² Ŭ¶óÀÌ¾ðÆ®³ª ¼¹öÀ̵ç ij½Ã°¡ Åͳημ µ¿ÀÛÇϰí ÀÖ´Â µ¿¾È¿¡´Â ¼¹ö¿¡ ÀÇÇØ »ç¿ëµÉ ¼ö ¾øÀ½¿¡µµ ºÒ±¸Çϰí ij½Ã¸¦ Æ÷ÇÔÇÒ ¼öµµ
ÀÖ´Ù.
¾î¶² ÇÁ·Î±×·¥Àº Ŭ¶óÀÌ¾ðÆ®³ª ¼¹ö·Î¼ µÑ ´Ù µ¿ÀÛÇÒ ¼ö ÀÖÀ¸³ª, ÀÌ °æ¿ì¿¡´Â ƯÁ¤ÇÑ ¿¬°á¿¡ ´ëÇØ ÀÌ ÇÁ·Î±×·¥ÀÌ
ÇÏ´Â ¿ªÇÒ¿¡ µû¶ó ±ÔÁ¤µÉ ¼ö ÀÖ´Ù. ¸¶Âù°¡Áö·Î ¾î¶² ¼¹ö´Â °¢°¢ÀÇ ¿ä±¸¿¡ µû¶ó¼ ¿ø¼¹ö, ÇÁ¶ô½Ã, °ÔÀÌÆ®¿þÀÌ, ¶Ç´Â Åͳημ µ¿ÀÛÇÒ ¼öµµ ÀÖ´Ù.
1.4 HTTP ÇÁ·ÎÅäÄÝÀÇ µ¿ÀÛ
HTTP ÇÁ·ÎÅäÄÝÀº ¿ä±¸/ÀÀ´ä (Request/Response) ¹æ½ÄÀ» ÀÌ¿ëÇÏ¿© µ¿ÀÛÇϰí ÀÖ´Ù. Áï, ¿øÇÏ´Â ÇÁ·ÎÅäÄÝ ±â´É(¿¹: GET,
HEAD, POST)¿¡ ´ëÇØ ¼ºñ½º ¿ä±¸¸¦ ÇÏ¸é µ¥ÀÌŸ ¼Û¼ö½ÅÀ» À§ÇÑ TCP ¿¬°áÀÌ ¸¸µé¾îÁö°í, ¼¹ö°¡ ÀÀ´äÀ» º¸³»¾î µ¥ÀÌŸ Àü¼ÛÀ» ³¡³»¸é
ÀÚµ¿ÀûÀ¸·Î ¿¬°áÀÌ ²÷¾îÁö°Ô µÇ´Â °ÍÀÌ´Ù.
Ŭ¶óÀÌ¾ðÆ®°¡ ¼¹ö¿Í TCP ¿¬°áÀ» ¸¸µé°í, ¿ä±¸ method, URI, ÇÁ·ÎÅäÄÝ ¹öÀü, MIMEÀÇ ÇüÅ·Πǥ½ÃµÇ´Â Ŭ¶óÀÌ¾ðÆ® ÁöÁ¤ »çÇ×µé,
Ŭ¶óÀÌ¾ðÆ® Á¤º¸, ¶§·Î´Â ¼¹ö¿¡°Ô Àü´ÞÇÒ ³»¿ë µ¥ÀÌŸ±îÁö Æ÷ÇÔÇÏ´Â ¿ä±¸ ¸Þ½ÃÁöÀÇ ÇüÅ·Π¼¹ö¿¡°Ô º¸³½´Ù. ÀÌ¿¡ ´ëÇØ ¼¹ö´Â »óÅ Á¤º¸¸¦
º¸³»´Âµ¥, ÇÁ·ÎÅäÄÝ ¹öÀü, ¼º°ø ¶Ç´Â ¿À·ùÄÚµå ¹øÈ£, ±×¸®°í MIMEÀÇ ÇüÅ·Πǥ½ÃµÇ´Â ¼¹ö Á¤º¸¸¦ Æ÷ÇÔÇϰí, ¿£ÅÍÆ¼ÀÇ ¸ÞŸÁ¤º¸, Àü´ÞÇÒ ³»¿ë
µ¥ÀÌŸ µîÀ» Æ÷ÇÔÇÏ´Â ÀÀ´ä ¸Þ½ÃÁö¸¦ Ŭ¶óÀÌ¾ðÆ®¿¡°Ô º¸³½´Ù.
´ëºÎºÐÀÇ HTTP Åë½ÅÀº »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ »ý¼º½ÃŰ°í ¾î¶² ¿ø¼¹ö¿¡ ÀÖ´Â ´ë»ó ÀÚ¿ø¿¡ Àû¿ëÇÒ ¿ä±¸ ¸Þ½ÃÁö¸¦ Àü´ÞÇÏ´Â °ÍÀÌ´Ù. °¡Àå °£´ÜÇÑ
°æ¿ì·Î¼ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®(UA)¿Í ¿ø¼¹ö(O) »çÀÌ¿¡ ¼³¸³µÈ ¿¬°á(v)¿¡ ´ëÇÑ °ÍÀ» º¼ ¼ö ÀÖ´Ù.
+------+ +-----+
| | Request chain ---------------------> | |
| UA +-------------------v--------------------+ O |
| | <-------------------- Response chain | |
+------+ +-----+
ÀÌ¿¡ ´ëÇÑ °£´ÜÇÑ ¿¹¸¦ ¾Æ·¡¿¡¼ »ìÆìº¸µµ·Ï ÇÑ´Ù.
-
Request
- HTTPÀÇ Request Çü½ÄÀº ¾ÆÁÖ °£´ÜÇÏ´Ù. ù ¹øÂ° Á٠óÀ½¿¡ ¼¹öÀÇ ¾î¶² ±â´ÉÀ» ÀÌ¿ëÇÏ·Á´ÂÁö ÁöÁ¤À» Çϸç À̰ÍÀÌ
methodÀÌ´Ù. °¡Àå ÀϹÝÀûÀ¸·Î ¾²À̰í ÀÖ´Â °ÍÀº GET ÀÌ´Ù. À̰ÍÀº ºê¶ó¿ìÀú°¡ ¼¹ö¿¡°Ô ¹®¼¸¦ º¸³»´Þ¶ó°í ¿äûÇÏ´Â °ÍÀÌ´Ù. ±× ´ÙÀ½¿¡´Â
ÈÀÏ À̸§°ú À§Ä¡ÇÏ´Â µð·ºÅ丮 À̸§ µîÀÌ µé¾î°¡´Â URI¸¦ ÁöÁ¤Çϰí ÇöÀç ¾²À̰í ÀÖ´Â HTTP ÇÁ·ÎÅäÄÝÀÇ ¹öÀüÀ» ÁöÁ¤ÇÑ´Ù. ÀÌ ´ÙÀ½¿¡´Â
MIME Çü½ÄÀ¸·Î Ç¥ÇöµÇ´Â ÀÏ·ÃÀÇ ÁöÁ¤ »çÇ×µéÀ» µ¡ºÙÀÏ ¼ö°¡ Àִµ¥, ¿¹¸¦ µé¾î ºê¶ó¿ìÀúÀÇ Á¾·ù °°Àº °ÍÀÌ´Ù. ¾Æ·¡¿Í °°Àº ¿¹¸¦ º¼ ¼ö
ÀÖÀ¸¸ç, Request chainÀ̶õ ¾Æ·¡¿Í °°ÀÌ ¿©·¯ Çì´õ·Î ±¸¼ºµÇ¾î ÀÖ´Â ¿ä±¸ ¸Þ½ÃÁö¸¦ ÀÏÄ´ ¸»ÀÌ´Ù.
Request Example
GET /index.html HTTP/1.0
From: qkim@pec.etri.re.kr
Referer: http://pec.etri.re.kr/~qkim/qkim.html
User-Agent: Netscape 1.2
-
Response
- HTTP¿¡¼ÀÇ ÀÀ´ä Çü½Äµµ ¾ÆÁÖ °£´ÜÇÏ°Ô ±¸¼ºµÇ¾î ÀÖ´Ù. ¼¹ö¿¡¼ ¾²À̰í ÀÖ´Â ÇÁ·ÎÅäÄÝ ¹öÀü, Request¿¡ ´ëÇÑ ½ÇÇà °á°ú ÄÚµå
¹× ¼³¸í¹®ÀÌ ÀÖÀ¸¸ç, Àü´ÞÇØÁÙ µ¥ÀÌŸÀÇ Çü½Ä, µ¥ÀÌŸ ±æÀÌ µî°ú °°Àº Ãß°¡ÀûÀÎ Á¤º¸°¡ MIME Çü½ÄÀ¸·Î Ç¥ÇöµÇ¾î ÀÖ´Ù. ÀÌ¾î¼ ¸¶Áö¸·¿¡ Çì´õ
Á¤º¸ÀÇ ³¡À» ³ªÅ¸³»´Â ºóÁÙÀÌ µé¾î°¡°í, µÚÀÌ¾î ½ÇÁ¦ µ¥ÀÌŸ°¡ Àü´ÞµÈ´Ù. µ¥ÀÌŸ Àü´ÞÀÌ ³¡³ª¸é ¼¹ö´Â ¿¬°áÀ» ²÷´Â´Ù. Response
chainÀ̶õ ¿©·¯ °¡Áö Çì´õ·Î ±¸¼ºµÇ¾î ÀÖ´Â ÀÀ´ä ¸Þ½ÃÁö¸¦ ÀÏÄ´ ¸»À̸ç, ¾Æ·¡¿Í °°Àº ¿¹¸¦ º¼ ¼ö ÀÖ´Ù.
Response Example
HTTP/1.0 200 OK
Server: MDMA/0.1
Content-type: text/html
Last-Modified: Thu Jul 7 00:25:33 1994
Content-Length: 2003
Right here waiting for you...
ÀÌ»ó°ú °°Àº °£´ÜÇÑ ¿¹°¡ ¾Æ´Ï¶ó º¸´Ù º¹ÀâÇÑ »óȲÀ» °¡Á¤ÇÒ ¼ö Àִµ¥, À̰ÍÀº Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ Áß°è
ÇÁ·Î±×·¥ÀÌ ¿ä±¸/ÀÀ´ä ¸Þ½ÃÁöµéÀÇ ±³È¯ »çÀÌ¿¡ ÀÖÀ» ¶§ÀÌ´Ù. Áß°è ÇÁ·Î±×·¥Àº ¼¼ °¡Áö ÇüÅÂÀÇ °ÍÀÌ Á¸ÀçÇϴµ¥, ÇÁ¶ô½Ã, °ÔÀÌÆ®¿þÀÌ, ±×¸®°í
ÅͳÎÀÌ´Ù.
ÇÁ¶ô½Ã´Â Æ÷¿öµù ¿¡ÀÌÀüÆ®·Î¼ ¿ä±¸ ¸Þ½ÃÁö¸¦ ¼ö½ÅÇÏ¿© Àý´ë°æ·ÎÀÇ URI·Î ¸Þ½ÃÁö¸¦ ÀüºÎ ¶Ç´Â ºÎºÐ ÀçÀÛ¼ºÇÏ¿© URI¿¡ ÁöÁ¤ÇÑ ¼¹ö·Î Àü´ÞÇÏ´Â
¿ªÇÒÀ» ÇÑ´Ù. °ÔÀÌÆ®¿þÀÌ´Â ¼ö½Å ¿¡ÀÌÀüÆ®·Î¼ ¼¹ö »óÀ§ÀÇ ¾î¶² °èÃþÀ¸·Î¼ µ¿ÀÛÇϸç, ÇÊ¿äÇÏ´Ù¸é ÇÏÀ§ °èÃþ ¼¹öÀÇ ÇÁ·ÎÅäÄÝ·Î ¿ä±¸ ¸Þ½ÃÁö¸¦
º¯È¯ÇÏ´Â ¿ªÇÒµµ ÇÑ´Ù. ÅͳÎÀº ¸Þ½ÃÁö º¯È¯ ¾øÀÌ µÎ °³ ¿¬°á »çÀÌÀÇ Áß°èÁ¡ ¿ªÇÒÀ» Çϸç, ¸Þ½ÃÁöÀÇ ³»¿ëÀº ÀÌÇØÇÒ ¼ö ¾ø´Ù ÇÒÁö¶óµµ Åë½Å °æ·Î°¡
¹æÈº®°ú °°Àº Áß°£ ÁöÁ¡À» Åë°úÇÒ Çʿ䰡 ÀÖÀ» ¶§ »ç¿ëµÈ´Ù.
ÀÌ¿Í °°Àº »óȲ¿¡ ´ëÇÑ ¿¹¸¦ º¸ÀÌ¸é ¾Æ·¡¿Í °°´Ù. ¿©±â¿¡´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ®¿Í ¿ø¼¹ö »çÀÌ¿¡ ¼¼ °³ÀÇ Áß°£ ÇÁ·Î±×·¥ÀÌ (A, B, ¹× C)
Á¸ÀçÇϰí ÀÖ´Ù. ¸ðµç »ç½½À» Åë°úÇÏ´Â ¿ä±¸ ¶Ç´Â ÀÀ´ä ¸Þ½ÃÁö´Â ¹Ýµå½Ã ³× °³ÀÇ °³º° ¿¬°á¼±À» °æÀ¯ÇÏ¿©¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ °¢°¢ÀÇ ±¸ºÐÀº Áß¿äÇѵ¥,
HTTP Åë½Å¿¡ ÀÖ¾î¼ ¾î¶² ÁöÁ¤ »çÇ×µéÀº °¡Àå °¡±î¿î ¿¬°á¼±¿¡¸¸ ÇØ´çÇÏ´Â °ÍÀÏ ¼ö ÀÖ°í, ¶Ç´Â ¾ç ³¡´Ü¿¡ ÇØ´çÇϰí, Àüü ¿¬°á¼±¿¡µµ ¸ðµÎ
ÇØ´çÇÏ´Â °ÍÀÏ ¼ö Àֱ⠶§¹®ÀÌ´Ù.
+------+ +-----+
| | Request chain ---------------------> | |
| UA +----v----A----v----B----v----C----v-----+ O |
| | <-------------------- Response chain | |
+------+ +-----+
À§ ±×¸²Àº ÇϳªÀÇ ¼±ÇüÀû ¿¬°á¼±À¸·Î º¸ÀÌÁö¸¸ ½ÇÁ¦·Î °¢°¢Àº µ¿½Ã¿¡ Á¸ÀçÇÏ´Â ¿©·¯ °³ÀÇ ¿¬°á¼±¿¡ Âü¿©Çϰí ÀÖ´Ù.
Åͳημ µ¿ÀÛÇÏÁö ¾Ê´Â °æ¿ì¿¡ ÀÖ¾î, »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ º¸³½ ¿ä±¸ ¸Þ½ÃÁöÀÇ ÀÀ´äÀÌ Áß°£ °æ·Î¿¡ ÀÌ¹Ì Ä³½ÃµÇ¾î ÀÖ´Â °ÍÀ¸·Î¼ ¿©ÀüÈ÷ À¯È¿ÇÑ
ÀÀ´äÀ̶ó¸é ¿ø¼¹ö±îÁö ¿ä±¸ ¸Þ½ÃÁö°¡ Àü´ÞµÇÁö ¾Ê°íµµ ÇØ´ç ÀÀ´äÀÌ Àü´ÞµÉ ¼ö ÀÖ´Ù. ÀÌ¿¡ ´ëÇÑ ±×¸²ÀÌ ´ÙÀ½ÀÇ °ÍÀÌ´Ù.
+------+ +-----+
| | Request chain ------> | |
| UA +-----v-----A-----v-----B-----v-----C-----v-----+ O |
| | <----- Response chain | |
+------+ +-----+
À§ ±×¸²ÀÇ °æ¿ì, UA°¡ º¸³½ ¿ä±¸ ¸Þ½ÃÁö¿¡ ´ëÇÑ ÀÀ´äÀÌ O·ÎºÎÅÍ C¸¦ °ÅÃÄ ÀÌ¹Ì B¿¡ ij½ÃµÇ¾î ÀÖÀ¸¹Ç·Î B·ÎºÎÅÍ UA·Î °ð¹Ù·Î ÀÀ´äÀÌ
Àü´ÞµÇ´Â °ÍÀ» º¸ÀÎ ±×¸²ÀÌ´Ù. ¸ðµç ÀÀ´äÀÌ Ä³½ÃµÉ ¼ö ÀÖ´Â °ÍÀº ¾Æ´Ï¸ç ¶ÇÇÑ ¾î¶² ¿ä±¸´Â ij½Ã µ¿ÀÛ¿¡ ´ëÇÑ Æ¯Á¤ ¿ä±¸»çÇ×ÀÌ Ã·ºÎµÇ´Â ÁöÁ¤ »çÇ×À»
Æ÷ÇÔÇÒ ¼öµµ ÀÖ´Ù.
ÀÎÅÍ³Ý »ó¿¡ ÀÖ¾î HTTP Åë½ÅÀº TCP/IP ¿¬°á »ó¿¡¼ µ¿ÀÛÇϰí, ±âº» ¼³Á¤µÇ´Â Æ÷Æ® ¹øÈ£´Â TCP 80¹øÀÌ¸ç ´Ù¸¥ Æ÷Æ® ¹øÈ£µµ »ç¿ëÇÒ
¼ö ÀÖ´Ù. ±×·¯³ª ÀÌ »ç½ÇÀÌ HTTP ÇÁ·ÎÅäÄÝÀº ÀÎÅͳÝÀÇ ´Ù¸¥ ÇÁ·ÎÅäÄÝ ¶Ç´Â ´Ù¸¥ ³×Æ®¿öÅ© »ó¿¡ ±¸ÇöµÇ¾î¼´Â ¾È µÈ´Ù´Â °ÍÀ» ¶æÇÏ´Â °ÍÀº
¾Æ´Ï¸ç, HTTP°¡ °¡Á¤ÇÏ´Â °ÍÀº ½Å·Ú¼º ÀÖ´Â Àü¼ÛÀÌ º¸ÀåµÇ¾î¾ß ÇÑ´Ù´Â °ÍÀ̹ǷΠÀ̰ÍÀÌ °¡´ÉÇÑ ¾î¶² ÇÁ·ÎÅäÄÝ »ó¿¡¼µµ µ¿ÀÛÀÌ °¡´ÉÇÏ´Ù. À̶§
´Ù¸¥ Á¾·ùÀÇ ÇÁ·ÎÅäÄÝ »ó¿¡ ¿Ã¸®±â À§ÇÑ HTTP/1.0 ¿ä±¸/ÀÀ´ä ¸Þ½ÃÁö ±¸Á¶ÀÇ º¯È¯Àº ÀÌ ¹®¼°¡ ´Ù·ê ³»¿ëÀÌ ¾Æ´Ï´Ù.
½ÇÇèÀûÀÎ ÀÀ¿ë ÇÁ·Î±×·¥À» Á¦¿ÜÇÑ ½ÇÁ¦ ÀÀ¿ë¿¡ ÀÖ¾î¼ °¢ ¿ä±¸ ¸Þ½ÃÁö Àü´Þ¿¡ ¾Õ¼ Ŭ¶óÀÌ¾ðÆ®¿¡ ÀÇÇØ ¿¬°áÀÌ ¸ÕÀú ¼³¸³µÇ¾î¾ß ÇÏ°í ¼¹ö°¡
ÀÀ´äÀ» ¸ÕÀú º¸³»°í ¿¬°áÀ» ²÷µµ·Ï ÇÏ¿©¾ß ÇÑ´Ù. À̶§ Ŭ¶óÀÌ¾ðÆ®¿Í ¼¹ö´Â »ç¿ëÀÚÀÇ µ¿ÀÛÀ̳ª ÀÚµ¿ÀûÀΠŸÀӾƿô, ¶Ç´Â ÇÁ·Î±×·¥ ¿À·ù¿¡ ÀÇÇØ ¾î´À
ÂÊÀÌµç µµÁß¿¡ ¿¬°áÀ» ÇØÁ¦ÇÒ °¡´É¼ºµµ ÀÖ´Ù´Â °ÍÀ» ¾Ë¾Æ¾ß Çϸç, ÀûÀýÇÑ ´ëÀÀ µ¿ÀÛÀ» ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ¾î¶² °æ¿ì¿¡µç ¾î´À ÇÑ ÂÊ ¶Ç´Â ¾çÂÊ
¸ðµÎÀÇ ¿¬°á ÇØÁ¦´Â Ç×»ó ÇöÀç ¿ä±¸¿¡ ´ëÇÑ »èÁ¦¸¦ ¶æÇÑ´Ù.
1.5 HTTP¿Í MIME
HTTP/1.0Àº RFC 1521¿¡ Á¤ÀǵǾî ÀÖ´Â MIMEÀÇ ±¸¼º ¿ä¼Òµé °¡¿îµ¥ ¸¹Àº ºÎºÐµéÀ» Ȱ¿ëÇϰí ÀÖ´Ù. ºÎ·Ï C¿¡ µÎ °¡Áö ¿ä¼Ò¿¡
´ëÇÑ °ü·ÃÀ» ±â¼úÇϰí ÀÖ´Ù.
1.6 HTTP ÇÁ·ÎÅäÄÝÀÇ ±¸¼º
HTTP ÇÁ·ÎÅäÄÝÀÌ ±¸¼ºµÇ¾î ÀÖ´Â Çü½ÄÀ» Ç¥ÇöÇϱâ À§ÇÑ ¹æ¹ýÀÌ Àִµ¥ ¿©±â¼ »ç¿ëÇÏ´Â °ÍÀº BNF (Backus-Naur Form)
Çü½ÄÀÌ¸ç ¿©±â¿¡ ¾à°£ÀÇ º¸ÃæÀ» ÇÏ¿© ÀÌ¿ëÇϵµ·Ï ÇÑ´Ù. À̸¦ À§ÇØ Ç¥Çö Çü½Ä¿¡ ´ëÇÑ ¼³¸íÀ» ¸ÕÀú Çϵµ·Ï Çϰí, ÇÁ·ÎÅäÄÝ Çü½ÄÀÇ Ç¥±â»ó »ç¿ëÇÑ
¾à¼ÓÀ» Á¤ÀÇÇϰí, ÀÌ¾î¼ HTTP ÇÁ·ÎÅäÄݷμ µ¿ÀÛÇÏ´Â ¸Þ½ÃÁöÀÇ Á¾·ù¿Í ±¸Á¶¸¦ »ìÆìº¸µµ·Ï ÇÑ´Ù. TCP/IP ¿¬°áÀ» ÅëÇØ ¼Û¼ö½ÅµÇ´Â HTTP
ÇÁ·ÎÅäÄÝ µ¥ÀÌŸ´Â ¸Þ½ÃÁö¶ó´Â Á¾·ù·Î ±¸ºÐµÇ°í ÀÖ´Ù. Áï, ¿ä±¸ ¸Þ½ÃÁö¿Í ÀÌ¿¡ ´ëÇÑ ÀÀ´ä ¸Þ½ÃÁö°¡ ¹Ù·Î ±×°ÍÀÌ´Ù. ÀÌ ¼Ó¿¡ ±¸¼ºµÇ¾î ÀÖ´Â ±Ô°ÝÀÌ
HTTP ÇÁ·ÎÅäÄÝ ±Ô°ÝÀÌ µÈ´Ù.
2. BNF (Backus-Naur Form) Çü½Ä
2.1 È®Àå BNF
ÀÌ ¹®¼¿¡ Æ÷ÇԵǾî ÀÖ´Â ¸ðµç ¸ÞÄ«´ÏÁòµéÀº RFC 822¿¡¼ »ç¿ëÇϰí ÀÖ´Â °Í°ú ºñ½ÁÇÏ°Ô BNF¿Í ÀÌ¿¡ ´ëÇÑ
Á¤ÀÇ ¼³¸íÀ¸·Î Ç¥ÇöµÇ¾î ÀÖ´Ù. ±¸ÇöÀÚµéÀº À̰ÍÀ» ¼÷ÁöÇÏ¿© HTTP ÇÁ·ÎÅäÄÝ ±Ô°Ý¼¸¦ ÀÌÇØÇÏ¸é¼ ±¸ÇöÇÏ¿©¾ß ÇÑ´Ù. È®Àå BNF´Â ´ÙÀ½°ú °°´Ù.
- name=definition
- ¾î¶² ±ÔÄ¢ÀÇ À̸§ ±× ÀÚü¸¦ ³ªÅ¸³»°í ("<"¿Í ">" ¼Ó¿¡ Ç¥½ÃÇÏÁö´Â ¾Ê´Â´Ù) ÀÌ¿¡ ´ëÇÑ Á¤ÀÇ´Â "="
Ç¥½Ã·Î ±¸ºÐÇÑ´Ù. ºó °ø¹éÀº(whitespace)´Â ÇÑ ÁÙ ÀÌ»óÀÇ ¿©·¯ Áٷμ Ç¥½ÃµÇ´Â ±Ô¾à¿¡ ÀÖ¾î ´ÙÀ½ ÁÙ·Î °è¼Ó À̾îÁüÀ» ³ªÅ¸³»´Â
µé¿©¾²±â(indentation)ÀÇ Àǹ̷μ¸¸ ¾²ÀδÙ. Request = Simple-Request | Full-Request
¶Ç´Â, Method = "GET"
| "HEAD"
| "POST"
| extension-method
SP, LWS, HT, CRLF, DIGIT, ALPHA µî°ú °°ÀÌ ´ë¹®ÀڷΠǥ½ÃµÇ´Â ±âº» ±ÔÄ¢µµ
ÀÖÀ¸¸ç, ²©¼è Ç¥½Ã´Â ("<"¿Í ">") ±ÔÄ¢ À̸§À» ½Äº°ÇϰíÀÚ ÇÒ ¶§ Á¤Àǹ® ³»¿¡¼ »ç¿ëµÈ´Ù. ´ÙÀ½°ú °°Àº ¿¹¸¦ º¼ ¼ö ÀÖ´Ù.
DIGIT =
- "literal"
- " " Ç¥½Ã »çÀÌ¿¡ µé¾î°¡´Â °ÍÀº ´Ü¾î ±× ÀÚü·Î¼ Ç¥ÇöµÇ´Â °ÍÀÌ´Ù. µû¶ó¼ HTTP ÇÁ·ÎÅäÄÝ¿¡¼´Â ÀÌ ¹®ÀÚ ±×´ë·Î
¼Û¼ö½ÅµÈ´Ù. ´ÙÀ½°ú °°Àº ¿¹¸¦ »ìÆìº¼ ¼ö Àִµ¥, µÚ¿¡¼ ³ª¿Ã ÇÁ·ÎÅäÄÝ ±Ô°Ý¿¡ ³ª¿À´Â weekday¶õ ºÎºÐÀº Àϰö °¡Áö ¿äÀÏ
°¡¿îµ¥ Çϳª°¡ ±ÛÀÚ ±×´ë·Î Àü´ÞµÈ´Ù´Â °ÍÀÌ´Ù. ÀÌ¿Í °°Àº Ç¥½Ã°¡ ¾ø´Â °æ¿ì¿¡´Â ´ë¼Ò¹®ÀÚ¸¦ °¡¸®Áö ¾Ê´Â´Ù.
weekday = "Monday" | "Tuesday" | "Wednesday" | "Thursday"
| "Friday" | "Saturday" | "Sunday"
- rule1 | rule2
- OR Á¶°ÇÀ» ³ªÅ¸³½´Ù. µû¶ó¼ µÎ °¡Áö °¡¿îµ¥ ÇÑ °¡Áö¸¦ ÅÃÇÒ ¼ö ÀÖ´Ù´Â ¶æÀÌ´Ù.
- (rule1 rule2)
- µÎ °¡Áö ¿ä¼Ò·Î ±¸¼ºµÇ¾î ÀÖÀ¸³ª ÇϳªÀÇ ¿ä¼Ò·Î¼ Ãë±ÞÇÑ´Ù´Â ¶æÀÌ´Ù. ¾Æ·¡¿Í °°Àº ¿¹ÀÇ °æ¿ì¿¡,
"(elem (foo | bar) elem)"
À̰ÍÀº "elem foo elem" °ú "elem bar elem" µÎ °¡Áö·Î ±¸¼ºµÈ´Ù´Â
¶æÀÌ´Ù.
- *rule
- À̰ÍÀº ¹Ýº¹À» ÀǹÌÇÏ´Â °ÍÀ¸·Î¼ µÚÀÌ¾î¼ ³ª¿Ã #rule°ú È¥µ¿À» ÀÏÀ¸Å°´Â Ç¥Çö ¹æ½ÄÀ̹ǷΠÀ¯ÀÇÇØ¾ß ÇÑ´Ù. ¹Ýº¹À»
ÅëÇØ ÀÌ·ç¾îÁö´Â °á°ú´Â ÇϳªÀÇ ´Ü¾î³ª ¼ö¿Í °°ÀÌ ÇÑ °³ ¿ä¼ÒÀÇ Ç¥Çö ÇüÅ·ΠµÇ´Â °ÍÀ̸ç, #rule¿¡¼´Â ¶È°°Àº ¹Ýº¹ÀÌÁö¸¸
¿©·¯ °³ ´Ü¾î³ª ¼öÀÇ ¿ ÇüÅÂ¿Í °°ÀÌ ¿©·¯ °³ ¿ä¼ÒÀÇ ³ª¿ ÇüÅ·ΠǥÇöµÇ´Â °ÍÀÌ´Ù. *ruleÀÇ Ç¥±â ¹æ¹ýÀº ¾Æ·¡¿Í °°ÀÌ
ÇØ¼ ¾²ÀδÙ.
*element
À̰ÍÀº Àû¾îµµ n°³¿Í ÃÖ´ë m°³ÀÇ ¿ä¼Ò·Î ±¸¼ºµÇ´Â ÇÑ °¡Áö °á°ú¸¦ ÀǹÌÇÑ´Ù. Áï,
1*2DIGIT ¶ó´Â Ç¥ÇöÀº ¼ýÀÚ°¡ Àû¾îµµ ÇÑ °³ ÃÖ´ë µÎ °³·Î ±¸¼ºµÇ¾î ÇÑ °³ÀÇ ¼ö¸¦ ³ªÅ¸³½´Ù´Â ¶æÀÌ´Ù. 4´Â ÇÑ °¡Áö
¿¹À̸ç, 45µµ ÇÑ °¡Áö ¿¹°¡ µÈ´Ù. ±×·¯³ª 345ÀÇ °æ¿ì¿¡´Â ¼ýÀÚ ¼¼ °³·Î ±¸¼ºµÈ ÇÑ °³ ¿ä¼ÒÀ̹ǷΠÃÖ´ë °¹¼ö¿¡ À§¹èµÇ¾î ÀûÇÕÇÏÁö ¾Ê´Ù.
n°ú mÀº »ý·«µÉ ¼ö ÀÖÀ¸¸ç, ÀÌ °æ¿ì¿¡ nÀÇ ±âº»°ªÀº 0À̰í mÀÇ
±âº»°ªÀº ¹«ÇÑ´ëÀÌ´Ù. ±×·¯¹Ç·Î "*(element)"´Â 0°³¸¦ Æ÷ÇÔÇØ¼ ¾î¶² °¹¼ö¶óµµ °¡´ÉÇÑ Ç¥Çö¹ýÀÌ´Ù.
"1*element"ÀÇ °æ¿ì´Â ÇÑ ¿ä¼ÒÀÇ Ç¥Çö¿¡ ÀÖ¾î Àû¾îµµ ÇÑ °³´Â ÀÖ¾î¾ß Çϸç ÃÖ´ë °¹¼ö¿¡´Â Á¦ÇÑÀÌ ¾ø´Ù.
- [rule]
- ¼±ÅÃÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â ¶æÀÌ´Ù. ¿¹¸¦ µé¾î, "[foo bar]" À̰ÍÀº "foo bar"¸¦
»ç¿ëÇÒ ¼öµµ ÀÖ°í »ç¿ëÇÏÁö ¾ÊÀ» ¼öµµ ÀÖ´Ù´Â °ÍÀÌ´Ù. ±×·¯¹Ç·Î "*1(foo bar)"·Î Ç¥ÇöÇÒ ¼ö ÀÖ´Ù.
- N rule
- ƯÁ¤ Ƚ¼ö¸¸ÅÀÇ ¹Ýº¹À» ³ªÅ¸³½´Ù. 2DIGITÀº µÎ ÀÚ¸® ¼ýÀÚ¸¦ ³ªÅ¸³½´Ù´Â °ÍÀÌ´Ù. µû¶ó¼
"*(element)"·Î ³ªÅ¸³¾ ¼ö ÀÖ´Ù.
- #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 Ç¥½Ã°¡ °¡´ÉÇÏÁö¸¸, ½ÇÁ¦ °¹¼ö´Â ¼¼ °³·Î¼ °£ÁֵȴÙ. µû¶ó¼ ÃÖ¼Ò ÇÑ °³ ÃÖ´ë ¼¼ °³ÀÇ Á¦ÇÑ¿¡
À§¹èµÇÁö ¾Ê´Â´Ù.
- ; comment
- À̰ÍÀº ±ÔÄ¢¿¡ ´ëÇÑ ¼³¸íÀ» Çϱâ À§ÇØ Ç¥½ÃÇÏ´Â ºÎºÐÀÌ´Ù. ÁÙÀÇ ³¡±îÁö°¡ ÀÌ Ç¥½Ã°¡ ¹ÌÄ¡´Â ¿µÇâÀÌ´Ù. µû¶ó¼ ´ÙÀ½ ÁÙ±îÁö ¼³¸í¹®À»
¿¬ÀåÇÏ·Á¸é ´ÙÀ½ Á٠óÀ½¿¡ ; Ç¥½Ã¸¦ ÇÏ¿©¾ß ÇÑ´Ù. Áï, ´ÙÀ½°ú °°´Ù.
Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822
; updated by RFC 1123
- implied *LWS
- µÎ °³ÀÇ ÀÎÁ¢ÇÑ ´Ü¾î (token or quoted-string) ¶Ç´Â ÀÎÁ¢ÇÑ
ÅäÅ«(tokens)°ú ½Äº°ÀÚ (tspecials) »çÀÌ¿¡ LWS (linear
whitespace)°¡ Æ÷Ç﵃ ¼ö ÀÖ´Ù. ¿©±â¼ µÎ °³ÀÇ ÅäÅ« »çÀÌ¿¡´Â ¹Ýµå½Ã Àû¾îµµ ÇϳªÀÇ ½Äº°ÀÚ°¡ Á¸ÀçÇÏ¿© °¢±â ÇϳªÀÇ ÅäÅ«À¸·Î °£ÁÖµÇÁö
¾Ê°Ô²û ±¸º°µÇ¾î¾ß ÇÑ´Ù.
2.2 ±âº»ÀûÀÎ ±ÔÄ¢
´ÙÀ½ÀÇ ±ÔÄ¢Àº ÀÌ ¹®¼ Àüü¿¡¼ ¾²À̰í ÀÖÀ¸¸ç, US-ASCII ±ÛÀÚ´Â Standard ANSI X3.4ÀÎ ANSI Ç¥ÁØ
¹®¼¿¡ 'Coded Character Set - 7-Bit American Standard Code for Information
Interchange'¶õ À̸§À¸·Î Á¤ÀǵǾî ÀÖ´Ù.
- OCTET =
- CHAR =
- UPALPHA =
- LOALPHA =
- ALPHA = UPALPHA | LOALPHA
- DIGIT =
- CTL = DEL(127)>
- CR =
- LF =
- SP =
- HT =
- <"> =
- CRLF = CR LF
- CR LF·Î ±¸¼ºµÇ¾î ÀÖÀ¸¸ç Entity-Body¸¦ Á¦¿ÜÇÑ ¸ðµç ÇÁ·ÎÅäÄÝ ¿ä¼Òµé¿¡ ´ëÇÑ ÁÙÀÇ
³¡(end-of-line)À» Ç¥½ÃÇÑ´Ù. Entity-Body ³»¿¡ ÀÖ´Â ÁÙÀÇ ³¡ Ç¥½Ã´Â 3.6Àý¿¡ ¼³¸íµÇ¾î ÀÖ´Â °Íó·³ °ü·Ã
¹Ìµð¾î Á¾·ù¿¡ ÀÇÇØ Á¤ÀǵȴÙ.
- LWS = [CRLF] 1*(SP | HT)
- HTTP ÇÁ·ÎÅäÄÝ Çì´õ°¡ ¿©·¯ ÁÙ·Î ±¸¼ºµÉ ¼ö Àִµ¥, À̶§ ´ÙÀ½ ÁÙ·ÎÀÇ °è¼Ó Ç¥½Ã¸¦ ³ªÅ¸³»´Â µ¥¿¡ ¾²ÀδÙ. ÁÙÀÇ Ã¹ ½ÃÀÛ¿¡ SP³ª
HT°¡ ÀÖÀ¸¸é ¾Õ ÁÙÀÇ °è¼ÓÀ¸·Î¼ ÀνĵȴÙ.
- TEXT =
- LWS´Â Æ÷ÇÔÇϳª ¸ðµç CTL ¿ä¼Ò¸¦ Á¦¿ÜÇÑ OCTETÀÌ´Ù. ³»¿ë ¼³¸í ¹× °ª Ç¥½Ã·Î¼ ¾²ÀÏ ¼ö ÀÖÀ¸¸ç ¸Þ½ÃÁö
ÇØ¼®±â(parser)¿¡¼ ¹ø¿ªµÇÁö´Â ¾Ê´Â´Ù. US-ASCII ¹®ÀÚÁýÇÕ ÀÌ¿ÜÀÇ octets¸¦ Æ÷ÇÔÇÏ´Â TEXT ÇʵåÀÇ °æ¿ì¿¡´Â
ISO-8859-1 ¹®ÀڷΠǥÇöµÈ °ÍÀ̶ó°í °£ÁÖÇÑ´Ù.
- HEX = "A" | "B" | "C" | "D" | "E" | "F"
| "a" | "b" | "c" | "d" | "e" | "f" | DIGIT
- word = token | quoted-string
- HTTP ÇÁ·ÎÅäÄÝÀÇ Çì´õ Çʵå´Â LWS ¶Ç´Â Ư¼ö ¹®Àڵ鿡 ÀÇÇØ ±¸ºÐµÇ´Â ´Ü¾îµé·Î ±¸¼ºµÇ¾î ÀÖ´Ù. ÀÌ·¯ÇÑ Æ¯¼ö ¹®ÀÚµéÀº ÆÄ¶ó¹ÌÅÍ °ª
¼Ó¿¡ <"> (quoted string) Ç¥½Ã¿¡ ÀÇÇØ ³ªÅ¸³»Áø´Ù.
- token = 1*
- CTL ¹®ÀÚ³ª tspecials ¹®ÀÚ¸¦ Á¦¿ÜÇÑ Çϳª ÀÌ»óÀÇ ¹®ÀÚ·Î ±¸¼ºµÈ ±ÛÀÚ.
- tspecials = "(" | ")" | "<" | ">" | "@" | "," | ";" | ":" | "\" | <">
| "/" | "[" | "]" | "?" | "=" | "{" | "}" | SP | HT
- À§¿¡¼ <"> Ç¥±â´Â "(" ÀÇ °æ¿ì¿Í ¶È°°ÀÌ ±× ¹®ÀÚ ÀÚü¸¦ ³ªÅ¸³½´Ù.
- comment = "(" *(ctext | comment) ")"
- HTTP ÇÁ·ÎÅäÄÝ Çì´õ ¼Ó¿¡ °ýÈ£ Ç¥½Ã·Î¼ ¼³¸í¹®À» Æ÷ÇÔ½Ãų ¼ö ÀÖ´Ù.
- ctext = "(" and ")">
- °ýÈ£¸¦ Á¦¿ÜÇÑ ¾î¶² ¹®ÀÚ¶óµµ °¡´ÉÇÏ´Ù.
- quoted-string = (<"> *(qdtext) <">)
- °ýÈ£ Ç¥½Ã ¼Ó¿¡ Àüü°¡ µé¾î ÀÖÀ¸¹Ç·Î ÇÑ °¡Áö ¿ä¼Ò·Î¼ Ãë±ÞµÈ´Ù. ¿¹¸¦ µé¾î, "I Love You!" °¡ ÀÌÀÇ ¿¹°¡ µÈ´Ù.
- qdtext = and CTLs, but including LWS>
¿©±â¼ "\"¸¦ »ç¿ëÇÏ´Â single-character quotingÀº HTTP/1.0¿¡¼´Â Çã¿ëµÇÁö ¾Ê´Â´Ù.
3. HTTP ÇÁ·ÎÅäÄÝ ÆÄ¶ó¹ÌÅÍ
HTTP ÇÁ·ÎÅäÄÝ ±Ô°Ý ¼³¸í¼´Â ¸Þ½ÃÁö ´ÜÀ§ÀÇ ¼³¸íÀ¸·Î ÀÌ·ç¾îÁ® ÀÖÀ¸¸ç À̸¦ À§ÇÏ¿© ¿©·¯ °¡Áö ÆÄ¶ó¹ÌÅͰ¡ Ç¥ÇöµÇ¾î ÀÖ´Ù. ÀÌµé ÆÄ¶ó¹ÌÅÍ´Â
¿ä±¸/ÀÀ´ä ¸Þ½ÃÁöÀÇ Çì´õ Çʵ忡 ´ëÇÑ Ç¥Çö½Ä¿¡ »ç¿ëµÇ´Â °ÍÀ̸ç, °¢Á¾ Çì´õ Çʵå´Â º°µµÀÇ Àå¿¡¼ ¼³¸íÇϵµ·Ï ÇÑ´Ù. ÀÌ·¯ÇÑ ±âº»ÀûÀÎ ÆÄ¶ó¹ÌÅ͵éÀÇ
Á¾·ù¿Í ³»¿ëÀ» ¿©±â¼ »ìÆìº¸µµ·Ï ÇÑ´Ù.
3.1 HTTP Version
HTTP ÇÁ·ÎÅäÄÝÀÇ ¹öÀüÀ» Ç¥ÇöÇϱâ À§ÇØ "<major>.<minor>" ¹æ½ÄÀ» »ç¿ëÇÑ´Ù. ¿©±â¼ major ºÎºÐÀº
ÇÁ·ÎÅäÄÝ ¸Þ½ÃÁö Çü½ÄÀÇ º¯°æ°ú °°ÀÌ Áß¿äÇÑ º¯°æ »çÇ×ÀÌ ÀÖÀ» ¶§ »ç¿ëÇÏ´Â °ÍÀ̰í, minor ºÎºÐÀº ÆÄ¶ó¹ÌÅÍ º¯°æ°ú °°ÀÌ ºÎ¼öÀûÀÎ »çÇ×µéÀÇ
º¯°æÀÌ ÀÖÀ» ¶§ »ç¿ëÇÏ´Â °ÍÀÌ´Ù. ÇöÀç ÀÌ·ç¾îÁö°í ÀÖ´Â ÇÁ·ÎÅäÄÝÀÇ ¹öÀüÀº 1.0ÀÌ´Ù. °¢ ¼ýÀÚ´Â ¾çÀÇ Á¤¼ö¸¦ »ç¿ëÇÏ¿© 1¾¿ Áõ°¡Çϵµ·Ï µÇ¾î
ÀÖÀ¸¹Ç·Î, HTTP/2.13Àº HTTP/2.4º¸´Ù »óÀ§ ¹öÀüÀÌ´Ù.
ÇÁ·ÎÅäÄÝÀÇ ¹öÀüÀ» ³ªÅ¸³»´Â °ÍÀº, ¼Û½ÅÃøÀÌ ¿ä±¸(request)¸¦ º¸³¾ ¶§ »ç¿ëÇÏ´Â ¸Þ½ÃÁöÀÇ Ç¥Çö Çü½ÄÀ» ³ªÅ¸³»°í ¼¹ö³ª ºê¶ó¿ìÀú°¡ ¾î¶²
Çü½ÄÀÇ ¸Þ½ÃÁö¸¦ ÀÌÇØÇϰí ó¸®ÇÒ ¼ö ÀÖ´ÂÁö Ç¥½ÃÇÏ´Â Áß¿äÇÑ ¿ä¼ÒÀÌ´Ù.
minor ¹øÈ£°¡ ¹Ù²ð ¶§´Â ¸Þ½ÃÁö ÇØ¼® ¾Ë°í¸®ÁòÀ» º¯°æÇÏÁö ¾Ê°íµµ ÇÁ·ÎÅäÄÝ ±â´É¿¡ ´ëÇÑ º¯È¸¦ ÁÙ ¼ö ÀÖÀ» ¶§À̰í, ÇÁ·ÎÅäÄÝ ³»ÀÇ ¸Þ½ÃÁö
Çü½ÄÀÌ ¹Ù²ð ¶§¿Í °°Àº Å« º¯È°¡ µÚµû¸¦ ¶§ major ¹øÈ£¸¦ ¹Ù²Û´Ù.
HTTP ¸Þ½ÃÁöÀÇ ¹öÀüÀº HTTP-Version Çʵ带 ÅëÇØ Ç¥½ÃÇÏ¸ç ¸Þ½ÃÁöÀÇ Ã¹ ¹øÂ° ÁÙ¿¡ ÀÚ¸®ÇÑ´Ù. ¸¸¾à ÇÁ·ÎÅäÄÝ
¹öÀüÀÌ Ç¥½ÃµÇÁö ¾ÊÀ¸¸é ¸Þ½ÃÁö ¼ö½ÅÃø¿¡¼´Â HTTP/0.9 ¹öÀüÀÇ ´Ü¼ø Çü½ÄÀ¸·Î °£ÁÖÇÑ´Ù.
HTTP-Version = "HTTP" "/" 1*DIGIT "." 1*DIGIT
¼¹ö³ª ºê¶ó¿ìÀú¸¦ ±¸ÇöÇϰíÀÚ ÇÒ ¶§ ¹Ýµå½Ã Æ÷ÇԵǾî¾ß ÇÏ´Â HTTP ÇÁ·ÎÅäÄÝÀº 0.9¿Í 1.0 ¹öÀü ¸ðµÎÀ̸ç, ÀÌ ¹®¼ ¼Ó¿¡¼´Â µÑ ´Ù
±â¼úµÇ¾î ÀÖ´Ù.
ÀÌ ¹®¼¿¡ Á¤ÀǵǾî ÀÖ´Â Full-Request ¶Ç´Â Full-Response Çü½ÄÀÇ ¸Þ½ÃÁö¸¦ Àü¼ÛÇÏ´Â
ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼´Â "HTTP/1.0"À̶õ HTTP-VersionÀ» ¹Ýµå½Ã ³ªÅ¸³»¾î¾ß ÇÑ´Ù.
HTTP/1.0 ¼¹ö´Â,
- HTTP/0.9¿Í HTTP/1.0 ¿ä±¸¸¦ À§ÇÑ Request-Line Ç¥Çö Çü½ÄÀ» ÀνÄÇÒ ¼ö ÀÖ¾î¾ß Çϰí,
- HTTP/0.9¿Í HTTP/1.0 Çü½ÄÀ¸·Î µÇ¾î ÀÖ´Â À¯È¿ÇÑ ¿ä±¸¸¦ ÀÌÇØÇÒ ¼ö ÀÖ¾î¾ß Çϰí,
- Ŭ¶óÀÌ¾ðÆ®°¡ »ç¿ëÇÑ ÇÁ·ÎÅäÄÝ ¹öÀü°ú °°Àº ¸Þ½ÃÁö Çü½ÄÀ¸·Î ÀûÀýÈ÷ ÀÀ´äÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
HTTP/1.0 Ŭ¶óÀÌ¾ðÆ®´Â,
- HTTP/1.0 ÀÀ´ä¿¡ ¾²ÀÌ´Â Status-LineÀÇ Çü½ÄÀ» ÀνÄÇÒ ¼ö ÀÖ¾î¾ß Çϰí,
- HTTP/0.9 ¶Ç´Â HTTP/1.0 Çü½ÄÀ¸·Î µµÂøµÈ À¯È¿ÇÑ ÀÀ´äÀ» ÀÌÇØÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌ ÀÀ¿ë ÇÁ·Î±×·¥Àº ÀÚ½ÅÀÇ ÇÁ·ÎÅäÄÝ ¹öÀü°ú ´Ù¸¥ ¿ä±¸¸¦ Ŭ¶óÀÌ¾ðÆ®·ÎºÎÅÍ ¼ö½ÅÇßÀ» ¶§´Â ÀÌÀÇ Ã³¸®¸¦ º¸´Ù ½ÅÁßÇÏ°Ô ÇÏ¿©¾ß
ÇÑ´Ù. ÇÁ·ÎÅäÄÝ ¹öÀüÀº ¼Û½ÅÃø Ŭ¶óÀ̾ðÆ®ÀÇ ÇÁ·ÎÅäÄÝ Ã³¸® ´É·ÂÀ» ³ªÅ¸³»´Â °ÍÀ̹ǷΠÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌ´Â ¼Û½ÅÃø ¹öÀüº¸´Ù ³ôÀº ¸Þ½ÃÁö¸¦ Àü´ÞÇϸé
Àý´ë ¾È µÈ´Ù. ¸¸¾à ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÇÀÇ ÇÁ·ÎÅäÄÝ ¹öÀüº¸´Ù ³ôÀº ¹öÀüÀÇ ¼Û½ÅÃø ¿ä±¸°¡ µµÂøÇÏ¸é ¿ä±¸ÇÑ ÇÁ·ÎÅäÄÝ ¹öÀüÀ» ³·Ã߰ųª ¿À·ù¸¦ µÇµ¹·Á
º¸³»¾î¾ß ÇÑ´Ù. ¸¸¾à ³·Àº ¹öÀüÀÇ ¼Û½ÅÃø ¿ä±¸°¡ µµÂøÇϸé Áß°èÇØÁֱ⠾ռ ¹öÀüÀ» ³ôÀÌ´Â ¹æ¹ýµµ °¡´ÉÇÏ´Ù. ÇØ´ç ¼Û½ÅÃø ¿ä±¸¿¡ ´ëÇÑ ÇÁ¶ô½Ã³ª
°ÔÀÌÆ®¿þÀÌÀÇ ÀÀ´äÀº À§¿¡¼ ¾ð±ÞÇÑ ¼¹ö ¿ä±¸»çÇ×À» ¸¸Á·½ÃÄÑ¾ß ÇÑ´Ù.
3.2 URI (Uniform Resource Identifiers)
URI´Â ÇöÀç ¿©·¯ °¡Áö À̸§À¸·Î ºÒ¸®¿ì°í ¾²À̰í ÀÖ´Ù. ¿¹¸¦ µé¾î, WWW addresses, Universal Document
Identifiers, Universal Resource Identifiers µîÀ̸ç, ÃÖÁ¾ÀûÀ¸·Î URL(Uniform Resource
Locators)°ú URN(Uniform Resource Names)ÀÇ °áÇÕÀ¸·Î Á¤Àǵǰí ÀÖ´Ù. À̰ÍÀº ÇϳªÀÇ ´ë»óü¿¡ ´ëÇØ À̸§, À§Ä¡,
¼ºñ½º, ÇÁ·ÎÅäÄÝ µîµî ¿©·¯ °¡Áö ¿ä¼ÒµéÀ» ÂüÁ¶ÇÒ ¼ö ÀÖ°Ô Çü½ÄÈ ½ÃŲ °ÍÀÌ´Ù.
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 | "/")
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 =
URL Çü½Ä°ú Àǹ̿¡ °üÇÑ ³»¿ëÀº RFC 1738°ú RFC 1808À» ÂüÁ¶ÇÏ¸é µÈ´Ù. À§¿¡ Ç¥½ÃµÇ¾î ÀÖ´Â BNF Ç¥Çö½Ä °¡¿îµ¥ RFC
1738¿¡ Á¤ÀǵǾî ÀÖÁö ¾ÊÀº rationalÀ̶õ °ÍÀÌ ¾²À̰í ÀÖ´Ù. À̰ÍÀº rel_path ÁÖ¼Ò ºÎºÐ¿¡ ¾²ÀÌ´Â
unreserved ±ÛÀÚ ÁýÇÕ¿¡ ÇѰ谡 Àֱ⠶§¹®ÀÌ´Ù. HTTP ÇÁ¶ô½Ã´Â RFC 1738¿¡ Á¤ÀǵÇÁö ¾ÊÀº URI¸¦ °¡Áø ¿ä±¸¸¦
¼ö½ÅÇÒ ¼öµµ ÀÖ´Ù.
3.2.2 http URL Çü½Ä
http Ç¥Çö½ÄÀº HTTP ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇÏ¿© Ȱ¿ëÇÒ ³×Æ®¿öÅ© ÀÚ¿øÀ» Áö½ÃÇÏ´Â µ¥¿¡ ¾²ÀδÙ.
http_URL = "http:" "//" host [":" port] [abs_path]
host =
port = *DIGIT
À§ ±ÔÁ¤Àº ÀÌ¿ëÇϰíÀÚ ÇÏ´Â ³×Æ®¿öÅ© ÀÚ¿øÀÌ À§Ä¡Çϰí ÀÖ´Â °÷ÀÇ URL Ç¥½Ã¸¦ Çϱâ À§ÇÑ °ÍÀ̸ç, port ºÎºÐ¿¡ ¾Æ¹«·±
¼ýÀÚ°¡ ¾ø´Ù¸é WWW ¼ºñ½º¸¦ À§ÇØ ÇÒ´çµÇ¾î ÀÖ´Â 80¹øÀ¸·Î ÀνÄÇÑ´Ù.
À§¿¡ Ç¥½ÃµÈ »çÇ×ÀÇ Àǹ̴ ÁöÁ¤µÈ ÀÚ¿øÀÌ ÇØ´ç hostÀÇ abs_pathÀÇ Àå¼Ò¿¡ ÀÖÀ¸¸ç, ÀÌ ¼¹ö
È£½ºÆ®´Â ÁöÁ¤µÈ port ¹øÈ£¿¡¼ TCP ¿¬°áÀ» ¸Î´Â´Ù´Â °ÍÀÌ´Ù. À̶§ abs_path´Â ÇØ´ç ÀÚ¿ø¿¡ ´ëÇÑ
Request-URI°¡ µÇ°í, ¸¸¾à abs_path°¡ URL¿¡ Ç¥½ÃµÇ¾î ÀÖÁö ¾Ê´Ù¸é
Request-URI¿¡ »ç¿ëµÉ ¶§´Â "/" Ç¥½Ã°¡ ¹Ýµå½Ã µé¾î°¡ ÀÖ¾î¾ß ÇÑ´Ù.
- [ÁÖ] HTTP ÇÁ·ÎÅäÄÝÀº TCP¿Í °°Àº ¼ö¼Û°èÃþ ÇÁ·ÎÅäÄÝÀÇ Á¾·ù¿¡ »ó°ü¾øÀÌ ¾²ÀÏ ¼ö ÀÖ´Â ÇÁ·ÎÅäÄÝÀÌ´Ù. ±×·¯³ª À§¿Í °°Àº
URL Ç¥½Ã ¹æ½ÄÀº TCP¿¡¼³ª ¾²ÀÏ ¼ö ÀÖ´Â °ÍÀÌ´Ù. ±×·¯¹Ç·Î TCP°¡ ¾Æ´Ñ ´Ù¸¥ Á¾·ùÀÇ ¼ö¼Û°èÃþ¿¡ HTTP°¡ ¾²À̱â À§Çؼ´Â ±×¿¡ ¸Â´Â
URI Ç¥Çö ¹æ½ÄÀ» Á¤ÀÇÇÏ¿©¾ß ÇÑ´Ù.
http URLÀÇ Ç¥ÁØÀûÀÎ ÇüÅ´ host¿¡ ÀÖ´Â UPALPHA ¹®ÀÚµéÀ» ÇØ´çÇÏ´Â
LOALPHA ¹®ÀÚ·Î º¯È¯ÇÏ¿© ¾òÀ» ¼ö ÀÖ´Ù. (È£½ºÆ® ÁÖ¼Ò´Â ´ë¼Ò¹®ÀÚ¸¦ °¡¸®Áö ¾Ê´Â´Ù.) Æ÷Æ® ¹øÈ£°¡ 80¹øÀ̶ó¸é
[":" port]´Â »ý·«µÇ¾îµµ µÇ°í, abs_path°¡ ºñ¾îÀÖ´Ù¸é "/"·Î ´ëÄ¡µÈ´Ù.
3.3 Date/Time Çü½Ä
HTTP/1.0 ÀÀ¿ë¿¡¼´Â ¼¼ °¡Áö Çü½ÄÀÇ ÀÏÀÚ/½Ã°£ Ç¥Çö ¹æ½ÄÀ» Áö¿øÇÑ´Ù.
Sun, 06 nov 1994 08:49:30 GMT ; RFC 822, updated by RFC 1123
Sunday, 06-Nov-94 08:49:30 GMT ; RFC 850, obsoleted by RFC 1036
Sun Nov 6 08:49:30 1994 ; ANSI C's asctime() format
ù ¹øÂ° Çü½ÄÀº ÀÎÅÍ³Ý Ç¥ÁØÀ¸·Î¼ ¾²ÀÌ´Â °ÍÀ̸ç RFC 1123¿¡¼ Á¤ÀÇµÈ ±æÀÌ Á¦ÇÑ¿¡ µû¶ó Ç¥½ÃµÈ´Ù. µÎ ¹øÂ° Çü½ÄÀº Åë»ó ¸¹ÀÌ »ç¿ëµÇ´Â
°ÍÀ̸ç RFC 850ÀÇ Çü½ÄÀ» µû¸£°í ÀÖ°í ³× ÀÚ¸®ÀÇ ³âµµ¸¦ Ç¥½ÃÇϱâ´Â ºÒ°¡´ÉÇÑ °ÍÀÌ´Ù. ³¯Â¥¸¦ ÇØ¼®ÇØ¾ß ÇÏ´Â HTTP/1.0 Ŭ¶óÀÌ¾ðÆ®´Â,
¸Þ½ÃÁö¸¦ ¸¸µé ¶§ ¼¼ ¹øÂ° Ç¥½Ã Çü½Ä(asctime)ÀÇ ³¯Â¥¸¦ ¸¸µé¾î¼´Â ¾È µÇÁö¸¸, À§ÀÇ ¼¼ °¡Áö ³¯Â¥ Ç¥½Ã Çü½Ä ¸ðµÎ¸¦ ÀνÄÇÒ ¼ö ÀÖ¾î¾ß
ÇÑ´Ù.
- [ÁÖ] ³¯Â¥ º¯¼ö¸¦ ¼ö½ÅÇÏ´Â Ãø¿¡¼´Â, ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀ̸¦ ÅëÇØ SMTP³ª NNTP¸¦ ÀÌ¿ëÇÏ´Â non-HTTP ÀÀ¿ë ÇÁ·Î±×·¥°ú
±ÛÀ» ¿Ã¸®°Å³ª ±ÛÀ» Àо ¼ö ÀÖÀ¸¹Ç·Î À̶§ »ý¼ºµÇ´Â ³¯Â¥ º¯¼ö¸¦ ¼ö¿ëÇÒ ¼ö ÀÖ¾î¾ß Çϱ⠶§¹®ÀÌ´Ù.
¸ðµç HTTP/1.0 ÀÏÀÚ/½Ã°£ »çÇ×Àº ¿¹¿Ü¾øÀÌ ¹Ýµå½Ã GMT Çü½ÄÀ¸·Î Ç¥ÇöµÇ¾î¾ß ÇÑ´Ù. ¾Õ¼ µÎ °¡Áö Ç¥Çö Çü½ÄÀº 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 ; e.g., 16 Nov 1995
date2 = 2DIGIT "-" month "-" 2DIGIT ; e.g., 16-Nov-95
date3 = month SP (2DIGIT | (SP 1DIGIT)) ; e.g., Jun 2
time = 2DIGIT ":" 2DIGIT ":" 2DIGIT ; e.g., 21:34:24
wkday = "Mon" | "Tue" | "Wed" | "Thu" | "Fri" | "Sat" | "Sun"
weekday = "Monday" | "Tuesday" | "Wednesday" | "Thursday"
| "Friday" | "Saturday" | "Sunday"
month = "Jan" | "Feb" | "Mar" | "Apr" | "May" | "Jun" | "Jul"
| "Aug" | "Sep" | "Oct" | "Nov" | "Dec"
- [ÁÖ] ³¯Â¥/½Ã°£ Ç¥½Ã Çü½Ä¿¡ ´ëÇÑ HTTP ¿ä±¸ »çÇ×Àº ÇÁ·ÎÅäÄÝÀÇ È帧 ³»¿¡¼ Àû¿ëµÇ¾î¾ß ÇÏ´Â °ÍÀÌ´Ù. Ŭ¶óÀÌ¾ðÆ®³ª ¼¹ö¿¡
ÀÖ¾î »ç¿ëÀÚ¿¡ ´ëÇÑ º¸À̱⠶Ǵ ¼ºñ½º ±â·Ï µîÀÇ ¿ëµµ¿¡±îÁö Àû¿ëÇÒ ÇÊ¿ä´Â ¾ø´Ù.
3.4 Character Sets
HTTP ÇÁ·ÎÅäÄÝ ±Ô°Ý¼¿¡¼´Â 'character set'À̶õ ¿ë¾î¸¦ MIME ±Ô°Ý¼¿¡¼ Á¤ÀÇÇÑ
°Í°ú ¶È°°ÀÌ »ç¿ëÇÑ´Ù. Áï,
- character set
- ÀÏ·ÃÀÇ 8bit µ¥ÀÌŸ¸¦ ÀûÀýÇÑ ´ëÀÀ °ü°è¿¡ ÀÖ´Â ÀÏ·ÃÀÇ ±ÛÀÚ·Î º¯È¯½Ãų ¼ö ÀÖ°Ô²û ÇÑ °³ ¶Ç´Â ±× ÀÌ»óÀÇ Ç¥·Î¼ ¸¸µé¾î¼ ÂüÁ¶ÇϰÔ
ÇÏ´Â ¼ö´ÜÀÌ´Ù. ±×·¯¹Ç·Î ¹«Á¶°Ç º¯È¯½ÃÄѼ´Â ¾È µÉ °ÍÀ̸ç, ¸ðµç ±ÛÀÚ°¡ character set¿¡ Á¤ÀǵǾî ÀÖÁö ¾ÊÀ» ¼ö ÀÖ°í, ƯÁ¤ÇÑ
±ÛÀÚ¸¦ Ç¥ÇöÇϱâ À§ÇØ Çϳª ÀÌ»óÀÇ 8bit µ¥ÀÌŸ¿ÀÌ Á¸ÀçÇÒ ¼öµµ ÀÖ´Ù.
ÀÌ Á¤ÀÇ¿¡ µû¸£¸é, US-ASCII¿Í °°Àº ´Ü¼øÇÑ º¯È¯Ç¥·ÎºÎÅÍ ISO 2022ÀÇ °æ¿ì¿¡¼¿Í °°ÀÌ º¹ÀâÇÑ º¯È¯Ç¥¿¡ À̸£±â±îÁö ´Ù¾çÇÑ
Á¾·ùÀÇ character encodingµéÀ» Çã¿ëÇÑ´Ù. ÇÏÁö¸¸ MIME character set À̸§°ú °ü·ÃµÈ Á¤ÀÇ´Â 8bit µ¥ÀÌŸ·ÎºÎÅÍ
±ÛÀÚ·ÎÀÇ º¯È¯¿¡ °üÇÑ »çÇ×À» ¿ÏÀüÇÏ°Ô ¸í½ÃÇÏ¿©¾ß ÇÑ´Ù. ¿ÏÀüÇÑ º¯È¯ °ü°è¸¦ Á¤ÀÇÇϱâ À§ÇØ ´Ù¸¥ ¼ö´ÜÀ» ÅëÇÑ ¿ÜºÎ Á¤º¸¸¦ Ȱ¿ëÇØ¼´Â ¾È µÈ´Ù.
- [ÁÖ] "character set"À̶õ ¿ë¾î´Â Åë»ó "character encoding"À̶õ ¿ë¾î·Î¼ ¸¹ÀÌ Ç¥ÇöµÈ´Ù. HTTP¿Í
MIMEÀº °°Àº µî·ÏÇ¥¸¦ °øÀ¯Çϱ⠶§¹®¿¡ ¿ë¾î ¶ÇÇÑ °øÀ¯ÇÏ¿© »ç¿ëµÈ´Ù.
HTTP character setÀÇ ±¸ºÐÀº ´ë¼Ò¹®ÀÚ ±¸º°À» ÇÏÁö ¾Ê´Â À̸§À¸·Î Á¤ÇØÁø´Ù. ¹®ÀÚÁýÇÕÀÇ Àüü Á¾·ùµéÀº IANA
Character Set µî·ÏÇ¥¿¡ Á¤ÀǵǾî ÀÖ´Ù.[15] ±×·¯³ª ÀÌ µî·ÏÇ¥°¡ °¢°¢ÀÇ ¹®ÀÚÁýÇÕ¿¡ ´ëÇÑ ´Ü ÇϳªÀÇ ÀϰüµÈ À̸§À» Á¤ÀÇÇϰí ÀÖ´Â °ÍÀº
¾Æ´Ï±â ¶§¹®¿¡, ¿©±â¼´Â HTTP ¿£ÅÍÆ¼¿Í °¡Àå ÀûÀýÇÏ°Ô »ç¿ëµÉ ¼ö ÀÖ´Â ¹®ÀÚÁýÇյ鿡 ÀÖ¾î¼ÀÇ ±Ç°í À̸§µé¿¡ ´ëÇØ Á¤ÀÇÇϵµ·Ï ÇÑ´Ù. ÀÌ·¯ÇÑ
¹®ÀÚÁýÇÕµéÀº RFC 1521[5]¿¡ µî·ÏµÇ¾î ÀÖ´Â °ÍµéÀ» Æ÷ÇÔÇϰí MIME ¹®ÀÚÁýÇÕ ÆÄ¶ó¹ÌÅÍ¿¡ »ç¿ëµÇ°Ô²û Ưº°È÷ ±Ç°íµÇ´Â À̸§µé¿¡ ´ëÇØ¼µµ
Æ÷ÇÔÇϵµ·Ï ÇÑ´Ù.
charset = "US-ASCII"
| "ISO-8859-1" | "ISO-8859-2" | "ISO-8859-3" | "ISO-8859-4"
| "ISO-8859-5" | "ISO-8859-6" | "ISO-8859-7" | "ISO-8859-8"
| "ISO-8859-9" | "ISO-2022-JP" | "ISO-2022-JP-2"
| "ISO-2022-KR" | "UNICODE-1-1" | "UNICODE-1-1-UTF-7"
| "UNICODE-1-1-UTF-8" | token
HTTP¿¡¼´Â ¹®ÀÚÁýÇÕÀÇ Á¾·ù·Î¼ ÀÓÀÇÀÇ ÅäÅ« À̸§À» Çã¿ëÇϰí ÀÖÀ¸¹Ç·Î À§¿¡ ±ÔÁ¤µÇÁö ¾ÊÀº ´Ù¸¥ °Íµµ »ç¿ëÇÒ ¼ö ÀÖÀ¸³ª, À̰ÍÀº IANA
¹®ÀÚÁýÇÕ µî·ÏÇ¥¿¡ µî·ÏµÇ¾î ÀÖ´Â °ÍÀ̾î¾ß Çϸç, ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼µµ ¹®ÀÚÁýÇÕÀÇ »ç¿ëÀ» IANA¿¡ µî·ÏµÇ¾î ÀÖ´Â °ÍÀ¸·Î ÇÑÁ¤ÇØ¾ß ÇÑ´Ù.
Entity-BodyÀÇ ¹®ÀÚÁýÇÕÀº ³»¿ë ³»¿¡ »ç¿ëµÈ ¹®ÀÚ ÄÚµåµéÀÇ ÃÖ´ë °øÅë Äڵ带 ¼±Á¤ÇÏ¿© Ç¥½ÃÇÏ¿©¾ß Çϴµ¥,
US-ASCII³ª ISO-8859-1ÀÇ °æ¿ì¿¡´Â Ç¥½ÃÇÏÁö ¾Ê¾Æµµ µÇ´Â ¿¹¿Ü¸¦ Çã¿ëÇÑ´Ù.
3.5 Content Codings
ÇØ´ç ÀÚ¿ø¿¡ ´ëÇØ Àû¿ëµÇ¾î ÀÖ´Â ÀÎÄÚµù º¯È¯ ¹æ½ÄÀ» ¾Ë¸®±â À§ÇØ »ç¿ëÇÑ´Ù. À̰ÍÀº ½ÇÁ¦ µ¥ÀÌŸÀÇ ÈÀÏ Çü½ÄÀ̳ª ³»¿ëÀ» ¼Õ»ó½ÃŰÁö ¾Ê°í
µ¥ÀÌŸ¸¦ ¾ÐÃàÇϰųª º¸¾ÈÀ» À§ÇØ ¾ÏÈ£ÈÇÒ ¶§ ÁÖ·Î ¾²ÀÏ ¼ö ÀÖ´Ù. ÀÌ ¹æ½ÄÀ¸·Î ÀÎÄÚµùµÈ µ¥ÀÌŸ°¡ ÀúÀåµÇ¾î ÀÖ´Ù°¡ ¼Û¼ö½ÅµÇ¾î ½ÇÁ¦ Ȱ¿ëµÇ±â Àü¿¡´Â
µðÄÚµùÀÌ µÇ¾î¾ß ÇÑ´Ù.
content-coding = "x-gzip" | "x-compress" | token
- [ÁÖ] ÇâÈÄÀÇ ÀûÇÕ¼ºÀ» À§ÇØ HTTP/1.0 ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼´Â "gzip"°ú "compress"¸¦ "x-gzip"°ú
"x-compress"·Î °¢°¢ µ¿ÀÏÇÏ°Ô °£ÁÖÇÏ¿©¾ß ÇÑ´Ù.
Ç¥½ÃµÈ ¸ðµç content-coding º¯¼ö´Â ´ë¼Ò¹®ÀÚ¸¦ °¡¸®Áö ¾Ê´Â´Ù. HTTP/1.0Àº
Content-Encoding (10.3Àý ÂüÁ¶) Çì´õ Çʵ忡 content-coding ÆÄ¶ó¹ÌÅÍ º¯¼ö¸¦
»ç¿ëÇÑ´Ù. ÀÌ º¯¼ö°¡ content-codingÀ» ¼³¸íÇÏ´Â °ÍÀ̱ä ÇØµµ º¸´Ù Áß¿äÇÑ Àǹ̴ µðÄÚµùÇϱâ À§ÇØ ÇÊ¿äÇÑ ¸ÞÄ«´ÏÁòÀÌ
¹«¾ùÀÎÁö¸¦ ¾Ë¸®´Â °ÍÀÌ´Ù. ¾î´À ÇÁ·Î±×·¥Àº ¿©·¯ °³ÀÇ ÀÎÄÚµù ¹æ½ÄÀ» µðÄÚµùÇÒ ¼öµµ ÀÖ´Ù. ÀÌ ¹®¼¿¡¼´Â µÎ °¡Áö ÀÎÄÚµù º¯¼ö°¡ ±â¼úµÇ¾î ÀÖ´Ù.
- x-gzip
- "gzip" (GNU zip)À̶ó´Â ÈÀÏ ¾ÐÃà ÇÁ·Î±×·¥¿¡ ÀÇÇØ ¸¸µé¾îÁø ÀÎÄÚµù ¹æ½Ä. À̰ÍÀº 32-bit CRC¸¦ ÀÌ¿ëÇÏ´Â
Lempel-Ziv ÄÚµù (LZ77) ¹æ½ÄÀÌ´Ù.
- x-compress
- "compress"¶ó´Â ÈÀÏ ¾ÐÃà ÇÁ·Î±×·¥¿¡ ÀÇÇØ ¸¸µé¾îÁø ÀÎÄÚµù ¹æ½Ä. À̰ÍÀº Lempel-Ziv-Welch ÄÚµù (LZW)
¹æ½ÄÀÌ´Ù.
[ÁÖ] ÀÎÄÚµù Çü½ÄÀ» ±¸ºÐÇϱâ À§ÇØ ÇÁ·Î±×·¥ À̸§À» »ç¿ëÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÑ °ÍÀÌ ¾Æ´Ï¸ç ¾ÕÀ¸·ÎÀÇ ÀÎÄÚµù ¹æ½Ä Ç¥ÇöÀ» À§Çؼµµ
±ÇÀåÇÒ ¸¸ÇÑ °ÍÀÌ ¾Æ´Ï´Ù. ÇÏÁö¸¸ ¿©±â¼´Â Áö±Ý±îÁöÀÇ È°¿ë¿¹·Î º¼ ¶§ °¡Àå ´ëÇ¥ÀûÀÎ °ÍµéÀ» ³ªÅ¸³½ °ÍÀÌ´Ù.
3.6 Media Types
HTTP ÇÁ·ÎÅäÄÝ¿¡¼´Â µ¥ÀÌŸ Çü½Ä Ç¥ÇöÀÇ °³¹æ¼º°ú È®À强À» À§ÇØ Content-Type Çì´õ Çʵ带 µÎ°í¼ µ¥ÀÌŸ Çü½ÄÀ»
Ç¥ÇöÇϰí ÀÖ´Ù. Content-Type ÇÊµå ´ÙÀ½¿¡ Ç¥½ÃµÉ ¹Ìµð¾î Çü½Ä (media type)Àº ´ÙÀ½°ú °°Àº Ç¥Çö½Ä¿¡ µû¸¥´Ù.
Content-Type ÇʵåÀÇ Ç¥Çö½ÄÀº Entity ºÎºÐ¿¡¼ ´Ù½Ã ¼³¸íµÈ´Ù.
media-type = type "/" subtype *(";" parameter)
type = token
subtype = token
ÆÄ¶ó¹ÌÅÍ´Â type/subtype¿¡ µÚÀ̾î attribute/valueÀÇ ½ÖÀ¸·Î ±¸¼ºµÈ´Ù.
parameter = attribute "=" value
attribute = token
value = token | quoted-string
¿¹¸¦ µé¾î ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³¾ ¼ö ÀÖ´Ù.
Content-Type: text/plain; charset="iso-8859-1"
¿©±â¼ type, subtype, ¹× parameter attribute À̸§Àº ´ë¼Ò¹®ÀÚ ±¸ºÐÀ» ÇÏÁö ¾ÊÁö¸¸, parameter
value´Â ÆÄ¶ó¹ÌÅÍ Á¾·ù¿¡ µû¶ó ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇÒ ¼öµµ ÀÖ°í ±¸ºÐÇÏÁö ¾ÊÀ» ¼öµµ ÀÖ´Ù.
ÀÌ·¯ÇÑ Ç¥Çö½Ä¿¡ ÀÖ¾î LWS´Â type°ú subtype »çÀÌ¿¡ Àý´ë Çã¿ëµÇÁö ¾ÊÀ¸¸ç, ¶ÇÇÑ attribute¿Í ÀÌÀÇ
value »çÀÌ¿¡µµ Çã¿ëµÇÁö ¾Ê´Â´Ù. ÀνÄÇÒ ¼ö ¾ø´Â ÆÄ¶ó¹ÌÅ͸¦ °¡Áø ¹Ìµð¾î Çü½ÄÀÌ ¼ö½ÅµÇ¸é Ŭ¶óÀÌ¾ðÆ®´Â ÀÌ ÆÄ¶ó¹ÌÅͰ¡ ¾ø¾ú´ø °Íó·³ °£ÁÖÇÏ¿©
ó¸®ÇÑ´Ù.
¿À·¡ ÀüÀÇ ÀϺΠHTTP ±¸Çö ÇÁ·Î±×·¥¿¡¼´Â ¹Ìµð¾î Çü½ÄÀÇ ÆÄ¶ó¹ÌÅ͸¦ ÀνÄÇÒ ¼ö ¾ø¾ú´Ù. HTTP/1.0 ±¸Çö ÇÁ·Î±×·¥¿¡¼´Â ¸Þ½ÃÁö ³»¿ëÀÌ
¾î¶² Á¾·ùÀÎÁö ÁöÁ¤ÇÒ Çʿ䰡 ÀÖÀ» ¶§¸¸ ¹Ìµð¾î Çü½ÄÀÇ ÆÄ¶ó¹ÌÅ͸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.
media-typeÀÇ value´Â IANA[15]¿¡ µî·ÏµÇ¾î ÀÖ´Â °ÍÀ» »ç¿ëÇÏ¸é µÈ´Ù. µî·ÏµÇ¾î ÀÖÁö ¾ÊÀº °ÍÀ» »ç¿ëÇÏ´Â °ÍÀº ÁÁÀº ¹æ¹ýÀÌ
¾Æ´Ï´Ù. media-typeÀÇ µî·Ï °úÁ¤Àº RFC 1590[3]¿¡ ¼³¸íµÇ¾î ÀÖ´Ù.
3.6.1 Canonicalization and Text Defaults
ÀÎÅͳݿ¡¼ÀÇ ¹Ìµð¾î Çü½ÄÀº Ç¥ÁØÀûÀÎ ÇüÅ·Π(canonical form) µî·ÏµÇ¾î ÀÖ´Ù. Åë»ó HTTP¸¦ ÅëÇØ Àü¼ÛµÇ´Â
Entity-Body´Â Àü¼Û¿¡ ¾Õ¼ ÀûÀýÇÑ Ç¥ÁØ ÇüÅ·ΠǥÇöµÇ¾î¾ß ÇÑ´Ù. ¸¸¾à Àü¼Û ³»¿ëÀÌ
Content-Encoding¿¡ ÀÇÇØ ÀÎÄÚµùµÇ¾î ÀÖ´Ù¸é, ½ÇÁ¦ µ¥ÀÌŸ´Â ÀÎÄÚµùµÇ±â¿¡ ¾Õ¼ Ç¥ÁØ ÇüÅ·ΠµÇ¾î ÀÖ¾î¾ß ÇÑ´Ù.
"text" Çü½ÄÀÎ ¹Ìµð¾î´Â CRLF¸¦ ÅØ½ºÆ® Áٹٲٱâ·Î¼ »ç¿ëÇÑ´Ù. ±×·¯³ª HTTP¿¡¼´Â
CR ¶Ç´Â LF Çϳª¸¸ À־ Entity-Body ³»¿¡¼ ÀϰüµÇ°Ô »ç¿ëµÉ ¶§´Â ÅØ½ºÆ® ¹Ìµð¾îÀÇ
Àü¼Û¿¡ ÀÖ¾î ÁÙ¹Ù²Þ Ç¥½Ã·Î¼ Çã¿ëÇÑ´Ù. µû¶ó¼ HTTP ÀÀ¿ë ÇÁ·Î±×·¥Àº HTTP¸¦ ÅëÇØ ¼ö½ÅÇÑ text ¹Ìµð¾îÀÇ ÁٹٲÞÀÇ Ç¥½Ã·Î¼
CRLF¿Í CR ¹× LFÀÇ ´Üµ¶ »ç¿ëÀ» Çã¿ëÇÏ¿©¾ß ÇÑ´Ù.
¸¸¾à CR ¹× LF¸¦ À§ÇÑ octets 13°ú 10À» »ç¿ëÇÏÁö ¾Ê´Â ¹®ÀÚÁýÇÕÀ¸·Î ÅØ½ºÆ® ¹Ìµð¾î°¡ Ç¥ÇöµÇ¾î
ÀÖ´Ù¸é, HTTP´Â Áٹٲٱâ Ç¥½Ã·Î¼ CR ¹× LFÀÇ Àǹ̷ΠÇÒ´çµÇ¾î ÀÖ´Â ´Ù¸¥ octet Ç¥½Ã¸¦ »ç¿ëÇÒ ¼ö
ÀÖ¾î¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ À¶Å뼺Àº Entity-Body¿¡ ÀÖ´Â ÅØ½ºÆ® ¹Ìµð¾î¿¡ ´ëÇØ¼¸¸ Àû¿ëÇÑ´Ù. CR ¶Ç´Â
LFÀÇ ´Üµ¶ »ç¿ëÀº Çì´õ Çʵå¿Í °°Àº HTTP Á¦¾î ºÎºÐ ³»¿¡¼´Â CRLF ´ë½ÅÀ¸·Î ¾²¿©¼´Â ¾È µÈ´Ù.
"charset" ÆÄ¶ó¹ÌÅÍ´Â µ¥ÀÌŸÀÇ ¹®ÀÚÁýÇÕ(3.4Àý ÂüÁ¶)À» Á¤ÀÇÇϱâ À§ÇØ ¹Ìµð¾î Á¾·ù¿Í ÇÔ²² ¾²ÀδÙ. ¸¸¾à ¼Û½ÅÃøÀÌ
ºÐ¸íÇÑ ¹®ÀÚÁýÇÕ ÆÄ¶ó¹ÌÅ͸¦ Àü´ÞÇÏÁö ¾Ê´Â´Ù¸é, HTTP¸¦ ÅëÇØ µ¥ÀÌŸ¸¦ ¼ö½ÅÇÒ ¶§ "text"ÀÎ subtype¿¡
"ISO-8859-1"ÀÎ ¹®ÀÚÁýÇÕÀ̶ó°í ±âº»ÀûÀ¸·Î °£ÁÖÇÑ´Ù. ¸¸¾à "ISO-8859-1" ¶Ç´Â ÀÌÀÇ ¼ºê¼Â
ÀÌ¿ÜÀÇ ¹®ÀÚÁýÇÕÀ¸·Î Ç¥ÇöµÇ¾î ÀÖ´Â µ¥ÀÌŸ¶ó¸é ¼ö½ÅÃø¿¡¼ Àϰü¼º ÀÖ°Ô ÇØ¼®µÉ ¼ö ÀÖµµ·Ï Çϱâ À§ÇØ ÀûÀýÇÑ ¹®ÀÚÁýÇÕ À̸§À¸·Î Ç¥ÇöµÇ¾î ÀÖ¾î¾ß ÇÑ´Ù.
- [ÁÖ] ÇöÀçÀÇ ¸¹Àº HTTP ¼¹öµéÀÌ ÀûÀýÇÑ À̸§ Ç¥½Ã ¾øÀÌ "ISO-8859-1" ÀÌ¿ÜÀÇ ¹®ÀÚÁýÇÕÀ» »ç¿ëÇÏ¿© µ¥ÀÌŸ¸¦ º¸³»°í
ÀÖ´Ù. À̰ÍÀº Ŭ¶óÀÌ¾ðÆ®¿Í ¼¹ö¿ÍÀÇ »óÈ£¿î¿ë¼ºÀ» ¶³¾î¶ß¸®´Â ¿ä¼Ò°¡ µÇ°í ±ÇÀåÇÒ ¹Ù°¡ ¾Æ´Ï´Ù. ÀÌ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ ÀϺΠHTTP »ç¿ëÀÚ
¿¡ÀÌÀüÆ®´Â ¹®ÀÚÁýÇÕ ÆÄ¶ó¹ÌÅͰ¡ ¾øÀ» ¶§ »ç¿ëÀÚ¿¡°Ô ±âº» ¼³Á¤À» º¯°æ½Ãų ¼ö ÀÖµµ·Ï Ŭ¶óÀÌ¾ðÆ® È¯°æÀ» À籸¼ºÇÏ°Ô ¸¸µé±âµµ ÇÑ´Ù.
3.6.2 Multipart Types
MIMEÀº "multipart" Çü½ÄÀ» Á¦°øÇϴµ¥, ÇϳªÀÇ ¸Þ½ÃÁö¿¡ ÀÖ´Â Entity-Body ¼Ó¿¡ ¿©·¯ °³ÀÇ ¿£ÅÍÆ¼¸¦
Æ÷ÇÔÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù´Â ¸»ÀÌ´Ù. IANA¿¡ µî·ÏµÇ¾î ÀÖ´Â multipart Çü½ÄµéÀº HTTP/1.0¿¡ ´ëÇØ Ưº°ÇÑ Àǹ̸¦ ºÎ¿©ÇÏÁö ¾Ê´Â´Ù.
ÇÏÁö¸¸ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®µéÀº °¢°¢ÀÇ ¿£ÅÍÆ¼ ¿ä¼ÒµéÀ» ÀûÀýÈ÷ ÀνÄÇϱâ À§ÇØ °¢ ¹Ìµð¾î Çü½ÄÀ» ÀÌÇØÇØ¾ß ÇÒ Çʿ䰡 ÀÖ´Ù. µû¶ó¼ HTTP »ç¿ëÀÚ
¿¡ÀÌÀüÆ®´Â MIME »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ multipart Çü½ÄÀ» ¼ö½ÅÇÏÀÚ ¸¶ÀÚ µ¿ÀÛÇÏ´Â °Í°ú ¶È°°ÀÌ ¶Ç´Â ºñ½ÁÇÏ°Ô µ¿ÀÛÇÏ¿© ó¸®ÇÏ¿©¾ß ÇÑ´Ù.
HTTP ¼¹ö´Â ¸ðµç HTTP Ŭ¶óÀÌ¾ðÆ®°¡ multipart Çü½ÄÀ» ó¸®ÇÒ ¼ö ÀÖ´Ù°í °¡Á¤ÇÏÁö ¾Ê¾Æ¾ß ÇÑ´Ù.
¸ðµç multipart Çü½ÄÀº °øÅëÀÇ Ç¥Çö½ÄÀ» »ç¿ëÇϰí ÀÖÀ¸¸ç, ¹Ìµð¾î Çü½Ä º¯¼öÀÇ ÀϺκÐÀ¸·Î¼ °æ°è ÆÄ¶ó¹ÌÅ͸¦ °®°í ÀÖ¾î¾ß ÇÑ´Ù.
¸Þ½ÃÁöÀÇ µ¥ÀÌŸ ³»¿ëÀº ±× ÀÚü·Î¼ ÇϳªÀÇ ÇÁ·ÎÅäÄÝ ¿ä¼ÒÀ̸ç, multipart¿¡ ÀÖ¾î¼ÀÇ °¢ ¿£ÅÍÆ¼ »çÀÌÀÇ Áٹٲٱ⸦ Ç¥ÇöÇϱâ À§ÇØ
CRLF¸¸ »ç¿ëÇÏ¿©¾ß ÇÑ´Ù. °¢°¢ÀÇ ¿£ÅÍÆ¼ ºÎºÐÀº ÇØ´ç ºÎºÐ¿¡ ÀÖ¾î¼ Àǹ̸¦ °®´Â HTTP Çì´õ Çʵ带 Æ÷ÇÔÇÒ ¼öµµ ÀÖ´Ù.
3.7 Product Tokens
»ç¿ëÇϰí ÀÖ´Â ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ´ëÇÑ Á¤º¸¸¦ ¾Ë·ÁÁÖ±â À§ÇØ ¾²À̴µ¥, °£´ÜÇÑ »óǰ À̸§À¸·Î¼ Ç¥ÇöÀ» ÇÏ¸ç ¼±ÅÃÀûÀ¸·Î "/"¿Í
¹öÀü Ç¥½Ã°¡ ÇÔ²² µé¾î°¥ ¼öµµ ÀÖ´Ù. ºó °ø¹é Ç¥½Ã(whitespace)¸¦ ÀÌ¿ëÇÏ¿© ÇØ´ç ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ÁÖ¿ä ºÎºÐ¿¡ ´ëÇÑ Á¤º¸¸¦ ¿¬À̾î¼
Ç¥½ÃÇÒ ¼öµµ ÀÖ´Ù. ±×·¯¹Ç·Î Á߿䵵°¡ °¡Àå ³ôÀº »çÇ×À» ¸ÕÀú Ç¥½ÃÇÏ°í µÚ ÀÌ¾î¼ ´Ù¸¥ »çÇ×µéÀ» Ç¥½ÃÇϵµ·Ï ÇÑ´Ù.
product = token ["/" product-version]
product-version = token
ÀÌ¿¡ ÀÇÇÑ ¿¹¸¦ µé¾îº¸¸é ¾Æ·¡¿Í °°´Ù.
User-Agent: CERN-LineMode/2.15 libwww/2.17b3
¶Ç ´Ù¸¥ ¿¹·Î¼,
Server: Apache/0.8.4
ÀÌ·¯ÇÑ °ÍÀ» º¼ ¼ö ÀÖ´Ù.
ÀÌ¿Í °°Àº ÇÁ·Î±×·¥ Á¤º¸¸¦ Ç¥½ÃÇÒ ¶§´Â °£´ÜÇÏ°Ô ÇÙ½É »çÇ׸¸ ³ªÅ¸³ª°Ô ÇÏ¿©¾ß Çϸç, Á¦Ç° ¼±ÀüÀ̳ª Áß¿äÇÏÁö ¾Ê´Â »çÇ×À» ¾Ë¸°´ÙµçÁö ÇÏ´Â
°ÍÀº Çã¿ëµÇÁö ¾Ê´Â´Ù. ±×¸®°í product-versionÀÇ ÀÚ¸®¿¡´Â ¾î¶² Á¾·ùÀÇ ±ÛÀÚ°¡ ¿À´õ¶óµµ »ó°üÀÌ ¾øÀ¸³ª, ¹Ýµå½Ã ¹öÀüÀ»
³ªÅ¸³»¾î °°Àº ÇÁ·Î±×·¥ÀÇ °³·® Á¾·ù¸¦ ±¸ºÐÇÒ ¼ö ÀÖµµ·Ï ÇÏ¿©¾ß ÇÑ´Ù.
4. HTTP Message
4.1 HTTP ¸Þ½ÃÁö Á¾·ù
HTTP ÇÁ·ÎÅäÄÝÀÇ µ¿ÀÛÀ» À§ÇØ Á¸ÀçÇÏ´Â ¸Þ½ÃÁö´Â Ŭ¶óÀÌ¾ðÆ®·ÎºÎÅÍ ¼¹ö·Î º¸³»´Â ¿ä±¸ (request) ¸Þ½ÃÁö¿Í ¹Ý´ë·Î ¼¹ö¿¡¼
Ŭ¶óÀÌ¾ðÆ®·Î º¸³»´Â ÀÀ´ä (response) ¸Þ½ÃÁö·Î ±¸¼ºµÇ°í, À̰ÍÀº ¸ðµÎ ³× °¡Áö Á¾·ù·Î ÇØ¼ ±¸ºÐµÈ´Ù.
µÎ °¡Áö´Â ¿¹ÀüÀÇ 0.9 ¹öÀüÀÇ ÇÁ·ÎÅäÄÝ¿¡¼ ¾²ÀÌ´ø °ÍÀÌ°í ³ª¸ÓÁö µÎ °¡Áö´Â ÇöÀçÀÇ 1.0 ¹öÀü ÇÁ·ÎÅäÄÝ¿¡¼ ¾²ÀÌ´Â °ÍÀÌ´Ù. ÀÌ¿¡ ´ëÇÑ
Ç¥Çö Çü½ÄÀÌ ¾Æ·¡¿Í °°´Ù.
HTTP-message = Simple-Request ; HTTP/0.9 messages
| Simple-Response
| Full-Request ; HTTP/1.0 messages
| Full-Response
Full-Request¿Í Full-Response´Â µ¥ÀÌŸ ¼Û¼ö½ÅÀ» À§ÇØ RFC 822¿¡¼ Á¤ÀÇÇϰí ÀÖ´Â
¸Þ½ÃÁö Çü½ÄÀ» »ç¿ëÇÑ´Ù. °¢ ¸Þ½ÃÁö Çü½ÄÀº ¼±Åà °¡´ÉÇÑ Çì´õ Çʵå¿Í ½ÇÁ¦ µ¥ÀÌŸ ºÎºÐÀÎ ÇϳªÀÇ Entity-Body·Î ±¸¼ºµÇ¾î
ÀÖ´Ù. Entity-Body´Â Çì´õ ºÎºÐ°úÀÇ ±¸ºÐÀ» ÇϳªÀÇ ºó Áٷμ Çϰí ÀÖ´Ù. Áï, CRLF ¾Õ¿¡ ¾Æ¹« °Íµµ
¾ø´Â °ø¹é ÁÙÀ» ¸»ÇÑ´Ù.
ºê¶ó¿ìÀú°¡ ¼¹ö¿¡°Ô ¹®¼ ¿äûÀ» ÇÒ ¶§, ºê¶ó¿ìÀú°¡ »ç¿ëÇϰí ÀÖ´Â ÇÁ·ÎÅäÄÝ ¹öÀü¿¡ µû¶ó¼ Simple-Request
Çü½ÄÀ̳ª Full-Request Çü½ÄÀ̳ª µÑ Áß Çϳª¸¦ ¸¸µé¾î¼ ¿ä±¸ÇÏ°Ô µÈ´Ù. ±×·¯¸é ¼¹ö´Â ºê¶ó¿ìÀú°¡ ¿ä±¸ÇÑ ÇÁ·ÎÅäÄÝ ¹öÀü¿¡
µû¶ó¼ ÀÌ¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î Simple-Response³ª Full-Response Çü½ÄÀÇ ÀÀ´äÀ» Àü´ÞÇÑ´Ù.
ÀÌ·¯ÇÑ ¸Þ½ÃÁö´Â ÀÀ¿ë ÇÁ·ÎÅäÄÝ ·¹º§¿¡¼ ¸¸µé¾îÁö´Â °ÍÀ̹ǷΠ½ÇÁ¦·Î ÀÎÅͳÝÀ» ÅëÇØ Àü´ÞµÉ ¶§´Â Ãß°¡ÀûÀÎ °úÁ¤ÀÌ ´õ Á¸ÀçÇÏ°Ô µÈ´Ù. ¸ÕÀú
ºê¶ó¿ìÀú´Â ¹®¼ ¿ä±¸¸¦ À§ÇÑ HTTP ¿ä±¸ ¸Þ½ÃÁö¸¦ À§¿¡ Á¤ÀÇ¿¡ µû¶ó ¸¸µé°í, À̰ÍÀº TCP/IP ÇÁ·ÎÅäÄÝÀ» ±â¹ÝÀ¸·Î ÇÏ´Â ÀÎÅͳÝÀ» ÅëÇØ
Àü´ÞµÇ¾î¾ß ÇϹǷÎ, TCP ÇÁ·ÎÅäÄÝ¿¡¼´Â À§¿¡¼ ¸¸µç ¸Þ½ÃÁö ¾Õ¿¡´Ù TCP ÇÁ·ÎÅäÄÝÀ» À§ÇÑ Çì´õ¸¦ Ãß°¡Çϰí, ±× ´ÙÀ½ ´Ü°èÀÎ IP ÇÁ·ÎÅäÄÝ¿¡¼
IP ÇÁ·ÎÅäÄÝÀ» À§ÇÑ Çì´õ¸¦ ¾Õ ºÎºÐ¿¡ Ãß°¡Çؼ º¸³»°Ô µÈ´Ù.
IP ÇÁ·ÎÅäÄÝ¿¡¼ ¸¸µé¾îÁø Çì´õ´Â ÀÎÅͳÝÀ» ¿©ÇàÇÏ´Â °¡¿îµ¥ Áß°£ °æ·Î»óÀÇ ¶ó¿ìÅÍ¿¡¼ ¸ñÀûÁö±îÁöÀÇ °æ·Î¸¦ ã±â À§ÇØ ÂüÁ¶°¡ µÇ°í, TCP
ÇÁ·ÎÅäÄÝ¿¡¼ ¸¸µé¾îÁø Çì´õ´Â ¸ñÀûÁö¿¡ µµÂøÇؼ ¼Ó¿¡ µç HTTP ¸Þ½ÃÁö¿¡ µ¥ÀÌŸ ¼Õ»ó°ú °°Àº ¹®Á¦°¡ ¾øÀÌ Á¦´ë·Î µµÂøÇß´ÂÁö È®ÀÎÇØº¸±â À§ÇØ
¾²ÀÌ°Ô µÈ´Ù.
±×·± ´ÙÀ½¿¡ HTTP ÇÁ·ÎÅäÄÝÀÌ HTTP ¸Þ½ÃÁö¸¦ ÇØ¼®Çϰí ÀÌ¿¡ µû¶ó ¼¹ö´Â ÀûÀýÇÏ°Ô µ¿ÀÛÇÑ´Ù. ÀÌ·¸°Ô µ¿ÀÛÇÑ °á°ú¸¦ HTTP ÀÀ´ä
¸Þ½ÃÁö·Î ¸¸µé°í À§¿¡¼ ¼³¸íÇÑ °úÁ¤À» ¶È°°ÀÌ °ÅÃÄ ÃÖÃÊ¿¡ ¿ä±¸ÇÑ ºê¶ó¿ìÀú·Î Àü´ÞµÈ´Ù.
µû¶ó¼ HTTP ÇÁ·ÎÅäÄÝÀÌ ¾î¶»°Ô ±¸¼ºµÇ¾î ÀÖ´ÂÁö ¾Ë°íÀÚ ÇÑ´Ù¸é À§ ³× °¡Áö ¸Þ½ÃÁöÀÇ ±¸¼º Çü½ÄÀ» »ìÆìº¸¸é µÇ´Â °ÍÀÌ´Ù. À̰ÍÀÌ HTTP
ÇÁ·ÎÅäÄÝÀÇ ¸ðµç °ÍÀÌ´Ù.
4.1.1 HTTP/0.9 ¸Þ½ÃÁö Çü½Ä
0.9 ¹öÀü¿¡¼ÀÇ HTTP ¸Þ½ÃÁö Çü½ÄÀº ¾Æ·¡¿Í °°ÀÌ ´Ü¼øÇÏ°Ô µÇ¾î ÀÖ´Ù. ¿©±â¼´Â ¾î¶² Á¾·ùÀÇ Çì´õ Á¤º¸µµ Çã¿ëµÇÁö ¾ÊÀ¸¸ç, ´ÜÁö ¿ä±¸
¹æ¹ýÀ¸·Î¼ GETÀ̶õ request method°¡ ¾²À̰í, ÀÌ¿¡ ´ëÇÑ ¿ä±¸ ¹®¼ÀÇ URI°¡ Ç¥ÇöµÉ »ÓÀÌ´Ù.
Simple-Request = "GET" SP Request-URI CRLF
Simple-Response = [Entity-Body]
ÀÌ·¯ÇÑ 0.9 ¹öÀüÀÇ HTTP ÇÁ·ÎÅäÄÝ ¿ä±¸/ÀÀ´ä¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â method ´Â GET Çϳª »ÓÀÌ´Ù. ±×·¯¹Ç·Î
ºê¶ó¿ìÀú´Â ¼¹ö¿¡°Ô ¹®¼¸¦ º¸³» ´Þ¶ó°í ÇÏ´Â ¿äû¸¸ °¡´ÉÇÏ¸ç ¼¹ö¿¡°Ô ¹®¼¸¦ ¿Ã¸®°Å³ª Áö¿ì°Å³ª ÇÏ´Â ±â´ÉÀº ºÒ°¡´ÉÇÏ´Ù. GETÀ»
ÅëÇØ ¹®¼¸¦ ¿äûÇÏ¸é¼ ÇØ´çÇÏ´Â ¹®¼ÀÇ URI¸¦ ÁöÁ¤ÇØ¾ß ÇÒ °ÍÀ̸ç À̰ÍÀÌ Request-URI¿¡ ÇØ´çÇÑ´Ù. ÀÌ·¯ÇÑ ¿äû¿¡ µû¸¥
ÀÀ´äÀÌ Entity-Body·Î¼ ½Ç·Á¿À°Ô µÈ´Ù. À̶§ Àü´ÞµÇ´Â ¹®¼ÀÇ media typeÀÌ Ç¥½ÃµÉ ¼ö ¾ø±â ¶§¹®¿¡
Simple-Request Çü½ÄÀÇ »ç¿ëÀº Áö¾çÇØ¾ß ÇÑ´Ù.
4.1.2 HTTP/1.0 ¸Þ½ÃÁö Çü½Ä
HTTP/1.0 ¹öÀü¿¡¼´Â 0.9 ¹öÀü¿¡ ºñÇØ ´õ¿í ´Ù¾çÇÑ ±â´ÉµéÀ» Á¦°øÇÑ´Ù. ÀÌ¿¡ µû¶ó ¸Þ½ÃÁö ±¸¼º Çü½ÄÀº ÈξÀ ´õ º¹ÀâÇÑ ÇüŸ¦ ¶ì°í
ÀÖ´Ù.
Full-Request = Request-Line ; 5.1Àý
*(General-Header ; 4.3Àý
| Request-Header ; 4.4Àý
| Entity-Header) ; 4.6Àý
CRLF
[Entity-Body] ; 7.2Àý
Full-Response = Status-Line ; 6.1Àý
*(General-Header ; 4.3Àý
| Response-Header ; 4.5Àý
| Entity-Header) ; 4.6Àý
CRLF
[Entity-Body] ; 7.2Àý
À§¿¡¼ Full-RequestÀÇ ¿¹¸¦ µéÀÚ¸é ÀÌ¿Í °°Àº Ç¥Çö ¹æ½Ä¿¡ ÀÇÇØ ´ÙÀ½°ú °°Àº ¿¹µéÀÌ °¡´ÉÇÔÀ» ¾Ë ¼ö ÀÖ´Ù.
Full-Request = Request-Line CRLF
Full-Request = Request-Line General-Header CRLF
Full-Request = Request-Line General-Header Request-Header CRLF
Full-Request = Request-Line General-Header Request-Header
Entity-Header CRLF Entity-Body
Full-ResponseÀÇ °æ¿ìµµ ¸¶Âù°¡Áö·Î »ìÆìº¼ ¼ö ÀÖ´Ù.
Full-Response = Status-Line CRLF
Full-Response = Status-Line General-Header CRLF
Full-Response = Status-Line General-Header Response-Header CRLF
Full-Response = Status-Line General-Header Response-Header
Entity-Header CRLF Entity-Body
°¢ °æ¿ì¿¡¼ º¸µíÀÌ Entity-Body´Â CRLF ¿¡ ÀÇÇØ °ø¹é ÁÙÀÌ Ãß°¡µÇ¾î ±¸ºÐµÇ°í ÀÖ´Ù.
4.2 ¸Þ½ÃÁö Çì´õ (Message Headers)
¾Õ¼ ¸Þ½ÃÁö Çʵåµé¿¡ º¸¸é, General-Header (4.3Àý ÂüÁ¶), Request-Header
(4.4Àý ÂüÁ¶), Response-Header (4.5Àý ÂüÁ¶), Entity-Header (4.6Àý ÂüÁ¶)
µî°ú °°ÀÌ ³× °¡Áö Çì´õ Çü½ÄÀÌ ÀÖ´Ù. ¿©±â¿¡¼ °øÅëÀûÀ¸·Î »ç¿ëÇϴ ǥÇö Çü½ÄÀº RFC 822ÀÇ 3.1Àý¿¡¼ Á¤ÀÇÇϰí ÀÖ´Â °ÍÀÌ´Ù.
ÀÌ·¯ÇÑ Çì´õÀÇ ¼ø¼´Â Áß¿äÇÏÁö ¾ÊÀ¸³ª °¡´ÉÇÏ´Ù¸é General-Header°¡ ¸ÕÀú ³ª¿À°í À̾î¼
Request-Header ¶Ç´Â Response-Header°¡ ³ª¿À°í ±× ´ÙÀ½¿¡
Entity-Header Çʵ尡 ³ª¿À´Â °ÍÀÌ ÁÁ´Ù. °¢ Çì´õ Çʵå´Â À̸§°ú µÚÀÌÀº ":", ÇÑ °³Â¥¸® ºóÄ
(single space, SP), ±×¸®°í ÇʵåÀÇ value·Î ±¸¼ºµÈ´Ù. ÇʵåÀÇ À̸§Àº ´ë¼Ò¹®ÀÚ¸¦ °¡¸®Áö ¾Ê´Â´Ù. Çì´õ Çʵå´Â, ±ÇÀåÇÏ´Â °ÍÀº
¾Æ´ÏÁö¸¸, Àû¾îµµ ÇÑ °³ÀÇ SP ¶Ç´Â HT Ç¥½Ã¸¦ ÅëÇØ ÁÙ ¹Ù²Ù±â ÇÏ¿© ¿©·¯ ÁٷΠǥ½ÃÇÒ ¼ö ÀÖ´Ù.
HTTP-header = field-name ":" [ field-value ] CRLF
field-name = token
field-value = *(field-content | LWS)
field-content =
field-value°¡ #(values)¿Í °°Àº ¹æ½Ä¿¡ ÀÇÇØ ","·Î ±¸ºÐµÇ´Â ¿©·¯ °³
values·Î¼ Ç¥ÇöµÈ´Ù¸é °°Àº field-nameÀ» °¡Áø ¿©·¯ °³ÀÇ HTTP-header Çʵå·Î Ç¥ÇöµÉ ¼ö
ÀÖ´Ù. ÀÌ °æ¿ì¿¡´Â ¹Ýµå½Ã ¿©·¯ °³ÀÇ Çì´õ Çʵ带 ÇϳªÀÇ "field-name:field-value"ÀÇ ½ÖÀ¸·Î °áÇÕÇÒ ¼ö ÀÖ¾î¾ß
Çϰí, ¸Þ½ÃÁöÀÇ ¸ñÀûÀ» º¯°æ½ÃÄѼ´Â ¾È µÈ´Ù. ÀÌ·¯ÇÑ °¢°¢ÀÇ ½ÖÀº ","¿¡ ÀÇÇØ ±¸ºÐµÇ¾î óÀ½ÀÇ °Í¿¡ µÚÀÌ¾î °áÇյǾî¾ß ÇÑ´Ù.
4.3 ÀÏ¹Ý Çì´õ Çʵå (General Header Fields)
ÀÏ¹Ý Çì´õ´Â Full-Request ¸Þ½ÃÁö¿Í Full-Response ¸Þ½ÃÁö¿¡ °øÅëÀûÀ¸·Î Æ÷ÇԵǾî ÀÖ´Â
Çì´õ Çü½ÄÀÌ´Ù. À̰ÍÀº Àü¼ÛµÇ°í ÀÖ´Â ¸Þ½ÃÁö¿¡ °üÇÑ »çÇ×À» ¾Ë¸®´Â °ÍÀÌÁö, Àü¼ÛµÇ°í ÀÖ´Â »ç¿ëÀÚ µ¥ÀÌŸ¿¡ °üÇÑ »çÇ×À» ¾Ë¸®´Â °ÍÀÌ ¾Æ´Ï´Ù.
General-Header = Date ; 10.6Àý
| Pragma ; 10.12Àý
Date = "Date" ":" HTTP-date
Pragma = "Pragma" ":" 1#pragma-directive
pragma-directive = "no-cache" | extension-pragma
extension-pragma = token ["=" word]
Çʵå À̸§Àº HTTP ÇÁ·ÎÅäÄÝÀÇ ¹öÀü º¯°æ°ú ÇÔ²² ÇÁ·ÎÅäÄÝÀÇ È®ÀåÀ» ²ÒÇÒ ¶§ Ãß°¡µÉ ¼ö ÀÖ´Ù. ±×·¯³ª ÀÌ·¸°Ô È®ÀåµÇ´Â Çʵå´Â ÀÏ¹Ý Çì´õ
Çʵ尡 °¡Áø ¿ªÇÒ¿¡ ÀûÇÕÇØ¾ß ÇÒ °ÍÀÌ´Ù. ÀνÄÇÒ ¼ö ¾ø´Â Çì´õ Çʵå´Â Entity-Header Çʵå·Î¼ °£ÁÖÇÑ´Ù.
À§ÀÇ Çì´õ Çü½ÄÀ» Ç®¾î¼ ´Ù½Ã »ìÆìº¸¸é ¾Æ·¡¿Í °°ÀÌ ³ªÅ¸³» º¸ÀÏ ¼ö ÀÖ´Ù.
General-Header = Date | Pragma
Date = "Date" ":" HTTP-date
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
date2 = 2DIGIT "-" month "-" 2DIGIT
date3 = month SP (2DIGIT | (SP 1DIGIT))
time = 2DIGIT ":" 2DIGIT ":" 2DIGIT
wkday = "Mon" | "Tue" | "Wed" | "Thu" | "Fri" | "Sat" | "Sun"
weekday = "Monday" | "Tuesday" | "Wednesday" | "Thursday"
| "Friday" | "Saturday" | "Sunday"
month = "Jan" | "Feb" | "Mar" | "Apr" | "May" | "Jun"
| "Jul" | "Aug" | "Sep" | "Oct" | "Nov" | "Dec"
Pragma = "Pragma" ":" 1#pragma-directive
pragma-directive = "no-cache" | extension-pragma
extension-pragma = token ["=" word]
4.4 ¿ä±¸ Çì´õ Çʵå (Request Header Fields)
Request-Header Çʵå´Â Full-Request ¸Þ½ÃÁö¿¡ Æ÷ÇԵǴ °ÍÀ̸ç, ¿ä±¸ »çÇ׿¡ ´ëÇÑ ¶Ç´Â
Ŭ¶óÀÌ¾ðÆ® ÀÚü¿¡ ´ëÇÑ Ãß°¡ÀûÀÎ Á¤º¸¸¦ ¼¹ö¿¡°Ô Àü´ÞÇÒ ¶§ ¾²ÀδÙ.
Request-Header = Authorization ; 10.2Àý
| From ; 10.8Àý
| If-Modified-Since ; 10.9Àý
| Referer ; 10.13Àý
| User-Agent ; 10.15Àý
Request-HeaderÀÇ Çʵå À̸§Àº HTTP ÇÁ·ÎÅäÄÝÀÇ ¹öÀü º¯°æ°ú ÇÔ²² ÇÁ·ÎÅäÄÝÀÇ È®ÀåÀ» ²ÒÇÒ ¶§ Ãß°¡µÉ ¼ö
ÀÖ´Ù. ±×·¯³ª ÀÌ·¸°Ô È®ÀåµÇ´Â Çʵå´Â ¿ä±¸ Çì´õ Çʵ尡 °¡Áø ¿ªÇÒ¿¡ ÀûÇÕÇØ¾ß ÇÒ °ÍÀÌ´Ù. ÀνÄÇÒ ¼ö ¾ø´Â Çì´õ Çʵå´Â
Entity-Header Çʵå·Î¼ °£ÁÖÇÑ´Ù.
À̰ÍÀ» º¸´Ù »ó¼¼È÷ Ç®¾î¼ ³ªÅ¸³»¸é ¾Æ·¡¿Í °°´Ù.
Request-Header = Authorization | From | If-Modified-Since | Referer
| User-Agent
Authorization = "Authorization" ":" credentials
credentials = basic-credentials | (auth-scheme #auth-param)
basic-credentials = "Basic" SP basic-cookie
basic-cookie =
userid-password = [token] ":" *TEXT
auth-scheme = token
auth-param = token "=" quoted-string
quoted-string = (<"> *(qdtext) <">)
qdtext = and CTLs,
but including LWS>
From = "From" ":" mailbox
If-Modified-Since = "If-Modified-Since" ":" HTTP-date
Referer = "Referer" ":" (absoluteURI | relativeURI)
relativeURI = net_path | abs_path | rel_path
net_path = "//" net_loc [abs_path]
net_loc = *(pchar | ";" | "?")
abs_path = "/" rel_path
rel_path = [path] [";" params] ["?" query]
User-Agent = "User-Agent" ":" 1*(product | comment)
product = token ["/" product-version]
product-version = token
4.5 ÀÀ´ä Çì´õ Çʵå (Response Header Fields)
ÀÀ´ä Çì´õ Çʵå´Â ¼¹ö°¡ ÀÀ´ä ¸Þ½ÃÁö¸¦ º¸³¾ ¶§ Status-Line¿¡´Ù ½ÇÀ» ¼ö ¾ø´Â Ãß°¡ÀûÀÎ Á¤º¸¸¦ Àü´ÞÇϰíÀÚ ÇÒ ¶§
¾²ÀδÙ. ¼¹ö´Â À̰ÍÀ» ÀÌ¿ëÇÏ¿© ¼¹ö Àڽſ¡ ´ëÇÑ Á¤º¸³ª Request-URI¿¡¼ ¸í½ÃÇÑ ÀÚ¿ø¿¡ ´ëÇÑ Á¢±Ù ¹× ÀÌ¿ë ¹æ¹ý¿¡ ´ëÇÑ
Á¤º¸¸¦ Àü´ÞÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½°ú °°Àº Ç¥Çö½ÄÀ¸·Î ³ªÅ¸³½´Ù.
Response-Header = Location ; 10.11Àý
| Server ; 10.14Àý
| WWW-Authenticate ; 10.16Àý
Response-HeaderÀÇ Çʵå À̸§Àº HTTP ÇÁ·ÎÅäÄÝÀÇ ¹öÀü º¯°æ°ú ÇÔ²² ÇÁ·ÎÅäÄÝÀÇ È®ÀåÀ» ²ÒÇÒ ¶§ Ãß°¡µÉ ¼ö
ÀÖ´Ù. ±×·¯³ª ÀÌ·¸°Ô È®ÀåµÇ´Â Çʵå´Â ÀÀ´ä Çì´õ Çʵ尡 °¡Áø ¿ªÇÒ¿¡ ÀûÇÕÇØ¾ß ÇÒ °ÍÀÌ´Ù. ÀνÄÇÒ ¼ö ¾ø´Â Çì´õ Çʵå´Â
Entity-Header Çʵå·Î¼ °£ÁÖÇÑ´Ù.
À̰ÍÀ» º¸´Ù »ó¼¼È÷ Ç®¾î¼ ³ªÅ¸³»¸é ¾Æ·¡¿Í °°´Ù.
Response-Header = Location | Server | WWW-Authenticate
Location = "Location" ":" absoluteURI
Server = "Server" ":" 1*(product | comment)
WWW-Authenticate = "WWW-Authenticate" ":" 1#challenge
challenge = auth-scheme 1*SP realm *("," auth-param)
realm = "realm" "=" realm-value
realm-value = quoted-string
4.6 ¿£ÅÍÆ¼ Çì´õ Çʵå (Entity Header Fields)
Entity-Header Çʵå´Â Entity-Body¿¡ ´ëÇÑ ÀÎÄÚµù ¹æ½Ä, ÃÖÁ¾ ¼öÁ¤ ÀÏÀÚ, À¯È¿ ±â°£,
¹®¼ ±æÀÌ µî°ú °°Àº ¿ÜÇüÀû Á¤º¸(metainformation)¸¦ ³ªÅ¸³¾ ¶§ ¾²À̰ųª, Àü´ÞÇÒ entity body µ¥ÀÌŸ°¡ ¾øÀ» ¶§´Â ¿ä±¸
¸Þ½ÃÁö¿¡¼ ÁöÁ¤ÇÑ ÇØ´ç ÀÚ¿ø¿¡ ´ëÇÑ Á¤º¸¸¦ ¾Ë·ÁÁÙ ¶§ ¾²ÀδÙ.
Entity-Header = Allow ; 10.1Àý
| Content-Encoding ; 10.3Àý
| Content-Length ; 10.4Àý
| Content-Type ; 10.5Àý
| Expires ; 10.7Àý
| Last-Modified ; 10.10Àý
| extension-header
extension-header = HTTP-header
extension-header Çʵå´Â ÇÁ·ÎÅäÄÝÀ» ¼öÁ¤ÇÏÁö ¾Ê´õ¶óµµ Ãß°¡ÀûÀÎ Entity-Header Çʵ带
Á¤ÀÇÇϵµ·Ï ¾²ÀÏ ¼ö ÀÖ´Ù. ±×·¯³ª ¼ö½ÅÃø¿¡¼ À̰ÍÀÌ Entity-HeaderÀÇ Àǹ̷μ ÇØ¼®µÇ¾î¼´Â ¾È µÈ´Ù. ÀνÄÇÒ ¼ö ¾ø´Â
Çì´õ Çʵå´Â ¼ö½ÅÃøÀÌ ¹«½ÃÇϰųª ÇÁ¶ô½Ã°¡ ´Ù¸¥ °÷À¸·Î Áß°èÇÏ¿©¾ß ÇÑ´Ù.
À̰ÍÀ» Ç®¾î¼ º¸´Ù »ó¼¼È÷ ³ªÅ¸³»¸é ¾Æ·¡¿Í °°´Ù.
Entity-Header = Allow | Content-Encoding | Content-Length
| Content-Type | Expires | Last-Modified | extension-header
Allow = "Allow" ":" 1#method
Content-Encoding = "Content-Encoding" ":" content-coding
econtent-coding = "x-gzip" | "x-compress" | token
Content-Length = "Content-Length" ":" 1*DIGIT
Content-Type = "Content-Type" ":" media-type
media-type = type "/" subtype *(";" parameter)
type = token
subtype = token
parameter = attribute "=" value
attribute = token
value = token | quoted-string
Expires = "Expires" ":" HTTP-date
Last-Modified = "Last-Modified" ":" HTTP-date
extension-header = HTTP-header
5. Request
»ç¿ëÀÚÀÇ ¿ä±¸ »çÇ×À» ¹ÞÀº Ŭ¶óÀÌ¾ðÆ®°¡ HTTP ÇÁ·ÎÅäÄÝ¿¡ µû¶ó¼ ¼¹ö¿¡°Ô ¿ä±¸ »çÇ×À» Àü´ÞÇÒ ¶§ ¾Æ·¡¿¡ Á¤ÀǵǾî ÀÖ´Â ¿ä±¸ ¸Þ½ÃÁö°¡
»ç¿ëµÈ´Ù. ÀÌ·¯ÇÑ ¿ä±¸ ¸Þ½ÃÁö´Â ÇÁ·ÎÅäÄÝÀÇ ¹öÀü¿¡ µû¶ó¼ µÎ °¡Áö Á¾·ù°¡ ÀÖÀ½À» ¾Õ¼ 4.1Àý¿¡¼ º¸¿´À¸¸ç
Simple-Request¿Í Full-Request°¡ ¹Ù·Î ±×°ÍÀÌ´Ù.
Full-Request ¸Þ½ÃÁöÀÇ ±¸¼º Çü½ÄÀ» ¾Õ¼ 4.1.2Àý¿¡¼ »ìÆìº¸¾ÒÀ¸¸ç, ÀÌ °¡¿îµ¥
General-HeaderÀÇ Çü½ÄÀº 4.3Àý¿¡¼ »ìÆìº¸¾Ò°í Entity-Header´Â 4.6Àý¿¡¼ »ìÆìº¸¾Ò´Ù.
¿©±â¼´Â Full-Request ¸Þ½ÃÁö¿Í °ü·ÃÇØ¼ ³ª¸ÓÁö Çì´õ¿Í Çü½ÄÀ» »ìÆìº¸±â·Î ÇÑ´Ù.
Ŭ¶óÀÌ¾ðÆ®¿¡¼ ¼¹ö·Î Àü´ÞµÇ´Â ¿ä±¸ ¸Þ½ÃÁöÀÇ Ã¹ ¹øÂ° ÁÙ¿¡ ¿øÇÏ´Â ÇØ´ç ÀÚ¿ø¿¡ Àû¿ëÇÒ ÀÌ¿ë ¹æ¹ý (method), ÀÚ¿øÀÇ À§Ä¡¿Í °°Àº
Á¤º¸, ¹× »ç¿ëÇϰí ÀÖ´Â ÇÁ·ÎÅäÄÝ ¹öÀü µîÀÌ Æ÷ÇԵȴÙ. HTTP/0.9 ¹öÀüÀÇ ÇÁ·ÎÅäÄݰúµµ µ¿ÀÛÇϱâ À§ÇØ ¿ä±¸ ¸Þ½ÃÁö´Â
Simple-Request¿Í Full-RequestÀÇ µÎ °¡Áö Á¾·ù·Î¼ Ç¥½ÃµÈ´Ù.
¿ä±¸ ¸Þ½ÃÁöÀÇ Çü½ÄÀ» ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³» º¸ÀÏ ¼ö ÀÖ´Ù.
Request = Simple-Request | Full-Request
Simple-Request = "GET" SP Request-URI CRLF
Full-Request = Request-Line ; 5.1Àý
*(General-Header ; 4.3Àý
| Request-Header ; 4.4Àý
| Entity-Header) ; 4.6Àý
CRLF
[Entity-Body] ; 7.2Àý
HTTP/1.0 ¼¹ö°¡ Simple-Request¸¦ ¼ö½ÅÇÏ¿© ÀÀ´äÇÒ ¶§´Â ¹Ýµå½Ã HTTP/0.9 Çü½ÄÀÇ
Simple-Response Çü½ÄÀ¸·Î ÀÀ´äÇÏ¿©¾ß ÇÑ´Ù. Full-Response¸¦ ¼ö½ÅÇÒ ¼ö ÀÖ´Â
HTTP/1.0 Ŭ¶óÀÌ¾ðÆ®´Â Àý´ë Simple-Request¸¦ º¸³»Áö ¾Ê¾Æ¾ß ÇÑ´Ù.
5.1 Request-Line
¿ä±¸ ¸Þ½ÃÁö¿¡ µé¾î°¡´Â ù ¹øÂ° ÁÙÀÇ Ã¹ ¼ø¼ ³»¿ëÀÌ Request-LineÀÌ¸ç ¾Æ·¡¿Í °°Àº ±¸¼º Çü½ÄÀ¸·Î µÇ¾î ÀÖ´Ù.
Request-LineÀº ÀÚ¿øÀÇ ÀÌ¿ë ¹æ¹ý (method), ÇØ´ç ÀÚ¿øÀÇ À§Ä¡¸¦ °¡¸®Å°´Â Request-URI,
ÇÁ·ÎÅäÄÝ ¹öÀü, ±×¸®°í ¸¶Áö¸·¿¡ CRLF·Î¼ Ç¥½ÃµÈ´Ù. °¢°¢ÀÇ ÆÄ¶ó¹ÌÅ͵éÀº SP¿¡ ÀÇÇØ ±¸ºÐµÇ°í ÀÖ´Ù.
¸Þ½ÃÁö Á¤º¸ÀÇ ³¡À» ³ªÅ¸³»´Â CRLFÀº ¸¶Áö¸· ÀÌ¿ÜÀÇ Àå¼Ò¿¡¼´Â Çã¿ëµÇÁö ¾Ê´Â´Ù. ´Ù¸¸ »ç¿ëÀÚ Á¤º¸ µ¥ÀÌŸ¿Í °°Àº
Entity-Body ºÎºÐÀº CRLF¿¡ µÚÀÌ¾î ³ªÅ¸³¯ ¼ö ÀÖ´Ù. µû¶ó¼ ½ÇÁ¦ »ç¿ëÀÚ µ¥ÀÌŸ¸¦ º¸³»±â À§Çؼ´Â
¸Þ½ÃÁö Á¤º¸ ´ÙÀ½¿¡ °ø¹éÀÇ ºóÁÙÀ» ¹Ýµå½Ã Áý¾î ³Ö¾î¾ß ÀνÄÇÒ ¼ö ÀÖ´Ù.
Request-Line = Method SP Request-URI SP HTTP-Version CRLF
º¸´Ù »ó¼¼ÇÏ°Ô Ç®¾î¼ ³ªÅ¸³»¸é ¾Æ·¡¿Í °°´Ù.
Request-Line = Method SP Request-URI SP HTTP-Version CRLF
Method = "GET" | "HEAD" | "POST" | extension-method
extension-method = token
Request-URI = absoluteURI | abs_path
absoluteURI = scheme ":" *(uchar | reserved)
scheme = 1*(ALPHA | DIGIT | "+" | "-" | ".")
uchar = unreserved | escape
unreserved = ALPHA | DIGIT | safe | extra | national
safe = "$" | "-" | "_" | "."
extra = "!" | "*" | "'" | "(" | ")" | ","
national =
unsafe = CTL | SP | <"> | "#" | "%" | "<" | ">"
escape = "%" HEX HEX
HEX = "A" | "B" | "C" | "D" | "E" | "F"
| "a" | "b" | "c" | "d" | "e" | "f" | DIGIT
reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+"
abs_path = "/" rel_path
rel_path = [path] [";" params] ["?" query]
path = fsegment *("/" segment)
fsegment = 1*pchar
segment = *pchar
pchar = uchar | ":" | "@" | "&" | "=" | "+"
params = param *(";" param)
param = *(pchar | "/")
query = *(uchar | reserved)
HTTP-Version = "HTTP" "/" 1*DIGIT "." 1*DIGIT
Full-Request ¼Ó¿¡ ÀÖ´Â Request-Line°ú Simple-RequestÀÇ
Â÷ÀÌÁ¡Àº HTTP-Version ÇʵåÀÇ Á¸Àç À¯¹«¿Í GET ÀÌ¿ÜÀÇ ´Ù¸¥ ¹æ¹ýÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´ÂÁö ¾ø´ÂÁö ÇÏ´Â
°ÍÀÌ´Ù.
5.1.1 Method
Request-URI·Î ÁöÁ¤µÇ´Â ´ë»óü¿¡ ´ëÇØ ¾î¶»°Ô Ȱ¿ëÇÒ °ÍÀÎÁö ±× ÀÌ¿ë ¹æ¹ýÀ» ÁöÁ¤ÇÑ´Ù. ¿¹¸¦ µé¾î
GETÀ¸·Î ÁöÁ¤µÇ¾î ÀÖÀ¸¸é Request-URI·Î ÁöÁ¤µÇ¾î ÀÖ´Â µ¥ÀÌŸ ÈÀÏÀ» °¡Áö°í ¿À¶ó´Â ¶æÀÌ µÇ¸ç,
POST·Î ÁöÁ¤µÇ¾î ÀÖÀ¸¸é Request-URI·Î ÁöÁ¤µÇ¾î ÀÖ´Â Àå¼Ò¿¡ Entity-Body·Î
Àü´ÞµÇ´Â ±ÛÀ» ¿Ã¸± ¼ö ÀÖ´Ù. ÇöÀç ¼¼ °¡Áö Á¾·ù°¡ Á¤ÀÇµÇ¾î ¾²À̰í ÀÖÀ¸¸ç ´ÙÀ½°ú °°´Ù.
´ÙÀ½°ú °°Àº Ç¥½Ã Çü½ÄÀ¸·Î ³ªÅ¸³¾ ¼ö ÀÖ°í, ´ë¼Ò¹®ÀÚ¸¦ °¡¸®Áö ¾Ê´Â´Ù.
Method = "GET" ; 8.1Àý
| "HEAD" ; 8.2Àý
| "POST" ; 8.3Àý
| extension-method
extension-method = token
GET, HEAD, POST¶ó°í ÇÏ´Â ¼¼ °¡Áö Method¿¡ ´ëÇÑ ¼³¸íÀº
8Àå¿¡¼ ÀÌ·ç¾îÁú °ÍÀÌ´Ù.
Ŭ¶óÀÌ¾ðÆ®°¡ ´ë»ó ÀÚ¿ø¿¡ ´ëÇØ ¿äûÇÑ °ÍÀÌ ¼¹ö¿¡¼ ó¸®ÇÒ ¼ö ¾ø´Â °ÍÀ̶ó¸é ¼¹ö´Â 501 (not implemented) »óÅ Á¤º¸¸¦
µÇµ¹·Á ÁØ´Ù.
5.1.2 Request-URI
¿ä±¸ ¸Þ½ÃÁö¿¡ ÀÖ´Â Method¿¡ ÀÇÇØ ÁöÁ¤µÇ´Â µ¿ÀÛÀ» ¾î´À Àå¼Ò¿¡ ÀÖ´Â ´ë»ó¿¡°Ô Àû¿ëÇÒ °ÍÀÎÁö ³ªÅ¸³½´Ù. ÀÌ·¸°Ô Ç¥½ÃµÇ´Â
URI´Â ´Ù¾çÇÑ Á¤º¸¸¦ ÇÔÃàÇϰí ÀÖÀ¸¸ç 3.2ÀýÀ» ÂüÁ¶ÇÏ¸é µÈ´Ù. ´ÙÀ½°ú °°Àº Ç¥½Ã Çü½ÄÀ¸·Î ³ªÅ¸³¾ ¼ö ÀÖ´Ù.
Request-URI = absoluteURI | abs_path
absoluteURI Çü½ÄÀº ¿ä±¸ ¸Þ½ÃÁö°¡ ÇÁ¶ô½Ã ¼¹ö·Î Àü´ÞµÉ ¶§¿¡¸¸ ¾²ÀδÙ. ÇÁ¶ô½Ã´Â ¼ö½ÅÇÑ ¿ä±¸ ¸Þ½ÃÁö¸¦ Áß°èÇϰí
Àü´Þ¹ÞÀº ÀÀ´ä ¸Þ½ÃÁö¸¦ ÃÖÃÊ ¿ä±¸ÇÑ Å¬¶óÀÌ¾ðÆ®¿¡°Ô Àü´ÞÇÑ´Ù. ¿ä±¸ ¸Þ½ÃÁö°¡ GET ¶Ç´Â HEADÀ̰í ÇØ´ç ¿ä±¸¿¡
´ëÇÑ ÀÌÀü ÀÀ´äÀÌ ÀÌ¹Ì Ä³½ÃµÇ¾î ÀÖ´Ù¸é Expires Á¦ÇÑ Á¶°Ç¿¡ À§¹èµÇÁö ¾Ê´Â ÇÑ ÀÌ¹Ì Ä³½ÃµÇ¾î ÀÖ´Â ÀÀ´ä ¸Þ½ÃÁö¸¦ ±×´ë·Î
Àü´ÞÇÑ´Ù. ¿©±â¼ Expires´Â ij½ÃµÇ¾î ÀÖ´Â Á¤º¸¿¡ ´ëÇÑ À¯È¿ ±â°£À» ÁöÁ¤ÇÑ °ÍÀÌ´Ù.
ÇÁ¶ô½Ã´Â ¼ö½ÅÇÑ ¿ä±¸ ¸Þ½ÃÁö¸¦ ´Ù¸¥ ÇÁ¶ô½Ã·Î Áß°èÇÒ ¼öµµ ÀÖÀ¸¸ç, ¶Ç´Â absoluteURI¿¡¼ ÁöÁ¤ÇÑ ¼¹ö·Î °ð¹Ù·Î
Áß°èÇØÁÙ ¼öµµ ÀÖ´Ù. À̶§ ¿ä±¸ ¸Þ½ÃÁöÀÇ ·çÇÎ(looping)À» ¹æÁöÇϱâ À§ÇØ ÇÁ¶ô½Ã´Â ÀÚ½ÅÀÇ ¸ðµç ¼¹ö À̸§°ú IP ÁÖ¼Ò¸¦ ÀνÄÇϰí ÀÖ¾î¾ß
Çϸç, À̶§ÀÇ ¼¹ö À̸§¿¡´Â alias À̸§À̳ª È£½ºÆ® ³»ºÎ¿¡ ¼³Á¤µÇ¾î ÀÖ´Â º°¸í±îÁöµµ Æ÷ÇԵȴÙ.
ÇÑ °¡Áö ¿¹´Â ´ÙÀ½°ú °°´Ù.
GET http://www.w3.org/pub/WWW/TheProject.html HTTP/1.0
Request-URIÀÇ °¡Àå ÀϹÝÀûÀÎ ÇüÅ´ ÇÁ¶ô½Ã ¼¹ö°¡ ¾Æ´Ñ È£½ºÆ® ¼¹ö¿¡ ÀÖ´Â ÀÚ¿øÀ» ÁöÁ¤ÇÒ ¶§ ¾²ÀÌ´Â °ÍÀ̸ç,
ÀÌ °æ¿ì¿¡´Â URIÀÇ
abs_path (3.2.1Àý ÂüÁ¶) ºÎºÐ¸¸ÀÌ Àü´ÞµÈ´Ù. ¿¹¸¦ µé¾î, È£½ºÆ® ¼¹ö·ÎºÎÅÍ À§¿¡ ¸í½ÃÇÑ ¹®¼¸¦
Ŭ¶óÀÌ¾ðÆ®°¡ Á÷Á¢ °¡Á®¿À°íÀÚ ÇÏ´Â °æ¿ì,
www.w3.org È£½ºÆ®¿¡ 80¹ø Æ÷Æ®·Î TCP ¿¬°áÀ» ¸Î¾î ´ÙÀ½°ú °°Àº ³»¿ëÀ»
º¸³½´Ù.
GET /pub/WWW/TheProject.html HTTP/1.0
À§¿¡ À̾î¼
Full-RequestÀÇ ³ª¸ÓÁö ºÎºÐÀÌ µÚµû¸¥´Ù. ¿©±â¼ À§ ·çÆ® °æ·Î Ç¥½Ã´Â Àý´ë »ý·«µÇ¾î¼´Â ¾È
µÈ´Ù. µû¶ó¼ ¸¸¾à¿¡ ¿ø·¡ URI¿¡ ¾Æ¹« °Íµµ ÁöÁ¤µÇ¾î ÀÖÁö ¾Ê´Ù¸é
Request-URI¿¡
"/" ÀÌ Ç¥½Ã°¡
µé¾î°¡¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î,
http://pec.etri.re.kr°ú °°Àº URL·Î »ç¿ëÀÚ°¡ ¿ä±¸ÇÏ¿´´Ù¸é °æ·Î Ç¥½Ã°¡ µÇ¾î ÀÖÁö
¾ÊÀ¸¹Ç·Î, ¾Æ·¡¿Í °°ÀÌ
"/"°¡ Ãß°¡µÇ¾î
Request-URI°¡ ±¸¼ºµÈ´Ù.
GET / HTTP/1.0
¸¸¾à http://www.w3.org/ ÀÌ¿Í °°Àº URLÀ» ÁöÁ¤ÇßÀ» ¶§´Â ·çÆ® °æ·Î°¡ "/"·Î¼ À̹Ì
Ç¥½ÃµÇ¾î ÀÖÀ¸¹Ç·Î ´ç¿¬È÷ À§¿Í °°Àº Ç¥Çö½ÄÀÌ µÈ´Ù. Áï, °á°úÀûÀ¸·Î´Â µÎ °¡Áö °æ¿ì¿¡ ´ëÇÑ Request-URI Ç¥Çö½ÄÀÌ ¶È
°°´Ù.
Request-URI°¡ Àü¼ÛµÉ ¶§´Â ÀÎÄÚµùµÇ¾î Àü´ÞµÈ´Ù. ¿©±â¼ ¸î °¡Áö ±ÛÀÚ´Â RFC 1738¿¡¼ Á¤ÀÇÇϰí ÀÖ´Â
"%HEX HEX" ÀÎÄÚµù ¹æ½ÄÀ¸·Î º¯È¯µÉ ¼ö ÀÖ´Ù. ¼ö½ÅÇÏ´Â ¼¹ö´Â ¿ä±¸ ¸Þ½ÃÁö¸¦ ÀûÀýÈ÷ ó¸®Çϱâ À§ÇÏ¿© ÀÎÄÚµùµÇ¾î ÀÖ´Â
Request-URI¸¦ µðÄÚµùÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
5.2 ¿ä±¸ Çì´õ Çʵå (Request Header Fields)
4.4ÀýÀ» ÂüÁ¶ÇÏ¸é µÈ´Ù.
6. Response
¼¹ö´Â ¼ö½ÅÇÑ ¿ä±¸ ¸Þ½ÃÁö¸¦ HTTP ÇÁ·ÎÅäÄÝ¿¡ ¸Â°Ô ¹ø¿ªÇÏ¿© ÀûÀýÇÑ µ¿ÀÛÀ» ¼öÇàÇϰí ÇÁ·ÎÅäÄÝÀÇ ÀÀ´ä ¸Þ½ÃÁö Çü½Ä¿¡ ¸ÂÃç °á°ú¸¦ Àü´ÞÇÑ´Ù.
ÀÀ´ä ¸Þ½ÃÁöÀÇ Çü½ÄÀ» ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³» º¸ÀÏ ¼ö ÀÖ´Ù.
Response = Simple-Response | Full-Response
Simple-Response = [Entity-Body]
Full-Response = Status-Line ; 6.1Àý
*(General-Header ; 4.3Àý
| Response-Header ; 4.5Àý
| Entity-Header) ; 4.6Àý
CRLF
[Entity-Body] ; 7.2Àý
ÀÌ·¯ÇÑ ÀÀ´ä ¸Þ½ÃÁö´Â ÇÁ·ÎÅäÄÝÀÇ ¹öÀü¿¡ µû¶ó¼ µÎ °¡Áö Á¾·ù°¡ ÀÖÀ½À» 4.1Àý¿¡¼ º¸¿´À¸¸ç Simple-Response¿Í
Full-Response°¡ ±×°ÍÀÌ´Ù. Simple-Response´Â HTTP/0.9 ÇÁ·ÎÅäÄÝ Çü½ÄÀÇ ¿ä±¸
¸Þ½ÃÁö¿¡ ´ëÇÑ ÀÀ´ä, ¶Ç´Â ¼¹ö°¡ HTTP/0.9 ÇÁ·ÎÅäÄÝ·Î Á¦ÇÑÀûÀ¸·Î ¾²ÀÏ ¶§ÀÇ ÀÀ´äÀ¸·Î¸¸ »ç¿ëµÇ¾î¾ß ÇÑ´Ù.
Ŭ¶óÀÌ¾ðÆ®°¡ HTTP/1.0 Çü½ÄÀÇ Full-Request¸¦ º¸³Â´Âµ¥ ¼ö½ÅÇÑ ÀÀ´äÀÌ
Status-LineÀ¸·Î ½ÃÀÛÇÏÁö ¾Ê´Â´Ù¸é, ¼ö½ÅÇÑ ÀÀ´äÀÌ Simple-Request¶ó°í °£ÁÖÇϰí ÀûÀýÇÏ°Ô ÇØ¼®
󸮸¦ Çϵµ·Ï ÇÑ´Ù.
Full-ResponseÀÇ °¢ Çì´õ ÇʵåµéÀº 4.2Àý¿¡¼ ÀÌ¹Ì »ìÆìº¸¾Ò´Ù.
6.1 Status-Line
Full-Response ¸Þ½ÃÁö¿¡ µé¾î°¡´Â ù ¹øÂ° ÁÙÀÇ ³»¿ëÀÌ Status-LineÀÌ¸ç ¾Æ·¡¿Í °°Àº ±¸¼º
Çü½ÄÀ¸·Î µÇ¾î ÀÖ´Ù. °¢°¢ÀÇ ÆÄ¶ó¹ÌÅ͵éÀº SP¿¡ ÀÇÇØ ±¸ºÐµÇ°í ÀÖÀ¸¸ç, HTTP ¹öÀüÀÌ Á¦ÀÏ ¸ÕÀú ³ª¿À°í ÀÌ¾î¼ ¼ýÀÚ·Î µÈ »óÅÂ
Äڵ尡 Ç¥½ÃµÇ°í ÀÌ¾î¼ °ü·ÃµÈ Ãß°¡ÀûÀÎ ³»¿ë ¼³¸íÀÌ µ¡ºÙ¿©Áø´Ù. ¸Þ½ÃÁö Á¤º¸ÀÇ ³¡À» ³ªÅ¸³»´Â CRLF´Â ¸¶Áö¸· ÀÌ¿ÜÀÇ Àå¼Ò¿¡´Â
Çã¿ëµÇÁö ¾Ê´Â´Ù. ´Ù¸¸ »ç¿ëÀÚ µ¥ÀÌŸ¿Í °°Àº ¿£ÅÍÆ¼ ºÎºÐÀº CRLF¿¡ µÚÀÌ¾î ³ªÅ¸³¯ ¼ö ÀÖ´Ù. µû¶ó¼ ½ÇÁ¦ »ç¿ëÀÚ µ¥ÀÌŸ¸¦
º¸³»±â À§Çؼ´Â ¸Þ½ÃÁö Á¤º¸ ´ÙÀ½¿¡ °ø¹éÀÇ ºóÁÙÀ» ¹Ýµå½Ã Áý¾î³Ö¾î¾ß ÀνÄÇÒ ¼ö ÀÖ´Ù.
Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
º¸´Ù »ó¼¼ÇÏ°Ô Ç®¾î¼ ³ªÅ¸³»¸é ¾Æ·¡¿Í °°´Ù.
Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
HTTP-Version = "HTTP/" 1*DIGIT "." 1*DIGIT
Status-Code ; 6.1.1Àý
Reason-Phrase = *
ÀÌ·¯ÇÑ »óÅ ǥ½ÃÁÙÀº Ç×»ó ´ÙÀ½°ú °°Àº ÇÁ·ÎÅäÄÝ ¹öÀü°ú »óÅÂÄÚµå·Î ½ÃÀÛÇϱ⠶§¹®¿¡,
"HTTP/" 1*DIGIT "." 1*DIGIT SP 3DIGIT SP
(¿¹,
"HTTP/1.0 200 "), ÀÌ Ç¥Çö½ÄÀ» ÅëÇØ ÃæºÐÈ÷
Simple-Response¿Í
Full-Response¸¦ ±¸ºÐÇÒ ¼ö ÀÖ´Ù.
Simple-ResponseÀÇ Çü½ÄÀº
Entity-BodyÀÇ Ã¹ ºÎºÐ¿¡ À§¿Í °°Àº Ç¥Çö½ÄÀ» Æ÷ÇÔÇÒ ¼öµµ ÀÖ°í, ÀÌ ¶§¹®¿¡
Full-RequestÀÇ
ÀÀ´äÀ¸·Î Àü´ÞµÇ´Â °ÍÀ̶ó¸é ÃæºÐÈ÷ À߸ø ÇØ¼®µÉ ¼ö ÀÖ´Ù. ±×·¡¼ ´ëºÎºÐÀÇ HTTP/0.9 ¼¹ö¿¡¼´Â
"text/html" Çü½ÄÀÇ
ÀÀ´ä¸¸ Çϵµ·Ï Á¦ÇÑÇϰí ÀÖÀ¸¸ç, ¾Õ¼ ¾ð±ÞÇÑ ¿ÀÇØ´Â Àý´ë ¹ß»ýÇÏÁö ¾Ê´Â´Ù.
6.1.1 Status-Code¿Í Reason-Phrase
»óÅÂÄÚµå´Â ¼¹ö°¡ ¿ä±¸ ¸Þ½ÃÁö¸¦ ¼ö½ÅÇÏ¿© ó¸®ÇÑ °á°ú¸¦ ¾Ë·ÁÁÖ´Â ¼¼ ÀÚ¸®ÀÇ Á¤¼ö·Î µÈ ó¸® °á°ú ¹øÈ£ÀÌ´Ù.
Reason-Phrase¿¡´Â Status-Code¿¡ ´ëÇÑ Â©¸·ÇÑ ¼³¸í¹®ÀÌ µé¾î°¥ ¼ö ÀÖ´Ù. »óÅÂÄÚµå´Â ¿ÀÅ丶Ÿ°¡
»ç¿ëÇϵµ·Ï ÇÏ´Â °ÍÀ̰í, ÀÌÀ¯ ¼³¸í¹®Àº »ç¿ëÀÚ¿¡°Ô »óÅ Á¤º¸¸¦ ±Û·Î½á ¾Ë¸®±â À§ÇÑ °ÍÀÌ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ÀÌ·¯ÇÑ
Reason-Phrase¸¦ °Ë»çÇØ º¸°Å³ª ȸ鿡 º¸ÀÌ°Ô ÇÒ ÇÊ¿ä´Â ¾ø´Ù.
ù ¹øÂ° ÀÚ¸® ¼ýÀÚ´Â ÀÀ´äÀÇ Á¾·ù¿¡ ´ëÇÑ ºÐ·ù ±âÈ£À̸ç, ³ª¸ÓÁö µÎ ÀÚ¸® ¼ýÀÚ´Â ÀϷùøÈ£ÀÌ´Ù. ÇöÀç ù ¹øÂ° ÀÚ¸® ¼ýÀÚ¿¡ ´ëÇØ ´Ù¼¸ °¡Áö·Î
ºÐ·ùÇÏ¿© ¾²°í ÀÖ´Ù.
- 1xx : Informatinal - ÇâÈÄÀÇ »ç¿ëÀ» À§ÇØ ¿¹¾à. ¾ÆÁ÷ »ç¿ëµÇÁö ¾ÊÀ½.
- 2xx : Success - ¼º°øÀûÀ¸·Î ¼ö½ÅµÇ°í ÇØµ¶µÇ°í ó¸®µÈ °æ¿ì.
- 3xx : Redirection - ¿ÏÀüÇÑ Ã³¸®¸¦ À§ÇØ Ãß°¡ÀûÀÎ µ¿ÀÛÀÌ ÇÊ¿ä·Î ÇÏ´Â °æ¿ì.
- 4xx : Client Error - ¿ä±¸ ¸Þ½ÃÁö¿¡ ±ÛÀÚ»óÀÇ ¹®Á¦°¡ ÀÖ´Â °æ¿ì°Å³ª ¸Þ½ÃÁö¸¦ ó¸®ÇÒ ¼ö ¾øÀ» ¶§.
- 5xx : Server Error - ¼¹ö°¡ ¿ä±¸ ¸Þ½ÃÁö¸¦ ó¸®ÇÏ´Â °¡¿îµ¥ ¹®Á¦°¡ ¹ß»ýÇÑ °æ¿ì.
HTTP/1.0¿¡¼ Á¤ÀÇÇÑ »óÅ ÄÚµå¿Í ´ëÀÀÇÏ´Â Reason-Phrase ¼³¸í¹®À» ¾Æ·¡ÀÇ ¿¹¿¡¼ º¼ ¼ö ÀÖ´Ù. ¿©±â¼ÀÇ
¼³¸í¹®Àº ´ÜÁö ±ÇÀå »çÇ×ÀÏ »ÓÀ̸ç, °°Àº Àǹ̿¡ ÀÖ¾î ´Ù¸¥ ±Û·Î¼ Ç¥ÇöÇØµµ µÈ´Ù. °¢ »óÅÂÄڵ忡 ´ëÇÑ »ó¼¼ ¼³¸íÀº 9Àå¿¡ ÀÖ´Ù.
Status-Code = "200" ; OK
| "201" ; Created
| "202" ; Accepted
| "204" ; No Content
| "301" ; Moved Permanently
| "302" ; Moved Temporarily
| "304" ; Not Modified
| "400" ; Bad Request
| "401" ; Unauthorized
| "403" ; Forbidden
| "404" ; Not Found
| "500" ; Internal Server Error
| "501" ; Not Implemented
| "502" ; Bad Gateway
| "503" ; Service Unavailable
| extension-code
extension-code = 3DIGIT
Reason-Phrase = *
HTTP »óÅÂÄÚµå´Â È®ÀåÀÌ °¡´ÉÇѵ¥, À§ ÄÚµåµéÀº ÇöÀç ÀϹÝÀûÀ¸·Î »ç¿ëµÇ´Â °ÍµéÀÌ´Ù. HTTP ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼´Â µî·ÏµÇ¾î ÀÖ´Â ¸ðµç
»óÅÂÄÚµåÀÇ Àǹ̸¦ ¾Ë¾Æ¾ß ÇÒ ÇÊ¿ä´Â ¾øÁö¸¸ ±×·¡µµ ±ÇÀå »çÇ×À̸ç, ù¹øÂ° ¼ýÀڷΠǥ½ÃµÇ´Â Ŭ·¡½º ºÐ·ù¿¡ À־ ¹Ýµå½Ã ¾Ë¾Æ¾ß ÇÑ´Ù. ÀνÄÇÒ ¼ö
¾ø´Â »óÅÂÄÚµåÀÎ °æ¿ì¿¡´Â ÇØ´ç Ŭ·¡½ºÀÇ x00 »óÅÂÄÚµå·Î °£ÁÖÇϵµ·Ï Çϰí, À̰ÍÀº Àý´ë ij½ÃµÇ¾î¼´Â ¾È µÈ´Ù.
¿¹¸¦ µé¾î, 431À̶ó´Â ÀνÄÇÒ ¼ö ¾ø´Â »óÅÂÄڵ尡 Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ¼ö½ÅµÇ¾ú´Ù¸é ¿ä±¸ ¸Þ½ÃÁö¿¡ ¹«¾ð°¡ ¹®Á¦°¡ ÀÖ¾ú´ø °ÍÀ̶ó°í °¡Á¤À» Çϰí
400¹ø »óÅÂÄڵ尡 ¼ö½ÅµÈ °ÍÀ¸·Î °£ÁÖÇϵµ·Ï ÇÑ´Ù. ÀÌ °æ¿ì¿¡ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â »ç¿ëÀÚ¿¡°Ô ÀÀ´ä°ú ÇÔ²² µ¹¾Æ¿Â ¿£ÅÍÆ¼ ³»¿ëÀ» º¸¿©ÁÖµµ·Ï ÇÑ´Ù.
¿Ö³ÄÇÏ¸é ºñÁ¤»óÀûÀÎ »óȲ¿¡ ´ëÇÑ ¼³¸íÀÌ »ç¶÷ÀÌ ÀÐÀ» ¼ö ÀÖ´Â ÇüÅ·Π¿£ÅÍÆ¼ ¼Ó¿¡ Æ÷ÇԵǾî ÀÖÀ» °ÍÀ̱⠶§¹®ÀÌ´Ù.
6.2 ÀÀ´ä Çì´õ Çʵå (Response Header Fields)
4.5Àý¿¡ ¼³¸íµÇ¾î ÀÖ´Ù.
7. ¿£ÅÍÆ¼ (Entity)
Full-Request¿Í Full-Response ¸Þ½ÃÁö´Â °¢ ¸Þ½ÃÁö ³»¿¡ ¹®¼³ª »ç¿ëÀÚ µ¥ÀÌŸ¿Í °°Àº
¿£ÅÍÆ¼ ¿ä¼Ò¸¦ Àü¼ÛÇÒ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ ¿£ÅÍÆ¼´Â Entity-Header Çʵå¿Í Entity-Body·Î¼
±¸¼ºµÈ´Ù. 7ÀåÀÇ ¼³¸í¿¡ ÀÖ¾î¼ Å¬¶óÀÌ¾ðÆ®¿Í ¼¹ö´Â ¿£ÅÍÆ¼ ¿ä¼Ò¸¦ Àü¼ÛÇÏ´À³Ä ¼ö½ÅÇÏ´À³Ä¿¡ µû¶ó °¢°¢ ¼Û½ÅÀÚ ¶Ç´Â ¼ö½ÅÀÚ°¡ µÉ ¼ö ÀÖ´Ù.
7.1 ¿£ÅÍÆ¼ Çì´õ Çʵå (Entity Header Fields)
4.6Àý¿¡ ¼³¸íµÇ¾î ÀÖ´Ù.
7.2 Entity Body
HTTP ¿ä±¸ ¶Ç´Â ÀÀ´ä ¸Þ½ÃÁö¿¡ Æ÷ÇԵǾî Àü´ÞµÇ´Â entity body´Â Entity-Header Çʵ忡 ÀÇÇØ Á¤ÀǵǴÂ
Çü½Ä°ú ÀÎÄÚµù ¹æ½ÄÀ¸·Î ±¸¼ºµÇ¾î Àü´ÞµÈ´Ù. Entity-Body´Â ´ÙÀ½°ú °°Àº ´Ü¼øÇÑ Çü½ÄÀÌ´Ù.
Entity-Body = *OCTET
¿ä±¸ ¸Þ½ÃÁö¿¡ entity body°¡ Á¸ÀçÇÑ´Ù´Â °ÍÀº ¿ä±¸ ¸Þ½ÃÁö Çì´õÀÇ
Content-Length ÇʵåÀÇ Á¸À縦
º¸°í¼µµ ¾Ë ¼ö ÀÖ´Ù. Áï, entity body¸¦ Æ÷ÇÔÇÏ´Â HTTP/1.0 ¿ä±¸ ¸Þ½ÃÁö´Â ¹Ýµå½Ã
Content-Length
Çì´õ Çʵ带 Æ÷ÇÔÇØ¾ß ÇÑ´Ù´Â ¶æÀ̱⵵ ÇÏ´Ù.
entity body°¡ ÀÀ´ä ¸Þ½ÃÁö¿¡ Æ÷ÇÔµÉÁö ¾È µÉÁö´Â ¿ä±¸ ¸Þ½ÃÁö¿Í ÀÌ¿¡ ´ëÇÑ °á°ú Äڵ忡 ÀÇÇØ Á¿ìµÈ´Ù. HEAD
method°¡ ÁöÁ¤µÈ ¿ä±¸ ¸Þ½ÃÁö¿¡ ´ëÇÑ ¸ðµç ÀÀ´ä¿¡´Â entity body°¡ Æ÷ÇԵǾ ¾È µÈ´Ù. ±×¸®°í 1xx(informational),
204(no content), 304(not modified) ÀÀ´ä¿¡µµ entity body°¡ Æ÷ÇԵǾ ¾È µÈ´Ù. ÀÌ¿ÜÀÇ ´Ù¸¥ ¸ðµç ÀÀ´ä¿¡´Â
entity body°¡ Æ÷ÇԵǰųª Content-Length Çì´õ Çʵ忡 '0'ÀÇ °ªÀÌ µé¾î°¡¾ß ÇÑ´Ù.
7.2.1 Type
¸Þ½ÃÁö¿¡ Entity-Body°¡ Æ÷ÇԵǾî ÀÖÀ» ¶§, ÀÌ¿¡ ´ëÇÑ µ¥ÀÌŸ Çü½ÄÀº Content-Type°ú
Content-Encoding Çì´õ Çʵ带 ÅëÇØ °áÁ¤ÇÒ ¼ö ÀÖ´Ù. ÀÌ´Â µÎ °³ÀÇ °èÃþÀ¸·Î µÈ ¼øÂ÷ ÀÎÄÚµù ¸ðµ¨ (ordered
encoding model)·Î¼ Á¤ÀÇµÉ ¼ö ÀÖ´Ù. Áï,
entity-body := Content-Encoding (Content-Type (data))
¿©±â¼
Content-TypeÀº ÇÏÀ§ µ¥ÀÌŸÀÇ ¹Ìµð¾î Çü½ÄÀ» ÁöÁ¤Çϰí,
Content-EncodingÀº Åë»ó µ¥ÀÌŸ ¾ÐÃàÀÇ ¿ëµµ·Î¼ ÇØ´ç Çü½Ä¿¡ Àû¿ëµÇ´Â ¾î¶² Ãß°¡ÀûÀÎ ÀÎÄÚµù ¹æ½ÄÀ» Ç¥½ÃÇϱâ À§ÇØ
»ç¿ëµÈ´Ù. À̰ÍÀº ¿äû¹ÞÀº ÀÚ¿ø¿¡ ´ëÇÑ Æ¯¼ºÀÇ Ç¥½Ã¶õ Àǹ̸¦ °¡Áö°Ô µÈ´Ù. ÀÌ·¯ÇÑ ÀÎÄÚµù ¹æ½ÄÀÇ ±âº» ¼³Á¤Àº ¾Æ¹« °Íµµ ¾ø´Â °ÍÀÌ´Ù.
entity body¸¦ Æ÷ÇÔÇϰí ÀÖ´Â ¾î¶² HTTP/1.0 ¸Þ½ÃÁöÀ̵ç ÀÌÀÇ ¹Ìµð¾î Çü½ÄÀ» Ç¥½ÃÇÏ´Â Content-Type
Çì´õ Çʵ带 Æ÷ÇÔÇϰí ÀÖ¾î¾ß ÇÑ´Ù. Simple-ResponseÀÇ °æ¿ìó·³ ¸¸¾à Content-Type Çì´õ¿¡
ÀÇÇØ ÁÖ¾îÁöÁö ¾Ê´Â °æ¿ì¶ó¸é ¼ö½ÅÃøÀº µ¥ÀÌŸ ³»¿ë°ú URL¿¡ ÀÖ´Â ÈÀÏ À̸§ÀÇ È®Àå¸íÀ» ÀÌ¿ëÇÏ¿© ÃßÃøÇÒ ¼öµµ ÀÖ´Ù. ±×·¡µµ ¾Ë ¼ö°¡ ¾ø´Ù¸é
¼ö½ÅÃø¿¡¼´Â À̰ÍÀ» "application/octet-stream"À¸·Î °£ÁÖÇϵµ·Ï ÇÑ´Ù.
7.2.2 Length
Entity-Body°¡ ¸Þ½ÃÁö ¼Ó¿¡ Æ÷ÇԵǾî ÀÖÀ» ¶§ ÀÌÀÇ ±æÀ̸¦ Çϳª ¶Ç´Â µÎ °¡Áö ¹æ½ÄÀ¸·Î °áÁ¤ÇÒ ¼ö ÀÖ´Ù. ¸¸¾à
Content-Length Çì´õ Çʵ尡 Á¸ÀçÇÑ´Ù¸é, ¹ÙÀÌÆ® ´ÜÀ§ÀÇ Å©±â°¡ ÇØ´ç ±æÀ̸¦ Ç¥½ÃÇÒ ¼ö ÀÖ´Ù. ±×·¸Áö ¾ÊÀº °æ¿ì¶ó¸é,
¼¹ö°¡ ¿¬°áÀ» ÇØÁ¦ÇÒ ¶§ °áÁ¤µÉ ¼ö ÀÖ´Ù.
¿¬°áÀÇ ÇØÁ¦°¡ ¿ä±¸ ¸Þ½ÃÁöÀÇ Entity-BodyÀÇ ³¡À» ÀǹÌÇÒ ¼ö´Â ¾ø´Ù. ¿Ö³ÄÇÏ¸é ¼¹ö°¡ ÀÀ´äÀ» µ¹·Áº¸³»Áö ¾ÊÀ»
°¡´É¼ºÀÌ Àֱ⠶§¹®ÀÌ´Ù. ±×·¯¹Ç·Î ¿£ÅÍÆ¼¸¦ Æ÷ÇÔÇϰí ÀÖ´Â HTTP/1.0 ¿ä±¸ ¸Þ½ÃÁö´Â ¹Ýµå½Ã À¯È¿ÇÑ Content-Length
Çì´õ Çʵ带 °®°í ÀÖ¾î¾ß ÇÑ´Ù. ¸¸¾à ¿ä±¸ ¸Þ½ÃÁö°¡ ¿£ÅÍÆ¼¸¦ °®°í ÀÖÀ¸³ª Content-Length°¡ ¸í½ÃµÇ¾î ÀÖÁö ¾Ê°í,
¼¹ö°¡ ´Ù¸¥ Çʵå·ÎºÎÅÍ ±æÀ̸¦ ÀνÄÇÒ ¼ö ¾ø°í °è»êµµ ÇÒ ¼ö ¾ø´Ù¸é, ¼¹ö´Â 400 (bad request)¸¦ º¸³»¾î¾ß ÇÑ´Ù.
8. Method Á¤ÀÇ
HTTP/1.0 ÇÁ·ÎÅäÄÝ¿¡´Â ¿ä±¸ ¸Þ½ÃÁö¿¡ ÁöÁ¤ÇÏ´Â ´ë»ó¿¡ ´ëÇÑ È°¿ë ¹æ¹ý¿¡ ´ëÇÑ Ç¥½Ã¸¦ Çϵµ·Ï µÇ¾î Àִµ¥ method¶ó°í ÇÏ´Â °ÍÀÌ´Ù.
Áï, ÁöÁ¤ÇÑ Request-URI¿¡ ´ëÇØ º¸³»´Þ¶ó°í Àü¼Û ¿äû (GET) ÇÒÁö, ¼¹ö¿¡ Àü´ÞÇϰíÀÚ (POST) ÇÒÁö, ÇØ´ç
¹®¼ÀÇ Çìµå Á¤º¸ (HEAD) ¸¸À» Àü¼Û ¿äû ÇÒÁö, ÀÌ¿¡ ´ëÇÑ È°¿ë ¹æ¹ýÀ» ÁöÁ¤ÇÏ´Â °ÍÀÌ´Ù.
À§ ¼¼ °¡Áö method Á¾·ù À̿ܿ¡ Ãß°¡ÇÒ ¼öµµ ÀÖÁö¸¸, Ãß°¡ÀûÀÎ ±â´É ±¸ÇöÀÇ Å¬¶óÀÌ¾ðÆ®¿Í ¼¹ö¸¦ À§ÇØ °°Àº ¿ªÇÒÀ» ÇÏ´Â ´Ù¸¥ À̸§À¸·Î
method¸¦ ¸¸µé ¼ö´Â ¾ø´Ù.
8.1 GET
GET method´Â Request-URI¿¡¼ ÁöÁ¤ÇÑ ¾î¶² Á¤º¸À̵çÁö entity body·Î¼ Àü´ÞÇØ
´Þ¶ó°í ¿äûÇÏ´Â Àǹ̷μ ¾²ÀδÙ. Request-URI°¡ ¾î¶² ½ÇÇà ÇÁ·Î±×·¥À» ¸í½ÃÇÏ´Â °æ¿ì¿¡´Â ½ÇÇà ÇÁ·Î±×·¥ ÀÚü°¡ Àü´ÞµÇ´Â
°ÍÀÌ ¾Æ´Ï¶ó ½ÇÇàµÈ °á°ú°¡ ÀÀ´ä ¸Þ½ÃÁöÀÇ entity body·Î¼ Àü´ÞµÈ´Ù.
¿ä±¸ ¸Þ½ÃÁö¿¡ If-Modified-Since Çì´õ Çʵ尡 Æ÷ÇԵǾî ÀÖ´Ù¸é GETÀº Á¶°ÇºÎ
GETÀ¸·Îµµ µ¿ÀÛÇÒ ¼ö ÀÖ´Ù. ÀÌ °æ¿ìÀÇ GETÀÌ °¡Áö´Â Àǹ̴Â, ÁöÁ¤µÈ ÀÚ¿øÀÌ
If-Modified-Since¿¡ ÀÇÇØ ÁöÁ¤µÈ ÀÏÀÚ ÀÌÈÄ¿¡ ¼öÁ¤µÈ °ÍÀÏ °æ¿ì¿¡¸¸ Àü¼ÛÇ϶ó´Â °ÍÀÌ´Ù. ÀÌ Á¶°ÇÀ» ÀÌ¿ëÇÏ¿© ºÒÇÊ¿äÇÑ
µ¥ÀÌŸ Àü¼ÛÀ» ¸·À» ¼ö ÀÖ°í ÀÌ¹Ì Ä³½ÃµÇ¾î ÀÖ´Â µ¥ÀÌŸ¸¦ »ç¿ëÀÚ¿¡°Ô Àü´ÞÇØÁÜÀ¸·Î½á ³×Æ®¿öÅ©ÀÇ È°¿ë¼ºÀ» ³ôÀÏ ¼ö ÀÖ´Ù.
8.2 HEAD
HEAD method´Â, ÀÀ´ä ¸Þ½ÃÁöÀÇ Entity-Body¿¡ ¾î¶² ³»¿ëµµ ½Ç¾î º¸³»¼´Â ¾È µÈ´Ù´Â Á¡À»
Á¦¿ÜÇϰí´Â GET method¿Í ¶È°°´Ù. HEAD ¿ä±¸ ¸Þ½ÃÁö¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î HTTP Çì´õ¿¡ Æ÷ÇԵǴ µ¥ÀÌŸ
ÇüÅ Á¤º¸´Â (metainformation, 4.6Àý ÂüÁ¶) GET ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î Àü´ÞµÇ´Â Á¤º¸¿Í µ¿ÀÏÇØ¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ
HEAD method´Â Request-URI¿¡ ÀÇÇØ ÁöÁ¤µÇ´Â ÀÚ¿ø¿¡ ´ëÇØ Entity-Body¿¡
½ÇÁ¦ ³»¿ëÀ» °¡Á®¿ÀÁö ¾Ê´õ¶óµµ ÀÚ¿ø¿¡ ´ëÇÑ ¿ÜÇü Á¤º¸ (metainformation) ȹµæÀ» À§ÇØ »ç¿ëÇÒ ¼ö ÀÖ´Ù. À̰ÍÀ» Ȱ¿ëÇÏ¿© ÀÚ¿ø¿¡ ´ëÇÑ
À¯È¿¼º, Á¢±Ù¼º, ÃÖ±Ù ¼öÁ¤ Á¤º¸ µî¿¡ ´ëÇÑ °Ë»ç¸¦ ¼öÇàÇÒ ¼ö ÀÖ´Ù.
¿©±â¼ Á¶°ÇºÎ GET°ú ºñ½ÁÇÑ Á¶°ÇºÎ HEAD µ¿ÀÛÀº Çã¿ëÇÏÁö ¾Ê´Â´Ù. µû¶ó¼
If-Modified-Since Çì´õ Çʵ尡 HEAD ¿ä±¸ ¸Þ½ÃÁö¿¡ Æ÷ÇÔµÈ´Ù¸é ¹«½ÃÇϵµ·Ï ÇØ¾ß ÇÑ´Ù.
8.3 POST
POST ¿ä±¸ ¸Þ½ÃÁö´Â ¸Þ½ÃÁöÀÇ entity body¿¡ Æ÷ÇԵǾî ÀÖ´Â ÀÚ¿øÀ» Request-Line¿¡ ÀÖ´Â
Request-URI¿¡ ÁöÁ¤µÇ¾î ÀÖ´Â ´ë·Î ¼¹ö¿¡¼ ¼ö¿ëÇØ´Þ¶ó°í ¿äûÇÒ ¶§ ¾²ÀδÙ. Áï, POST´Â ´ÙÀ½°ú °°Àº
±â´ÉÀ» ¼öÇàÇϱâ À§ÇÑ ÇÑ °¡Áö ¹æ¹ýÀ¸·Î ¼³°èµÇ¾ú´Ù.
- ±âÁ¸ ¹®¼¿¡ ÁÖ¼®À» ºÙÀÏ ¶§
- BBS °Ô½ÃÆÇ, ¸ÞÀϸµ ¸®½ºÆ®, ´º½º±×·ì, ¶Ç´Â ±Û ¸ðÀ½ Àå¼Ò µî¿¡ ±ÛÀ» ¿Ã¸± ¶§
- ¾î¶² ÇÁ·Î±×·¥ÀÇ ½ÇÇàÀ» À§ÇØ form°ú °°Àº ƯÁ¤ ±Ô°ÝÀÇ µ¥ÀÌŸ¸¦ ³Ñ°ÜÁÙ ¶§
- ºÎ°¡ÀûÀÎ µ¿ÀÛÀ» ÅëÇØ µ¥ÀÌŸº£À̽º¸¦ È®ÀåÇϰíÀÚ ÇÒ ¶§
POST method¿¡ ÀÇÇØ ¼öÇàµÇ´Â ½ÇÁ¦ µ¿ÀÛÀº ¼¹ö¿¡ ÀÇÇØ °áÁ¤µÇ°í Åë»ó Request-URI¿¡ ÀÇÇØ
Á¿ìµÈ´Ù. Æ÷½ºÆÃµÇ´Â ´ë»óÀº, ÇϳªÀÇ ÈÀÏÀÌ ¾î´À µð·ºÅ丮¿¡ ÀÚ¸®ÇÏ°Ô µÇ°í ´º½º°¡ Æ÷½ºÆÃµÇ´Â ´º½º±×·ì¿¡ ¿Ã·ÁÁö°í ·¹Äڵ尡 µ¥ÀÌŸ º£À̽º°¡
µî·ÏµÇ´Â µî°ú ¶È°°Àº ¹æ½ÄÀ¸·Î ÁöÁ¤µÈ URI¿¡ ³õÀÌ°Ô µÈ´Ù.
POST´Â ´ë»ó ¼¹ö¿¡ ÇϳªÀÇ ÀÚ¿øÀ¸·Î¼ »ý¼ºµÉ Çʿ䰡 ¾ø°í ÃßÈÄÀÇ ÂüÁ¶¸¦ À§ÇØ Á¢±Ù °¡´ÉÇØ¾ß ÇÒ Çʿ䵵 ¾ø´Ù. Áï,
POST method¿¡ ÀÇÇØ ¼öÇàµÇ´Â µ¿ÀÛÀº Æ÷½ºÆÃ µÇ´Â entity°¡ URI¿¡ ÀÇÇØ ÁöÁ¤µÉ ¼ö ÀÖ´Â ÀÚ¿øÀÌ ¾Æ´Ï¾îµµ µÈ´Ù´Â
°ÍÀÌ´Ù. ÀÌ °æ¿ìÀÇ ÀûÀýÇÑ ÀÀ´ä °á°ú ÄÚµå´Â 200 (ok) ¶Ç´Â 204 (no content)°¡ µÉ °ÍÀε¥, ÀÀ´ä ¸Þ½ÃÁö¿¡ entity°¡
Æ÷ÇԵǾî ÀÖ´À³Ä ÀÖÁö ¾Ê´À³Ä¿¡ µû¶ó ±¸ºÐÀÌ µÉ °ÍÀÌ´Ù. ¾î¶² ÀÚ¿øÀÌ ´ë»ó ¼¹ö¿¡ »ý¼ºµÇ´Â °æ¿ì¶ó¸é ÀÀ´ä °á°ú ÄÚµå´Â 201(created)ÀÌ
µÇ¾î¾ß ÇÏ°í »óÅ Á¤º¸³ª »ý¼ºµÈ »õ ÀÚ¿ø¿¡ ´ëÇÑ Á¤º¸¸¦ ¾Ë·ÁÁÖ´Â entity°¡ Æ÷ÇԵǾî ÀÖ¾î¾ß ÇÑ´Ù.
HTTP/1.0ÀÇ ¸ðµç POST ¿ä±¸ ¸Þ½ÃÁö¿¡´Â Content-Length°¡ ¹Ýµå½Ã ÀÖ¾î¾ß Çϸç, ¼¹ö°¡
ÀÌ¿¡ ´ëÇÑ Á¤º¸¸¦ È®º¸ÇÏÁö ¸øÇÏ°Ô µÇ¸é 400(bad request) ¸Þ½ÃÁö¸¦ ÀÀ´äÇØ¾ß ÇÑ´Ù.
ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼´Â POST ¿ä±¸ ¸Þ½ÃÁö¿¡ ´ëÇÑ ÀÀ´äÀ» ij½ÌÇÒ Çʿ䰡 ¾ø´Ù. ¿Ö³ÄÇÏ¸é ¼¹ö°¡ ÃßÈÄÀÇ ¿ä±¸ ¸Þ½ÃÁö¿¡ ´ëÇÑ
ÀÀ´äÀ¸·Î¼ ¶È°°Àº ÀÀ´äÀ» ÇÒ °ÍÀÎÁö ¾Ë ¼ö°¡ ¾ø±â ¶§¹®ÀÌ´Ù.
9. »óÅ ÄÚµå Á¤ÀÇ (Status Code Definitions)
»óÅ Äڵ忡´Â ´ÙÀ½°ú °°Àº °ÍµéÀÌ Á¸ÀçÇϴµ¥, ÀÀ´ä ¸Þ½ÃÁö¿¡ Æ÷ÇԵǴ ¿ÜÇüÁ¤º¸ (metainformation)¿Í ÇØ´ç »óÅÂÄڵ带 ÀÏÀ¸Å³ ¼ö
ÀÖ´Â method¿¡ ´ëÇÑ ¼³¸íµµ ÇÔ²² Çϵµ·Ï ÇÑ´Ù.
9.1 Informational 1xx
ÀÌ »óÅÂÄÚµå Ŭ·¡½º´Â ÀÓ½ÃÀûÀÎ ÀÀ´äÀ» ÀǹÌÇϸç Status-Line°ú ¼±ÅÃÀûÀÎ Çì´õµé·Î ±¸¼ºµÇ¾î ºóÁٷμ ³¡À» ³ªÅ¸³½´Ù.
HTTP/1.0¿¡¼´Â ÀÌ Å¬·¡½º¿¡ ÇØ´çÇÏ´Â ¾î¶² »óÅÂÄڵ嵵 ¾ÆÁ÷ Á¤ÀÇÇÏÁö ¾Ê°í ÀÖÀ¸¸ç HTTP/1.0 ¿ä±¸¿¡ ´ëÇÑ À¯È¿ÇÑ ÀÀ´äÀ¸·Î¼ ÀÎÁ¤ÇÏÁöµµ
¾Ê´Â´Ù. ±×·¯³ª ÀÌ ÇÁ·ÎÅäÄÝ ±Ô¾à¿¡¼ ¹þ¾î³ª´Â ¸ñÀûÀ» À§ÇÑ ½ÇÇèÀûÀÎ ¿ëµµ·Î´Â Ȱ¿ëÇÒ ¼ö ÀÖ´Ù.
9.2 Successful 2xx
ÀÌ Å¬·¡½ºÀÇ »óÅÂÄÚµå´Â Ŭ¶óÀ̾ðÆ®ÀÇ ¿ä±¸°¡ ¼º°øÀûÀ¸·Î ¼ö½ÅµÇ¾î 󸮵Ǿú´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.
- 200 OK
- Ŭ¶óÀ̾ðÆ®ÀÇ ¿ä±¸°¡ ¼¹ö¿¡¼ ¼º°øÀûÀ¸·Î 󸮵ǾúÀ½À» Ç¥½ÃÇÑ´Ù. ÀÀ´ä°ú ÇÔ²² µ¹¾Æ¿À´Â Á¤º¸´Â ¿ä±¸ ¸Þ½ÃÁö¿¡ »ç¿ëµÈ method¿¡ µû¶ó
Ʋ¸®´Ù. Áï,
GET - ¿äû¹ÞÀº ÀÚ¿øÀÌ ÀÀ´ä ¼Ó¿¡ ¿£ÅÍÆ¼·Î Àü´ÞµÈ´Ù.
HEAD - ÀÀ´äÀº
Entity-Body°¡ ¾Æ´Ï¶ó Çì´õ Á¤º¸¸¦ °®°í ÀÖ¾î¾ß ÇÑ´Ù.
POST - µ¿ÀÛÀÇ °á°ú¸¦ ¼³¸íÇϰųª Æ÷ÇÔÇÏ´Â ¿£ÅÍÆ¼.
- 201 Created
- ¿ä±¸ ¸Þ½ÃÁö°¡ 󸮵ǾúÀ¸¸ç ÀÌ·Î½á »õ·Î¿î ÀÚ¿øÀÌ »ý¼ºµÇ¾ú´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. »õ·Î »ý¼ºµÈ ÀÚ¿øÀº ÀÀ´ä ¸Þ½ÃÁöÀÇ ¿£ÅÍÆ¼¸¦ ÅëÇØ Àü´ÞµÈ
URI¿¡ ÀÇÇØ ÂüÁ¶µÉ ¼öµµ ÀÖÀ¸¸ç ¹Ýµå½Ã ÀÌ·¸°Ô µÇ¾î¾ß ÇÒ ÇÊ¿ä´Â ¾ø´Ù. ¿ø¼¹ö¿¡¼´Â Status-Code¸¦ ¸¸µé±â Àü¿¡
ÀÚ¿øÀ» »ý¼ºÇÏ¿©¾ß Çϸç, ÇØ´ç µ¿ÀÛÀ» ¼¹ö°¡ Áï½Ã ¼öÇàÇÒ ¼ö ¾ø´Ù¸é ¼¹ö´Â ¾ðÁ¦ ÇØ´ç ÀÚ¿øÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ´ÂÁö ¾Ë¸² »çÇ×À» ÀÀ´ä ¸Þ½ÃÁö¿¡
Æ÷ÇÔ½ÃÄÑ¾ß ÇÑ´Ù. ±×·¸Áö ¾Ê´Ù¸é, ¼¹ö´Â 202 (accepted) ÀÀ´äÀ» º¸³»¾î¾ß ÇÑ´Ù. POST¸¸ÀÌ ÀÌ µ¿ÀÛÀ» ½ÇÇà½Ãų
¼ö ÀÖ´Ù.
- 202 Accepted
- ¿ä±¸ ¸Þ½ÃÁö¸¦ ¼ö½ÅÇÏ¿© ó¸®Çϰí ÀÖÁö¸¸ ¾ÆÁ÷ ¿Ï·áµÇÁö ¾ÊÀº »óÅ´Ù. ÀÌ ¿ä±¸´Â ½ÇÁ¦·Î ó¸® ¿Ï·áµÉ ¼öµµ ÀÖ°í ½ÇÆÐÇÒ ¼öµµ Àִµ¥,
½ÇÁ¦ 󸮸¦ ÇϰíÀÚ ÇÒ ¶§ Çã¿ëµÇÁö ¾Ê´Â µ¿ÀÛÀÏ ¼ö Àֱ⠶§¹®ÀÌ´Ù. ÀÌ¿Í °°Àº °æ¿ì¿¡ º°µµÀÇ »óÅÂÄڵ带 ´Ù½Ã Àü´ÞÇÒ ¼ö´Â ¾ø´Ù.
202 ÀÀ´äÀº ÀǵµÀûÀ¸·Î Àü´ÞÇÏÁö ¾Êµµ·Ï ÇÑ´Ù. ÀÌÀÇ ¸ñÀûÀº ÇÏ·ç¿¡ ÇÑ ¹ø¸¸ µ¿ÀÛÇØ¾ß Çϴ ó¸® »çÇ×ÀÌ ÀÖÀ» ¶§ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ ÀÌ
󸮰¡ ¿Ï·áµÉ ¶§±îÁö ¼¹ö¿Í ¿¬°áÀ» ¸Î°í¼ ±â´Ù¸®Áö ¾Ê¾Æµµ µÇ°Ô²û Çϱâ À§ÇؼÀε¥, ¼¹ö¿¡°Ô ÀÌ µ¿ÀÛÀ» À§ÇØ ÀÏ´Ü ¿ä±¸ ¸Þ½ÃÁö¸¦ ¼ö½ÅÇϵµ·Ï
Çϰí 202 ÀÀ´äÀ» º¸³»°í ¿¬°áÀ» ÇØÁ¦Çϵµ·Ï ÇÑ´Ù. ¼ö½ÅµÈ ¿ä±¸´Â ÀûÀýÇÑ ¶§¿¡ µ¿ÀÛ ¿Ï·áµÉ ¼öµµ ½ÇÆÐÇÒ ¼öµµ ÀÖ´Ù. ÀÌ ÀÀ´ä°ú ÇÔ²² µ¹¾Æ¿À´Â
¿£ÅÍÆ¼¿¡´Â ¿ä±¸ÀÇ ÇöÀç »óÅ¿¡ ´ëÇØ ÀνÄÇß´Ù´Â Á¤º¸°¡ µé¾î°¡ ÀÖ¾î¾ß Çϰí, »óÅ ¸ð´ÏÅÍ¿¡ ´ëÇÑ Æ÷ÀÎÅͳª ¿ä±¸°¡ ¾ðÁ¦ ó¸®µÉ °ÍÀÎÁö¿¡ ´ëÇÑ
ÃßÁ¤Ä¡¸¦ »ç¿ëÀÚ°¡ ¾Ë ¼ö ÀÖ°Ô Æ÷ÇԵǾî ÀÖ¾î¾ß ÇÑ´Ù.
- 204 No Content
- ¼¹ö°¡ ¿ä±¸ ¸Þ½ÃÁöÀÇ ³»¿ëÀ» ó¸®ÇÏ¿´À¸³ª ¼Û½ÅÃøÀ¸·Î µ¹·Áº¸³»ÁÙ ¾Æ¹«·± Á¤º¸°¡ ¾øÀ» ¶§ »ç¿ëÇÑ´Ù. ¸¸¾à Ŭ¶óÀÌ¾ðÆ®°¡ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®¶ó¸é
ÇØ´ç ¿ä±¸¸¦ ¸¸µé¾î³½ ¹®¼ ÆäÀÌÁöÀÇ ³»¿ëÀÌ ¹Ù²î¾î¼´Â ¾È µÈ´Ù. ÀÌ ÀÀ´äÀº ƯÈ÷ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®ÀÇ ÇöÀç ¹®¼ ¸ð½ÀÀ» ¹Ù²ÙÁö ¾Ê°í ¾î¶² ½ÇÇà
ÇÁ·Î±×·¥À̳ª ´Ù¸¥ µ¿À۵鿡 ´ëÇÑ ÀÔ·ÂÀ» ³ÖÀ» ¼ö ÀÖµµ·Ï ÇÑ´Ù. ÀÌ·¯ÇÑ 204 ÀÀ´äÀº ¿£ÅÍÆ¼ Çì´õÀÇ ÇüÅ·Π»õ·Î¿î
metainformationÀ» Æ÷ÇÔÇÒ ¼ö ÀÖ°í, À̰ÍÀº »ç¿ëÀÚ ¿¡ÀÌÀüÆ®ÀÇ ÇöÀç ¹®¼ ¸ð½À¿¡ Àû¿ëµÇ¾î¾ß ÇÑ´Ù.
9.3 Redirection 3xx
ÀÌ Å¬·¡½ºÀÇ »óÅÂÄÚµå´Â ÇØ´ç ¿ä±¸¸¦ ¼öÇàÇϱâ À§ÇØ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®¿¡ ÀÇÇØ ¼öÇàµÇ¾î¾ß ÇÒ Ãß°¡ÀûÀÎ µ¿ÀÛÀÌ ÀÖÀ½À» ³ªÅ¸³½´Ù. µÚÀÌÀº ¿ä±¸
¸Þ½ÃÁöÀÇ method°¡ GET ¶Ç´Â HEADÀÎ °æ¿ì¿¡, ÀÌ µ¿ÀÛÀº »ç¿ëÀÚ¿Í ¾Æ¹«·± »óÈ£µ¿ÀÛ ¾øÀÌ »ç¿ëÀÚ
¿¡ÀÌÀüÆ®¿¡ ÀÇÇØ °ð¹Ù·Î ¼öÇàµÉ ¼öµµ ÀÖ´Ù. »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â 5¹ø ÀÌ»ó ¿ä±¸ ¸Þ½ÃÁö¸¦ ÀÚµ¿ÀûÀ¸·Î ¹æÇâÀüȯ (redirect) ½ÃÄѼ´Â ¾È µÇ¸ç,
ÀÌ·± ¹æÇâÀüȯÀÌ ÀÚÁÖ ¹«ÇÑ·çÇÁ¸¦ µ¹°Ô ¸¸µé ¼ö Àֱ⠶§¹®ÀÌ´Ù.
- 300 Multiple Choices
- ÀÌ ÀÀ´äÄÚµå´Â HTTP/1.0 ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ÀÇÇØ Á÷Á¢ÀûÀ¸·Î »ç¿ëµÇÁö ¾Ê°í, 3xx Ŭ·¡½º ÀÀ´äÀ» ÇØ¼®Çϱâ À§ÇÑ ±âº» »óÅÂÄÚµå·Î¼
Ȱ¿ëÇÑ´Ù. ¿äû¹ÞÀº ÀÚ¿øÀÌ Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ Àå¼Ò¿¡¼ °¡´ÉÇÒ ¼öµµ ÀÖ´Ù. ¿ä±¸ ¸Þ½ÃÁö°¡ HEAD method°¡ ¾Æ´Ï¶ó¸é
ÀÀ´äÀº ¹Ýµå½Ã ÀÚ¿øÀÇ Æ¯¼ºÀ̳ª À§Ä¡ Á¤º¸µéÀ» ´ãÀº ¿£ÅÍÆ¼¸¦ °¡Á®¾ß Çϰí, »ç¿ëÀÚ³ª »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â ÀÌ Á¤º¸·ÎºÎÅÍ °¡Àå ÀûÀýÇÑ °ÍÀ» ¼±ÅÃÇÒ
¼ö ÀÖ°Ô µÈ´Ù. ¸¸¾à ¼¹ö°¡ ÀûÀýÇÑ ¼±ÅÃÀ» ÇÏ¿´´Ù¸é Location Çʵ忡 URLÀ» Æ÷ÇÔÇϰí ÀÖ¾î¾ß ÇÏ°í »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â
ÀÚµ¿ ¹æÇâÀüȯÀ» À§ÇØ ÀÌ Çʵ带 »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.
- 301 Moved Permanently
- ¿äû¹ÞÀº ÀÚ¿ø¿¡ ´ëÇØ »õ·Î¿î ¿µ±¸Àû URLÀÌ È®Á¤µÇ°í ÀÌ URLÀ» ÀÌ¿ëÇÏ¿© ¾ÕÀ¸·Î ÀÚ¿øÀ» Ȱ¿ëÇÏ°Ô µÈ´Ù. ¸µÅ© ÀÛ¼º ±â´ÉÀ» °¡Áø
Ŭ¶óÀÌ¾ðÆ®´Â ¼¹ö·ÎºÎÅÍ Àü´Þ¹ÞÀº ÀÌ ¸µÅ©¸¦ Request-URIÀÇ ¸µÅ©·Î¼ Àç¼³Á¤ÇÏ¿©¾ß ÇÑ´Ù.
ÀÌ »õ·Î¿î URLÀº ÀÀ´ä ¸Þ½ÃÁöÀÇ Location Çʵå·ÎºÎÅÍ Àü´ÞµÈ °ÍÀ̾î¾ß Çϴµ¥, HEAD ¿ä±¸ÀÇ
°æ¿ì°¡ ¾Æ´Ï¶ó¸é ÀÀ´äÀÇ Entity-Body´Â »õ·Î¿î URL¿¡ ´ëÇÑ ÇÏÀÌÆÛ¸µÅ©¸¦ °¡Áø ©¸·ÇÑ ¼³¸í¹®À» °®°í ÀÖ¾î¾ß ÇÑ´Ù.
¸¸¾à POST ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î 301 »óÅÂÄڵ尡 ¼ö½ÅµÇ¸é »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â »ç¿ëÀڷκÎÅÍ È®ÀÎÀ» ¹ÞÁö ¾ÊÀº »óÅ¿¡¼
¿ä±¸ ¸Þ½ÃÁö¸¦ ÀÚµ¿ ¹æÇâÀüȯ ½ÃÄѼ´Â ¾È µÈ´Ù. ¿Ö³ÄÇϸé À̰ÍÀÌ ¿ä±¸ ¸Þ½ÃÁö¸¦ ¹ß»ý½ÃŲ »óȲ Á¶°Ç¿¡ ´ëÇÑ º¯È¸¦ ÁÙ ¼ö Àֱ⠶§¹®ÀÌ´Ù.
- [ÁÖ] 301 »óÅÂÄڵ带 ¼ö½ÅÇÑ ÈÄ¿¡ POST ¿ä±¸¸¦ ÀÚµ¿ ¹æÇâÀüȯ½Ã۸é ÇöÀçÀÇ ¾î¶² »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â GET ¿ä±¸·Î
¹Ù²Ù¾î¹ö¸®´Â ¿À·ù»óȲÀ» ¸¸µé±âµµ ÇÑ´Ù.
- 302 Moved Temporarily
- ¿äû¹ÞÀº ÀÚ¿øÀ» ´Ù¸¥ URL·Î ÀÓ½ÃÀûÀ¸·Î µÎ´Â °ÍÀ» ¸»ÇÑ´Ù. ¹æÇâÀüȯÀÌ (redirection) °¡²û ¹Ù²î¾îÁú ¼ö Àֱ⠶§¹®¿¡
Ŭ¶óÀÌ¾ðÆ®´Â ¾ÕÀ¸·ÎÀÇ ¿ä±¸¸¦ À§ÇØ Request-URI¸¦ °è¼Ó »ç¿ëÇÏ¿©¾ß ÇÑ´Ù. URLÀº ÀÀ´ä ¸Þ½ÃÁöÀÇ
Location Çʵå·ÎºÎÅÍ ¾ò¾îÁø °ÍÀ̾î¾ß ÇÑ´Ù. HEAD ¿ä±¸ÀÇ °æ¿ì°¡ ¾Æ´Ï¶ó¸é ÀÀ´äÀÇ
Entity-Body´Â »õ·Î¿î URL¿¡ ´ëÇÑ ÇÏÀÌÆÛ¸µÅ©¸¦ °¡Áø ©¸·ÇÑ ¼³¸í¹®À» °®°í ÀÖ¾î¾ß ÇÑ´Ù.
¸¸¾à POST ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î 302 »óÅÂÄڵ尡 ¼ö½ÅµÇ¸é »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â »ç¿ëÀڷκÎÅÍ È®ÀÎÀ» ¹ÞÁö ¾ÊÀº »óÅ¿¡¼
¿ä±¸ ¸Þ½ÃÁö¸¦ ÀÚµ¿ ¹æÇâÀüȯ ½ÃÄѼ´Â ¾È µÈ´Ù. ¿Ö³ÄÇϸé À̰ÍÀÌ ¿ä±¸ ¸Þ½ÃÁö¸¦ ¹ß»ý½ÃŲ »óȲ Á¶°Ç¿¡ ´ëÇÑ º¯È¸¦ ÁÙ ¼ö Àֱ⠶§¹®ÀÌ´Ù.
- [ÁÖ] 302 »óÅÂÄڵ带 ¼ö½ÅÇÑ ÈÄ¿¡ POST ¿ä±¸¸¦ ÀÚµ¿ ¹æÇâÀüȯ½Ã۸é ÇöÀçÀÇ ¾î¶² »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â GET ¿ä±¸·Î
¹Ù²Ù¾î¹ö¸®´Â ¿À·ù»óȲÀ» ¸¸µé±âµµ ÇÑ´Ù.
- 304 Not Modified
- ¸¸¾à Ŭ¶óÀÌ¾ðÆ®°¡ Á¶°ÇºÎ GET ¿ä±¸¸¦ Àü´ÞÇϰí À̰ÍÀÌ Çã¿ëµÇÁö¸¸ If-Modified-Since
Çʵ忡 ¸í½ÃµÇ¾î ÀÖ´Â ³¯Â¥¿Í ½Ã°£ ÀÌÈÄ·Î ÇØ´ç ÀÚ¿øÀÌ ¼öÁ¤µÇÁö ¾Ê¾Ò´Ù¸é ¼¹ö´Â ÀÌ »óÅÂÄÚµå·Î ÀÀ´äÇÏ¿©¾ß Çϰí Ŭ¶óÀÌ¾ðÆ®¿¡°Ô
Entity-Body¸¦ º¸³»¼´Â ¾È µÈ´Ù. ÀÀ´ä ¸Þ½ÃÁö¿¡ Æ÷ÇԵǾî ÀÖ´Â Çì´õ Çʵå´Â ij½Ã °ü¸®ÀÚ¿Í °ü·ÃµÈ Á¤º¸³ª ¿£ÅÍÆ¼ÀÇ
Last-Modified ³¯Â¥¿Í ¹«°üÇÏ°Ô º¯°æµÉ ¼ö ÀÖ´Â Á¤º¸¸¸ Æ÷ÇÔÇϰí ÀÖ¾î¾ß ÇÑ´Ù. ÀÌ¿Í °ü·ÃµÈ Çì´õ Çʵå´Â
Date, Server, ¹× Expires µîÀÌ´Ù. ij½Ã´Â 304 ÀÀ´ä¿¡ µé¾îÀÖ´Â »õ·Î¿î
Çʵ尪À» ¹Ý¿µÇϰԲû ij½ÃµÇ¾î ÀÖ´Â ¿£ÅÍÆ¼¸¦ ÀûÀýÈ÷ ó¸®ÇÏ¿©¾ß (update) ÇÑ´Ù.
9.4 Client Error 4xx
4xx Ŭ·¡½ºÀÇ »óÅÂÄÚµå´Â Ŭ¶óÀÌ¾ðÆ®¿¡ ÀÇÇØ »ý±ä ¿À·ù »óȲµé¿¡ ´ëÇØ »ç¿ëÇÏ´Â °ÍÀÌ´Ù. Ŭ¶óÀÌ¾ðÆ®°¡ ¼¹ö¿¡°Ô º¸³»´Â ¿ä±¸ ¸Þ½ÃÁö¸¦ ¿ÏÀüÈ÷
ó¸®ÇÏÁö ¸øÇÑ »óÅ¿¡¼ 4xx ÀÀ´äÀ» ¹Þ°Ô µÉ ¶§, Ŭ¶óÀÌ¾ðÆ®´Â Áï½Ã ¼¹ö·Î º¸³»´Â µ¥ÀÌŸ Àü¼ÛÀ» Áß´ÜÇÏ¿©¾ß ÇÑ´Ù. HEAD
¿ä±¸¿¡ ´ëÇØ ÀÀ´äÇÒ ¶§¸¦ Á¦¿ÜÇÏ°í ¼¹ö´Â ÀϽÃÀûÀÌµç ¿µ±¸ÀûÀ̵ç ÀÌ ¿À·ù »óȲ¿¡ ´ëÇÑ ¼³¸í¹®À» °¡Áø ¿£ÅÍÆ¼¸¦ Æ÷ÇÔ½ÃÄÑ¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ »óÅÂÄÚµå´Â
¾î¶² Á¾·ùÀÇ ¿ä±¸ methodÀ̵ç Àû¿ëµÈ´Ù.
- [ÁÖ] ¸¸¾à Ŭ¶óÀÌ¾ðÆ®°¡ µ¥ÀÌŸ¸¦ º¸³»°í ÀÖ´Â ÁßÀ̶ó¸é TCP¿¡ °üÇÑ ¼¹ö ±¸ÇöÀº À¯ÀÇÇÏ¿©¾ß Çϴµ¥, Ŭ¶óÀÌ¾ðÆ®´Â ÀÚ½ÅÀÇ ÀÔ·Â
¿¬°áÀ» ÇØÁ¦Çϱ⿡ ¾Õ¼ ¼¹ö°¡ º¸³½ ÀÀ´ä ÆÐŶÀ» ¼ö½ÅÇßÀ½À» ÀνÄÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. Ŭ¶óÀÌ¾ðÆ®°¡ ¿¬°á ÇØÁ¦ ÈÄ¿¡µµ ¼¹ö¿¡°Ô µ¥ÀÌŸ¸¦ °è¼Ó
º¸³½´Ù¸é ¼¹ö´Â Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ÇØÁ¦ (reset) ÆÐŶÀ» º¸³»¾ß Çϰí, Ŭ¶óÀÌ¾ðÆ®´Â HTTP ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ÀÔ·Â ¹öÆÛÀÇ ³»¿ëÀ» ÀÐ¾î¼ ¶Ç
´Ù¸¥ µ¿ÀÛÀ» Çϱâ Àü¿¡ ¹öÆÛ¸¦ ¾ø¾Öµµ·Ï ÇÏ¿©¾ß ÇÑ´Ù.
- 400 Bad Request
- º¸³»Áø ¿ä±¸°¡ ¸Þ½ÃÁö Çü½Ä¿¡ ¸ÂÁö ¾Ê¾Æ¼ ¼¹ö°¡ ÀÌÇØÇÒ ¼ö ¾ø´Â °ÍÀ¸·Î °£ÁÖÇÏ¿© º¸³»´Â »óÅÂÄÚµåÀÌ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ¼öÁ¤À» ÇÏÁö ¾Ê°í
¶È°°Àº ¿ä±¸¸¦ ¹Ýº¹Çؼ ÇÒ ¼ö´Â ¾ø´Ù.
- 401 Unauthorized
- ¿ä±¸ ¸Þ½ÃÁö°¡ 󸮵DZâ À§ÇØ »ç¿ëÀÚ ÀÎÁõÀÌ ÇÊ¿äÇÒ ¶§°¡ ÀÖ´Ù. ÀÌ °æ¿ì¿¡´Â ¿äûµÈ ÀÚ¿ø¿¡ ´ëÇØ Àû¿ëµÇ´Â
challenge¸¦ Æ÷ÇÔ½ÃÄÑ ¼¹ö°¡ WWW-Authenticate (10.16Àý ÂüÁ¶) Çì´õ Çʵ带 ÀÀ´ä
¸Þ½ÃÁö¿¡ ½Ç¾î¼ º¸³½´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ÀûÀýÇÑ Authorization (10.2Àý ÂüÁ¶) Çì´õ Çʵå¿Í ÇÔ²² ¿ä±¸ ¸Þ½ÃÁö¸¦
´Ù½Ã º¸³½´Ù. ¿ä±¸ ¸Þ½ÃÁö°¡ ÀÌ¹Ì Authorization credentials¸¦ °®°í ÀÖ´Ù¸é, À̶§ÀÇ 401 ÀÀ´äÀº ÇØ´ç
credentials¿¡ ´ëÇØ ÀÎÁõÀÌ °ÅÀýµÇ¾ú´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ¸¸¾à 401 ÀÀ´äÀÌ ¾Õ¼ÀÇ ÀÀ´ä°ú °°Àº challenge¸¦ °®°í ÀÖ°í,
»ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ Àû¾îµµ ÇÑ ¹ø ÀÎÁõ ¿äûÀ» ÀÌ¹Ì ½ÃµµÇß´Ù¸é, À̶§ »ç¿ëÀÚ´Â ÀÀ´ä ¸Þ½ÃÁö ¼Ó¿¡ ÀÖ´Â ¿£ÅÍÆ¼ÀÇ ³»¿ëÀ» ¹Þ¾Æ¾ß ÇÑ´Ù. ¿Ö³ÄÇϸé
ÀÌ ¿£ÅÍÆ¼ ¼Ó¿¡ °ü·ÃµÈ °Ë»ç Á¤º¸°¡ µé¾îÀֱ⠶§¹®ÀÌ´Ù. HTTP Á¢±Ù Á¦¾î´Â 11Àå¿¡ ¼³¸íµÇ¾î ÀÖ´Ù.
- 403 Forbidden
- ¼¹ö°¡ ¿ä±¸ ¸Þ½ÃÁö¸¦ ÀÌÇØÇßÁö¸¸ ÀÌÀÇ ¼öÇàÀº °ÅÀýÇÒ ¼ö ÀÖ´Ù. ÀÎÁõ¿¡ ÀÇÇÑ Çã°¡ »çÇ×ÀÌ ¹Ýµå½Ã À̰ͱîÁö Çã¿ëÇÏ´Â °ÍÀº ¾Æ´Ò ¼ö
ÀÖÀ¸¸ç, ÀÌ °æ¿ì¿¡ ¿ä±¸°¡ °è¼Ó ¹Ýº¹µÇ¾î¼´Â ¾È µÈ´Ù. ¸¸¾à ¿ä±¸ ¸Þ½ÃÁöÀÇ method°¡ HEAD°¡ ¾Æ´Ï°í ¿ä±¸°¡ 󸮵ÇÁö
¾Ê´Â ÀÌÀ¯¸¦ ¼¹ö°¡ ¹àÈ÷°íÀÚ ÇÑ´Ù¸é ¿£ÅÍÆ¼ ¼Ó¿¡ ÀÌÀÇ ÀÌÀ¯¿¡ ´ëÇÑ Á¤º¸¸¦ ½Ç¾î¼ º¸³»µµ·Ï ÇÑ´Ù. ÀÌ »óÅÂÄÚµå´Â ¼¹ö°¡ ¿Ö ¿äûÀ» °ÅÀýÇß´ÂÁö
ÀÌÀ¯¸¦ ¹àÈ÷°í ½ÍÁö ¾ÊÀ» ¶§³ª ´Ù¸¥ ÀÀ´äÀº ÀûÀýÇÏÁö ¾ÊÀ» ¶§ Åë»ó »ç¿ëµÈ´Ù.
- 404 Not Found
- ¼¹ö°¡ Request-URI¿¡ ÇØ´çÇÏ´Â ¾Æ¹« °Íµµ ¹ß°ßÇÏÁö ¸øÇßÀ» ¶§ º¸³»´Â »óÅÂÄÚµåÀÌ´Ù. À̰ÍÀÌ ÀϽÃÀûÀÎ °ÍÀÎÁö
¿µ±¸ÀûÀÎ °ÍÀÎÁö¿¡ ´ëÇÑ Á¤º¸´Â º¸³»Áö ¾Ê´Â´Ù. ¸¸¾à ¼¹ö°¡ Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ¾²ÀÏ ¼ö ÀÖ´Â ÀÌ·± Á¤º¸Á¶Â÷ ÁÖ°í ½ÍÁö ¾Ê´Ù¸é, ÀÌ »óÅÂÄÚµå ´ë½Å¿¡
403 (forbidden) »óÅÂÄڵ带 ÁÙ ¼öµµ ÀÖ´Ù.
9.5 Server Error 5xx
5xx Ŭ·¡½ºÀÇ »óÅÂÄÚµå´Â ¼¹ö¿¡°Ô ÀÏ¾î³ ¿À·ù»óȲÀ̳ª ¿ä±¸ »çÇ×À» ó¸®ÇÒ ¼ö ¾øÀ» ¶§ º¸³»´Â °ÍÀÌ´Ù. ¸¸¾à Ŭ¶óÀÌ¾ðÆ®°¡ ¿ä±¸¸¦ ¿Ï·áÇÏÁö
¾Ê¾Ò´Âµ¥ 5xx »óÅÂÄÚµåÀÎ ÀÀ´äÀ» ¹Þ¾Ò´Ù¸é Áï½Ã ¼¹ö·Î º¸³»´Â µ¥ÀÌŸ Àü¼ÛÀ» Áß´ÜÇÏ¿©¾ß ÇÑ´Ù. HEAD ¿ä±¸¿¡ ´ëÇØ ÀÀ´äÇÒ ¶§¸¦
Á¦¿ÜÇÏ°í ¼¹ö´Â ÀϽÃÀûÀÌµç ¿µ±¸ÀûÀ̵ç ÀÌ ¿À·ù»óȲ¿¡ ´ëÇÑ ¼³¸íÀÌ µé¾îÀÖ´Â ¿£ÅÍÆ¼¸¦ ÇÔ²² Æ÷ÇÔ½ÃÄÑ¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ ÀÀ´äÄÚµå´Â ¾î¶² Á¾·ùÀÇ ¿ä±¸
method¿¡µµ Àû¿ëµÇ¸ç À̸¦ À§ÇÑ Çì´õ Çʵå´Â µû·Î ¾ø´Ù.
- 500 Internal Server Error
- ¼¹ö°¡ ¿äûµÈ ¿ä±¸ÀÇ Ã³¸®¸¦ ºÒ°¡´ÉÇÏ°Ô ÇÏ´Â ¿¹±âÄ¡ ¸øÇÑ »óȲÀ» ¸¸³µÀ» ¶§ º¸³»´Â »óÅÂÄÚµåÀÌ´Ù.
- 501 Not Implemented
- ¼¹ö°¡ ¿äûµÈ ¿ä±¸¿¡ ´ëÇÑ Ã³¸® ±â´ÉÀ» Áö¿øÇÒ ¼ö ¾øÀ» ¶§ÀÌ´Ù. À̰ÍÀº ¼¹ö°¡ ÀÌÇØÇÒ ¼ö ¾ø´Â ¿ä±¸ method¸¦ ¹Þ¾ÒÀ» ¶§³ª À̰ÍÀ»
¾î¶² ÀÚ¿ø¿¡ ´ëÇØ¼µç Àû¿ëÇÒ ¼ö ¾øÀ» ¶§ °¡Àå ÀûÀýÇÑ ÀÀ´äÀÌ µÈ´Ù.
- 502 Bad Gateway
- ¼¹ö°¡ °ÔÀÌÆ®¿þÀ̳ª ÇÁ¶ô½Ã·Î¼ µ¿ÀÛÇϰí ÀÖ´Â µ¿¾È¿¡ ¿ä±¸¸¦ ¼öÇàÇϵµ·Ï Çϱâ À§ÇØ Åë°úÇØ°¡´Â °æ·Î¿¡ ÀÖ¾î ´ÙÀ½ °æ·Î ¼¹ö
(upstream server) ·ÎºÎÅÍ ºÎÀûÀýÇÑ ÀÀ´äÀ» ¹ÞÀº °æ¿ì¿¡ »ç¿ëµÇ´Â °ÍÀÌ´Ù.
- 503 Service Unavailable
- ¼¹ö°¡ ÀϽÃÀûÀÎ °úºÎÇϳª ¼¹ö °ü¸®ÀÇ ¹®Á¦ ¶§¹®¿¡ Áö±Ý ÇöÀç¿¡ ÇØ´ç ¿ä±¸¸¦ ó¸®ÇÒ ¼ö ¾øÀ» ¶§ »ç¿ëµÈ´Ù. À̰ÍÀº ¾à°£ÀÇ ½Ã°£ Áö¿¬
ÈÄ¿¡´Â ´Ù½Ã ó¸®ÇÒ ¼ö ÀÖ´Â ÀϽÃÀû »óȲÀ̶õ Àǹ̸¦ °¡Áø´Ù.
- [ÁÖ] 503 »óÅÂÄÚµåÀÇ Á¸Àç´Â ¼¹ö°¡ °úºÎÇÏ »óÅÂÀÏ ¶§ ¹Ýµå½Ã À̰ÍÀ» »ç¿ëÇØ¾ß ÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÏ´Â °ÍÀº ¾Æ´Ï´Ù. ¾î¶²
¼¹ö ÇÁ·Î±×·¥Àº ¾Æ¿¹ ¿¬°áÀ» °ÅÀýÇϱ⵵ ÇÑ´Ù.
10. Çì´õ Çʵå Á¤ÀÇ (Header Field Definitions)
ÀÌ Àå¿¡¼´Â HTTP/1.0 ÇÁ·ÎÅäÄÝÀÇ Çì´õ ÇʵåµéÀÇ Á¤ÀÇ¿¡ ´ëÇÑ Ç¥Çö Çü½Ä°ú Á¤ÀÇ¿¡ ´ëÇÑ ³»¿ëÀ» ´Ù·é´Ù. ¿©±â¼ ¼Û½ÅÃø°ú ¼ö½ÅÃøÀº
Ŭ¶óÀÌ¾ðÆ®°¡ µÉ ¼öµµ ÀÖ°í ¼¹ö°¡ µÉ ¼öµµ ÀÖÀ¸¸ç ´©°¡ ¸Þ½ÃÁö¸¦ º¸³»°í ¹Þ´À³Ä¿¡ µû¶ó °áÁ¤µÈ´Ù.
10.1 Allow
Request-URI¿¡ ÀÇÇØ ÁöÁ¤µÇ´Â ´ë»óü Áö¿øÇÏ´Â methodsµéÀ» ³ª¿Çϰí ÀÖ´Ù. À̰ÍÀº ÁöÁ¤µÈ ¹®¼¿¡ ´ëÇØ Àû¿ëÇÒ
methodÀÇ Á¾·ùµéÀ» ¼ö½ÅÃø¿¡°Ô ¾Ë·ÁÁÖ±â À§ÇØ »ç¿ëµÈ´Ù. POST method¸¦ »ç¿ëÇÏ´Â ¿ä±¸ ¸Þ½ÃÁö¿¡´Â
Allow Çʵ尡 Çã¿ëµÇÁö ¾Ê´Â´Ù. ±×·¯¹Ç·Î Æ÷ÇԵǾî ÀÖ´Ù¸é ¹«½ÃÇÏ¿©¾ß ÇÑ´Ù.
´ÙÀ½°ú °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù.
Allow = "Allow" ":" 1#method
ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö ÀÖ´Ù.
Allow: GET, HEAD
ÀÌ Çʵå´Â Ŭ¶óÀÌ¾ðÆ®°¡ »ç¿ëÇÒ ¼ö ÀÖ´Â method¸¦ Á¦ÇÑÇÏ´Â µ¥ »ç¿ëµÈ´Ù. ±×·¯¹Ç·Î ÀÌ·¯ÇÑ ÁöÁ¤ »çÇ×À» ÁؼöÇÏ¿©¾ß Çϰí, ¿ø¼¹ö¿¡
ÀÇÇØ Çã¿ëµÇ´Â methodÀÇ Á¾·ù°¡ °áÁ¤µÈ´Ù.
Allow Çì´õ Çʵå´Â ¾î¶² method°¡ ¼¹ö¿¡ ±¸ÇöµÇ¾î Àִ°¡¸¦ ³ªÅ¸³»´Â °ÍÀº
¾Æ´Ï´Ù.
ÇÁ¶ô½Ã´Â ¸í½ÃµÇ¾î ÀÖ´Â method¸¦ ÀÌÇØÇÒ ¼ö ¾ø´Ù ÇØµµ Allow Çì´õ Çʵ带 °íÃļ´Â ¾È µÈ´Ù. À̰ÍÀº »ç¿ëÀÚ
¿¡ÀÌÀüÆ®°¡ ¿ø¼¹ö¿ÍÀÇ Åë½Å¿¡ ÀÖ¾î ´Ù¸¥ ¼ö´ÜÀ» »ç¿ëÇÒ ¼öµµ Àֱ⠶§¹®ÀÌ´Ù.
10.2 Authorization
ºê¶ó¿ìÀú°¡ ¼¹ö¿¡°Ô ¼ºñ½º ¿äûÀ» ÇÒ ¶§ ÀÚ½ÅÀÇ ½ÅºÐÀ» ¹àÈ÷°í ÀÎÁ¤¹Þ´Â µ¿ÀÛÀ» À§ÇØ »ç¿ëµÇ´Â ÇʵåÀÌ´Ù. 401 Unauthorized
ÀÀ´äÀ» ¼ö½ÅÇÑ ÀÌÈĶó¸é - ¿ä±¸ ¸Þ½ÃÁö ¼Ó¿¡ ÀÖ´Â Authorization Çì´õ Çʵ忡 ÀÇÇØ ÀÌ·ç¾îÁú ¼ö ÀÖ´Ù - ¹Ýµå½Ã ÀÌ
Çʵ带 »ç¿ëÇÒ ÇÊ¿ä´Â ¾ø´Ù. Authorization Çʵå´Â ¿äû¹ÞÀº ´ë»ó ÀÚ¿ø¿¡ ´ëÇÑ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®ÀÇ ÀÎÁõ Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â
credentials Á¤º¸·Î ±¸¼ºÇÑ´Ù.
Authorization = "Authorization" ":" credentials
À̰ÍÀ» º¸´Ù »ó¼¼È÷ ³ªÅ¸³»¸é ´ÙÀ½°ú °°´Ù.
Authorization = "Authorization" ":" credentials
credentials = basic-credentials | (auth-scheme #auth-param)
basic-credentials = "Basic" SP basic-cookie
basic-cookie =
userid-password = [token] ":" *TEXT
auth-scheme = token
auth-param = token "=" quoted-string
quoted-string = (<"> *(qdtext) <">)
qdtext = and CTLs, but including LWS>
HTTP Á¢±Ù ÀÎÁõÀº 11Àå¿¡ ¼³¸íµÇ¾î ÀÖ´Ù. ÇϳªÀÇ ¿ä±¸°¡ ÀÎÁõµÇ°í realmµµ ¸í½ÃµÇ¸é, ÀÌ realm
³»¿¡¼ °°Àº credentialsÀº ´Ù¸¥ ¸ðµç ¿ä±¸¿¡ ´ëÇØ À¯È¿ÇÏ¿©¾ß ÇÑ´Ù. Authorization Çʵ带
°¡Áø ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀº ij½ÃµÇ¾î¼´Â ¾È µÈ´Ù.
10.3 Content-Encoding
Entity Çì´õÀÇ Content-Encoding Çʵå´Â Àü¼Û ´ë»óÀÌ µÇ´Â °³Ã¼¿¡ ÁöÁ¤µÈ
media-type¿¡ ´ëÇÑ Ãß°¡ÀûÀÎ Á¤º¸¸¦ ³ªÅ¸³½´Ù. ¼ö½ÅÃøÀÇ ÀÔÀå¿¡¼ º¼ ¶§´Â Content-Type Çì´õ
Çʵ忡 ÁöÁ¤µÇ¾î ÀÖ´Â µ¥ÀÌŸ Çü½ÄÀ¸·Î ¿ø»ó º¹±¸Çϱâ À§ÇØ ¾î¶² µðÄÚµù ¾Ë°í¸®ÁòÀ» »ç¿ëÇØ¾ß ÇÒÁö °áÁ¤ÇÏ´Â ¿ªÇÒÀ»
Content-Encoding Çʵ尡 ÇÏ°Ô µÈ´Ù. À̰ÍÀº ÁÖ·Î ½ÇÁ¦ µ¥ÀÌŸ¿¡ ´ëÇÑ º¯Áú ¾øÀÌ µ¥ÀÌŸ ¾ÐÃàÀ» °¡´ÉÇÏ°Ô Çϱâ À§ÇØ
»ç¿ëµÈ´Ù.
Content-Encoding = "Content-Encoding" ":" content-coding
content-codingÀÇ ³»¿ëÀº 3.5Àý¿¡¼ »ìÆìº¼ ¼ö ÀÖÀ¸¸ç, ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö ÀÖ´Ù.
Content-Encoding: x-gzip
°á±¹
Content-Encoding˼
Request-URI¿¡ ÀÇÇØ ÁöÁ¤µÇ´Â ´ë»ó ÀÚ¿øÀÇ µ¥ÀÌŸ ¼Ó¼ºÀ»
³ªÅ¸³»´Â °ÍÀÌ´Ù. ±×·¯¹Ç·Î ´ë»ó ÀÚ¿øÀÌ ÀÎÄÚµùµÇ¾î ÀúÀåµÇ¾î ÀÖÀ» ¶§ ¼ö½ÅÃø¿¡¼ À̰ÍÀ» Ȱ¿ëÇϱ⿡ ¾Õ¼ µðÄÚµùÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù.
10.4 Content-Length
Entity Çì´õÀÇ Content-Length Çʵå´Â Entity-BodyÀÇ Å©±â¸¦ ¹ÙÀÌÆ® ´ÜÀ§·Î Ç¥½ÃÇÏ¿©
¼ö½ÅÃø¿¡°Ô ¾Ë·ÁÁÖ´Â ¿ëµµ·Î½á ¾²ÀδÙ. ¿ä±¸ ¸Þ½ÃÁöÀÇ method°¡ GETÀ̶ó¸é Àü¼ÛÇÏ´Â µ¥ÀÌŸÀÇ ½ÇÁ¦ Å©±â¶õ Àǹ̷μ
Àü´ÞµÇÁö¸¸, HEAD¶ó¸é Àü¼ÛµÇ¾î¾ß ÇÏ´Â µ¥ÀÌŸÀÇ Å©±â°¡ ¾î´À Á¤µµÀÎÁö ÀǹÌÇÏ´Â °ÍÀÌ´Ù. ´ÙÀ½°ú °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù.
Content-Length = "Content-Length" ":" 1*DIGIT
ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö ÀÖ´Ù.
Content-Length: 3495
ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼´Â ÀÌ ÇʵåÀÇ °ªÀ» media-type¿¡ ¹«°üÇÏ°Ô Entity-BodyÀÇ Àü¼Û Å©±â·Î¼
ÀνÄÇÏ¿©¾ß ÇÑ´Ù. Content-Length´Â Àü¼ÛÇÒ entity body¸¦ °¡Áø ¸ðµç HTTP ¿ä±¸ ¸Þ½ÃÁö¿¡ ÀÖ¾î¾ß Çϸç, 0
¶Ç´Â À̺¸´Ù Å« °ªÀ̾î¾ß ÇÑ´Ù. Content-Length °ªÀÌ ¾øÀ» ¶§ ÀÀ´ä ¸Þ½ÃÁöÀÇ entity bodyÀÇ ±æÀ̸¦ °áÁ¤ÇÏ´Â
¹æ¹ýÀº 7.2.2Àý¿¡ ¼³¸íµÇ¾î ÀÖ´Ù.
- [ÁÖ] ÀÌ ÇʵåÀÇ Àǹ̴ MIME¿¡¼ »ç¿ëµÇ´Â Àǹ̿ʹ Çö°ÝÈ÷ Ʋ¸®´Ù. MIME ¿¡¼´Â
"message/external-body" content-type¿¡ »ç¿ëµÇ´Â ¼±ÅÃÀû ÇʵåÀÌÁö¸¸, HTTP¿¡¼´Â Àü¼ÛÇϱ⿡ ¾Õ¼ Àü¼ÛÇÒ
¿£ÅÍÆ¼°¡ ÀÖÀ» ¶§¸¶´Ù »ç¿ëÇÏ´Â ÇʵåÀÌ´Ù.
10.5 Content-Type
Entity Çì´õÀÇ Content-Type Çʵå´Â ¼ö½ÅÃø¿¡°Ô Àü´ÞÇÏ´Â Entity-BodyÀÇ µ¥ÀÌŸ Çü½ÄÀ»
Ç¥½ÃÇÑ´Ù. ¿ä±¸ ¸Þ½ÃÁöÀÇ method°¡ GETÀ̶ó¸é Àü¼ÛÇÏ´Â µ¥ÀÌŸÀÇ Çü½ÄÀ̶õ Àǹ̷μ Àü´ÞµÇÁö¸¸, HEAD¶ó¸é
Àü¼ÛµÇ¾î¾ß ÇÏ´Â µ¥ÀÌŸÀÇ Çü½ÄÀÌ ¾î¶² °ÍÀÎÁö Ç¥½ÃÇÏ´Â ÀǹÌÀÌ´Ù. ´ÙÀ½°ú °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù.
Content-Type = "Content-Type" ":" media-type
media-type¿¡ ´ëÇÑ ¼³¸íÀº 3.6Àý¿¡ ÀÖÀ¸¸ç, ¿¹¸¦ µé¸é ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö ÀÖ´Ù.
Content-Type: text/html
¿£ÅÍÆ¼ÀÇ ¹Ìµð¾î Çü½ÄÀ» ÁöÁ¤Çϱâ À§ÇÑ Ãß°¡ÀûÀÎ »çÇ×Àº 7.2.1¿¡ ¼³¸íµÇ¾î ÀÖ´Ù.
10.6 Date
¸Þ½ÃÁö°¡ ¸¸µé¾îÁö´Â ³¯Â¥¿Í ½Ã°£À» ³ªÅ¸³¾ ¶§ ¾²À̸ç, RFC 822¿¡¼ Á¤ÀÇÇϰí ÀÖ´Â orig-date¿Í °°Àº ÀǹÌÀÌ´Ù.
ÀÌ Çʵå´Â 3.3Àý¿¡¼ ¼³¸íÇÏ´Â °Í°ú °°ÀÌ HTTP-date·Î Ç¥ÇöµÇ¸ç ¾Æ·¡¿Í °°´Ù.
Date = "Date" ":" HTTP-date
ÀÌÀÇ ¿¹´Â ´ÙÀ½°ú °°´Ù.
Date: Tue, 15 Nov 1994 08:12:31 GMT
¸Þ½ÃÁö°¡ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®³ª ¼¹ö¿ÍÀÇ Á÷Á¢ ¿¬°áÀ» ÅëÇØ ¼ö½ÅµÇ´Â °ÍÀ̶ó¸é ¼ö½ÅÃø¿¡¼´Â ÀÌ ³¯Â¥¸¦ ÇöÀç ³¯Â¥·Î °£ÁÖÇÒ ¼ö ÀÖ´Ù. HTTP
ÇÁ·ÎÅäÄÝ µ¿ÀÛÀÇ Ã¹ ½Ã¹ßÁ¡ÀÇ ÀÔÀå¿¡¼ º¸¸é, ³¯Â¥¶ó°í ÇÏ´Â Á¤º¸´Â ij½ÃµÇ¾î ÀÖ´ø Á¤º¸¸¦ °ËÁõÇϱâ À§ÇÑ Áß¿äÇÑ ¿ä¼ÒÀ̹ǷΠÀÀ´äÇÏ´Â ¼¹ö¿¡¼´Â Ç×»ó
Date Çì´õ¸¦ Æ÷ÇÔÇϰí ÀÖ¾î¾ß ÇÑ´Ù.
Ŭ¶óÀÌ¾ðÆ®´Â ¿£ÅÍÆ¼ ³»¿ëÀ» Æ÷ÇÔÇϰí ÀÖ´Â ¸Þ½ÃÁö¿¡ POST ¿ä±¸ÀÇ °æ¿ì¿¡¼¿Í °°ÀÌ Date Çì´õ Çʵ带
½Ç¾î¼ º¸³»¾ß ÇÑ´Ù. Date Çì´õ ÇÊµå ¾øÀÌ ¼ö½ÅµÈ ¸Þ½ÃÁö´Â, ¸Þ½ÃÁö°¡ ¼ö½ÅÃø¿¡¼ ij½ÃµÇ°Å³ª Date¸¦
¿ä±¸ÇÏ´Â ÇÁ·ÎÅäÄÝÀ» ÅëÇØ Áß°èµÈ´Ù¸é ¼ö½ÅÃø¿¡ ÀÇÇØ ³¯Â¥°¡ ÇÒ´çµÇ¾î¾ß ÇÑ´Ù.
ÀÌ·ÐÀûÀ¸·Î ³¯Â¥´Â ¿£ÅÍÆ¼°¡ »ý¼ºµÇ±â Á÷ÀüÀÇ ¼ø°£À» ¹Ý¿µÇØ¾ß ÇÑ´Ù. ½ÇÁ¦·Î´Â ¸Þ½ÃÁö »ý¼º µ¿¾È ¾ðÁ¦µçÁö »ý¼ºµÉ ¼ö ÀÖ´Ù.
- [ÁÖ] ÀÌ ¹®¼ ÀÌÀüÀÇ ¼³¸í¿¡¼´Â Entity-BodyÀÇ »ý¼º ³¯Â¥¸¦ ¾Ë¸®´Â Çʵå¶ó°í Á¤ÀÇÇÏ¿´´Ù. ÀÌ ¹®¼¿¡¼´Â
½ÇÁ¦ »ç¿ëÀ» ¿°µÎ¿¡ µÎ°í¼ Àǹ̸¦ ¹Ù²Ù¾ú´Ù.
10.7 Expires
Entity Çì´õÀÇ Expires Çʵå´Â Àü´ÞÇÏ´Â µ¥ÀÌŸ¸¦ Àǹ̾ø´Â ´ë»óÀ¸·Î °£ÁÖÇÏ´Â ½Ã±â¸¦ Ç¥½ÃÇÑ´Ù. ´Ù½Ã ¸»ÇØ, ½ÄǰÀÇ
À¯È¿±â°£ Ç¥½Ã¿Í °°ÀÌ ÀÏÁ¤ ±â°£ À¯È¿ÇÑ ´ë»ó¿¡ ´ëÇØ ±× ½Ã°¢À» Áö³ª¼´Â À¯È¿ÇÏÁö ¾Ê´Ù°í ÁöÁ¤ÇÒ ¶§ »ç¿ëÇÏ´Â °ÍÀÌ´Ù. ¸¸¾à ij½ÃµÇ¾î ÀÖ´Â µ¥ÀÌŸ¿¡
´ëÇØ ÀÌ·¸°Ô Ç¥½ÃµÇ¾î ÀÖÀ» ¶§¶ó¸é ÁöÁ¤ÇÑ ½Ã°¢ÀÌ Áö³ª°í ³ ´ÙÀ½¿¡´Â ij½ÃµÇ¾î ÀÖ´Â µ¥ÀÌŸ¸¦ Áö¿öµµ µÇ´Â °ÍÀÌ´Ù.
ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼´Â ÁÖ¾îÁø ³¯Â¥ ÀÌÈÄÀÇ ¿£ÅÍÆ¼´Â ij½ÃÇÏÁö ¾Ê¾Æ¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ Expires ÇʵåÀÇ Á¸Àç°¡ ¿ø·¡ ÇØ´ç
ÀÚ¿øÀÌ ÀÌ ½Ã°¢ ÀÌÀü ¶Ç´Â ÀÌÈÄ¿¡ º¯°æ µÇ¾ú´Ù°Å³ª »èÁ¦µÇ¾ú´Ù°Å³ª ÇÏ´Â °ÍÀ» ÀǹÌÇÏÁö´Â ¾Ê´Â´Ù. ±×·¯³ª Á¤º¸ Á¦°øÀÚÀÇ ÀÔÀå¿¡ À־ ÀÌ·² ¼ö
ÀÖ´Ù´Â °ÍÀ» ¾Ë°í Àְųª ÀǽÉÇØºÁ¾ß ÇÑ´Ù. Ç¥½Ã Çü½ÄÀº 3.3Àý¿¡ ÀÖ´Â HTTP-date¿¡ ÀÇÇØ Á¤ÀÇµÈ °ÍÀ» »ç¿ëÇÑ´Ù.
Expires = "Expires" ":" HTTP-date
ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö ÀÖ´Ù.
Expires: Thu, 01 Dec 1994 16:00:00 GMT
ÀÌ·¸°Ô ÁöÁ¤µÈ ³¯Â¥°¡ Date Çì´õ Çʵ忡 ÀÇÇØ ÁöÁ¤µÈ °Íº¸´Ù ¾Õ¼± ³¯Â¥°Å³ª °°Àº ³¯Â¥¶ó¸é ¼ö½ÅÃø¿¡¼´Â Æ÷ÇÔµÈ
entity¸¦ Àý´ë ij½ÃÇØ¼´Â ¾È µÈ´Ù. ÇØ´ç ÀÚ¿øÀÌ »ç¿ëÀÚ³ª ¾î¶² ½ÇÇà ÇÁ·Î±×·¥¿¡ ÀÇÇØ ÀÚÁÖ º¯°æµÉ °¡´É¼ºÀÌ ÀÖ´Â °ÍÀ̶ó¸é
Expires ³¯Â¥µµ ±×¸¸Å ¹Ý¿µµÇ¾î¾ß ÇÑ´Ù.
Expires Çʵå´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ®¿¡°Ô ȸéÇ¥½Ã¸¦ ´Ù½Ã ÇÏ°Ô Çϰųª (to refresh its display) ÀÚ¿øÀ»
´Ù½Ã ȹµæÇÏ´Â (to reload a resource) µîÀÇ ¿ëµµ·Î »ç¿ëÇÒ ¼ö ¾ø´Ù. ¿Ö³ÄÇϸé ÀÌÀÇ ¸ñÀûÀÌ Ä³½Ã ¸ÞÄ«´ÏÁò¿¡¸¸ Àû¿ëÇÏ´Â °ÍÀ̰í,
ÀÌ·± ¸ÞÄ«´ÏÁò¿¡¼´Â ÀÚ¿ø¿¡ ´ëÇÑ »õ·Î¿î ¿ä±¸°¡ µé¾î¿Ã ¶§ ÇØ´ç ÀÚ¿ø¿¡ ´ëÇÑ À¯È¿±â°£ »óŸ¦ È®ÀÎÇØºÁ¾ß Çϱ⠶§¹®ÀÌ´Ù.
»ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â Á¾Á¾ history ¸ÞÄ«´ÏÁòÀ» »ç¿ëÇϱ⵵ Çϴµ¥, ÀÌ °æ¿ì¿¡´Â ±âº»ÀûÀ¸·Î Expires ÇÊµå ±â´ÉÀ»
»ç¿ëÇÏÁö ¾Ê´Â °ÍÀ¸·Î ÇÑ´Ù.
- [ÁÖ] ÀÀ¿ë ÇÁ·Î±×·¥Àº Expires Çì´õ¿¡ ´ëÇÑ ¿©·¯°¡Áö À߸øµÈ ±¸Çö »óȲ¿¡¼µµ Àß µ¿ÀÛÇÒ ¼ö ÀÖµµ·Ï ¸¸µé¾î¾ß ÇÑ´Ù. ±×·¡¼
'0'³ª ºÎÀûÀýÇÑ ³¯Â¥ Çü½ÄÀÌ Àü´ÞµÉ ¶§´Â ±× Áï½Ã À¯È¿±â°£ Áö³µÀ½ÀÇ (expires immediately) Àǹ̷Π°£ÁÖÇÏ¿©¾ß ÇÑ´Ù.
10.8 From
¿ä±¸ ¸Þ½ÃÁöÀÇ From Çì´õ Çʵ忡´Â ºê¶ó¿ìÀú¸¦ »ç¿ëÇÏ¿© ¿ä±¸ ¸Þ½ÃÁö¸¦ º¸³½ »ç¿ëÀÚÀÇ E-mail ÁÖ¼Ò°¡ µé¾î°£´Ù. ÀÌ
ÁÖ¼Ò´Â RFC 822¿¡ mailbox·Î Á¤ÀǵǾî ÀÖ´Â °Í°ú °°ÀÌ µ¿ÀÛ ½Ã½ºÅÛÀÌ Ã³¸®ÇÒ ¼ö ÀÖ´Â (machine-usable)
°ÍÀ̾î¾ß ÇÑ´Ù. ´ÙÀ½°ú °°ÀÌ ±¸¼ºµÈ´Ù.
From = "From" ":" mailbox
ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö°¡ ÀÖ´Ù.
From: qkim@pec.etri.re.kr
ÀÌ·¯ÇÑ Çì´õ Á¤º¸¸¦ ÀÌ¿ëÇÏ¿© ÀÌ¿ëÀÚ¿¡ ´ëÇÑ Á¤º¸¸¦ ÃàÀûÇÒ ¼ö ÀÖÀ¸¸ç, ºÎÀûÀýÇÏ°Ô ¼ºñ½º ¿äûÀ» ÇÏ´Â »ç¿ëÀÚ³ª ¿øÇÏÁö ¾Ê´Â »ç¿ëÀÚ¸¦ ½Äº°ÇÏ´Â
¼ö´ÜÀ¸·Î Ȱ¿ëÇÒ ¼öµµ ÀÖ´Ù. ±×·¯³ª À̰ÍÀ» »ç¿ëÀÚ Á¢±Ù Á¦¾îÀÇ ¼ö´ÜÀ¸·Î¼ »ç¿ëÇØ¼´Â ¾È µÈ´Ù.
ÀÌ Çì´õ Á¤º¸´Â ¼ºñ½º ¿äûÇÑ ¿ä±¸ ¸Þ½ÃÁö¿¡ Æ÷ÇԵǾî ÀÖ´Â method¿¡ ´ëÇØ Ã¥ÀÓÀ» Áö´Â »ç¶÷À̶õ Àǹ̷μ ÇØ¼®µÈ´Ù. ƯÈ÷, ·Îº¿
¿¡ÀÌÀüÆ®¸¦ »ç¿ëÇÏ´Â °æ¿ì¿¡ ·Îº¿À» ¼öÇà½ÃŰ´Â »ç¶÷ÀÇ ¿¬¶ô Á¤º¸·Î¼ ¹Ýµå½Ã µé¾î°¡ ÀÖ¾î¾ß ÇÑ´Ù. À̰ÍÀ» ÅëÇØ ¼ö½ÅÃø¿¡¼ ¸¸¾à ¹®Á¦°¡ ¹ß»ýÇß´Ù¸é
°æÀ§ ¼³¸íÀ» ¿ä±¸ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
¿©±â¼ »ç¿ëÇÏ´Â E-mail ÁÖ¼Ò´Â ¿ä±¸ ¸Þ½ÃÁö¸¦ »ý¼º½ÃŰ´Â È£½ºÆ® ÁÖ¼Ò¿Í´Â º°°³·Î¼ 󸮵Ǿî¾ß ÇÑ´Ù. ±×·¡¾ß¸¸ ÇÁ¶ô½Ã ¼¹ö¸¦ Åë°úÇÏ´Â
°æ¿ì¿¡µµ ÃÖÃÊ ¼ºñ½º ¿äûÀÚÀÇ ÁÖ¼Ò°¡ ±×´ë·Î Àü´ÞµÉ ¼ö Àֱ⠶§¹®À̰í, ±×¸®°í ¹Ýµå½Ã ±×¸® µÇ¾î¾ß ÇÑ´Ù.
- [ÁÖ] ÀÌ Á¤º¸´Â Ŭ¶óÀÌ¾ðÆ®¿¡¼ »ç¿ëÀÚÀÇ µ¿ÀÇ ÇÏ¿¡ Àü´ÞµÇ¾î¾ß ÇÑ´Ù. À̰ÍÀº »ç¿ëÀÚÀÇ °³ÀÎ ÃëÇâ ¹®Á¦ÀÏ ¼öµµ ÀÖ°í, »ç¿ëÀÚ°¡
À§Ä¡ ÇÏ´Â °÷ÀÇ º¸¾È Á¤Ã¥¿¡ ÀÇÇØ¼ÀÏ ¼öµµ ÀÖÁö¸¸, ¹Ýµå½Ã »ç¿ëÀÚ°¡ ¿ä±¸ ¸Þ½ÃÁö¸¦ º¸³»±â Àü¿¡ From Çì´õ Çʵ带 ÇÔ²²
º¸³¾ °ÍÀÎÁö º¸³»Áö ¾ÊÀ» °ÍÀÎÁö ¶Ç´Â ¼öÁ¤ÇÒ °ÍÀÎÁö °áÁ¤ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
10.9 If-Modified-Since
¿ä±¸ ¸Þ½ÃÁöÀÇ If-Modiied-Since Çì´õ Çʵå´Â 8.1ÀÇ ¼³¸í¿¡¼¿Í °°ÀÌ GET method¿Í
ÇÔ²² Á¶°ÇºÎ µ¿ÀÛÀ¸·Î Ȱ¿ëµÈ´Ù. Áï, ºê¶ó¿ìÀú°¡ ¿ä±¸ÇÏ´Â ¹®¼¿¡ ´ëÇØ ¼¹ö´Â ÀÌ Çʵ忡 ÁöÁ¤µÇ¾î ÀÖ´Â ½Ã°¢ ÀÌÈÄ¿¡ ¼öÁ¤µÈ ÈÀϸ¸ Á¦°øÇØÁØ´Ù.
ÁöÁ¤ ½Ã°¢ ÀÌÈÄ¿¡ º¯°æµÇÁö ¾Ê¾Æ¼ ÇØ´ç ¹®¼¸¦ Àü´ÞÇÏÁö ¾ÊÀ» °æ¿ì¿¡´Â Entity-Body ¾øÀÌ 304 (not
modified) ÀÀ´ä¸¸ º¸³½´Ù. ´ÙÀ½°ú °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù.
If-Modified-Since = "If-Modified-Since" ":" HTTP-date
ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö°¡ ÀÖ´Ù.
If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT
Á¶°ÇºÎ GET method´Â ÁöÁ¤µÈ ÀÚ¿øÀÌ If-Modified-Since Çì´õ¿¡ ÀÇÇØ ÁÖ¾îÁø ³¯Â¥ ÀÌÈÄ¿¡
¼öÁ¤µÈ °æ¿ì¿¡¸¸ Àü´ÞÇϵµ·Ï ÇÏ´Â °ÍÀÌ´Ù. À̰ÍÀ» °áÁ¤ÇÏ´Â ¾Ë°í¸®ÁòÀº ´ÙÀ½ÀÇ °æ¿ìµéÀ» Æ÷ÇÔÇÑ´Ù.
- ¸¸¾à Á¶°ÇºÎ GET ¿ä±¸°¡ 200 (ok)°¡ ¾Æ´Ñ ´Ù¸¥ ¾î´À »óŸ¦ À¯¹ßÇϰųª Àü´ÞµÈ
If-Modified-Since ³¯Â¥°¡ ºÎÀûÀýÇÑ °ÍÀ̶ó¸é ÀÀ´äÀº ÀϹÝÀûÀÎ GETÀÇ ±â´É°ú ¶È°°ÀÌ Ã³¸®µÇ¾î¾ß
ÇÑ´Ù. ¼¹öÀÇ ÇöÀç ½Ã°¢ ¹× ³¯Â¥º¸´Ù ´Ê´Â °æ¿ì¿¡´Â ºÎÀûÀýÇÑ °ÍÀÌ´Ù.
- ÀÚ¿øÀÌ If-Modified-Since ³¯Â¥ ÀÌÈÄ·Î ¼öÁ¤µÇ¾ú´Ù¸é ÀÀ´äÀº ÀϹÝÀûÀÎ GET¿¡¼ÀÇ °æ¿ì¿Í
¶È°°ÀÌ Ã³¸®µÇ¾î¾ß ÇÑ´Ù.
- ÀÚ¿øÀÌ If-Modified-Since ³¯Â¥ ÀÌÈÄ·Î ¼öÁ¤µÇÁö ¾Ê¾Ò´Ù¸é ¼¹ö´Â 304 (not modified) ÀÀ´äÀ»
µ¹·ÁÁØ´Ù.
- [ÁÖ] ¿©±â¿¡¼ »ç¿ëÇÏ´Â '³¯Â¥'¶ó´Â ¿ë¾î´Â 3.3ÀýÀÇ Àǹ̴ë·Î ¾²À̰í Àֱ⠶§¹®¿¡ ´Ü¼øÇÑ ÀÏÀÚ¸¸ ÀǹÌÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó
3.3Àý¿¡ ¼³¸íµÇ¾î ÀÖ´Â °Íó·³ ±× ½ÃÁ¡ÀÇ ½Ã°¢, ¿äÀÏ µîÀÇ »çÇ×µµ Æ÷ÇÔÇÏ´Â Àǹ̷Π¾²À̰í ÀÖ´Ù.
ÀÌ·¯ÇÑ ±â´ÉÀÇ ¸ñÀûÀº ªÀº µ¥ÀÌŸ ±³È¯ÀÇ ¹æ¹ýÀ» ÅëÇØ È¿°úÀûÀ¸·Î ij½Ã Á¤º¸¸¦ °»½ÅÇϱâ À§ÇÔÀÌ´Ù.
10.10 Last-Modified
Entity Çì´õ Çʵ忡 µé¾î°¡´Â Last-Modified Çʵå´Â ¼Û½ÅÃø¿¡¼ ÀÌ ¹®¼ÀÇ ¸¶Áö¸· ÀÛ¾÷ ÀÏÀÚ¿Í ½Ã°£À» ¾Ë·ÁÁÖ´Â
¿ëµµ·Î ¾²ÀδÙ. ÀÌÀÇ Á¤È®ÇÑ Àǹ̴ ¼ö½ÅÃøÀÌ ÀÌ ¹®¼¸¦ ¾î¶»°Ô ó¸®ÇØ¾ß Çϴ°¡¸¦ ¾Ë·ÁÁÖ´Â °ÍÀÌ´Ù. ¸¸¾à ¼ö½ÅÃø¿¡¼ ¼ö½ÅÇÏ´Â ¹®¼ÀÇ
Last-Modified ³¯Â¥°¡ ¼ö½ÅÃø¿¡ ¶È°°ÀÌ ÀúÀåµÇ¾î ÀÖ´Â º¹»çº» ¹®¼ÀÇ ³¯Â¥ ÀÌÈÄ °ÍÀ̶ó¸é ¼ö½ÅÃøÀº ¾Õ¼ ÀúÀåµÈ ¹®¼¸¦
¹«È¿·Î¼ ÀνÄÇÏ¿© »èÁ¦ÇϵçÁö ´ëÄ¡ÇϵçÁö ±¸Çö»óÀÇ ¹®Á¦·Î¼ ÀûÀýÈ÷ ó¸®ÇÑ´Ù. ´ÙÀ½°ú °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù.
Last-Modified = "Last-Modified" ":" HTTP-date
ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö ÀÖ´Ù.
Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT
ÀÌ Çì´õ ÇʵåÀÇ Á¤È®ÇÑ ¶æÀº ¼Û½ÅÃøÀÇ ±¸Çö°ú ¿ø·¡ ´ë»ó ÀÚ¿øÀÇ Æ¯¼º¿¡ µû¶ó Á¿ìµÈ´Ù. ÈÀÏÀÇ °æ¿ì¿¡´Â ÈÀÏ ½Ã½ºÅÛ¿¡¼ÀÇ ÃÖÁ¾ ¼öÁ¤ ½Ã°¢ÀÌ
µÉ °ÍÀ̰í, µ¿ÀûÀ¸·Î º¯ÈµÇ´Â ºÎºÐÀ» °¡Áø ¿£ÅÍÆ¼¶ó¸é ÇØ´ç ºÎºÐ ¿ä¼Òµé¿¡ ´ëÇØ ÃÖÁ¾ ¼öÁ¤µÈ ½Ã°¢µéÀÇ ÁýÇÕ¿¡ ´ëÇÑ °¡Àå ÃֽŠ½Ã°¢À» ÀǹÌÇÑ´Ù.
¶ÇÇÑ µ¥ÀÌŸº£À̽º °ÔÀÌÆ®¿þÀÌÀÇ °æ¿ì¿¡¼¶ó¸é ·¹Äڵ忡 ´ëÇÑ °¡Àå ÃÖ±Ù °»½Å ½ÃÁ¡À» ÀǹÌÇÏ°Ô µÇ°í, °¡»ó °´Ã¼ (virtual objects)¿¡
´ëÇØ¼¶ó¸é ³»ºÎ »óŰ¡ º¯ÈµÈ ¸¶Áö¸· ½ÃÁ¡À» ÀǹÌÇÏ´Â °ÍÀÌ´Ù.
10.11 Location
ÀÀ´ä ¸Þ½ÃÁöÀÇ Location Çì´õ Çʵå´Â Request-URI¿¡ ÀÇÇØ ÁöÁ¤µÇ¾î ÀÖ´Â ´ë»óüÀÇ Á¤È®ÇÑ
À§Ä¡¸¦ Ç¥½ÃÇÑ´Ù. Redirection 3xx »óÅ ÄÚµåÀÇ ÀÀ´äÀ» À§ÇØ location Á¤º¸´Â ´ë»óü¿¡ ´ëÇÑ ÀÚµ¿ À§Ä¡ º¯È¯À»
(automatic redirection) À§ÇØ ¼¹ö°¡ °áÁ¤ÇÏ´Â URL·Î¼ Ç¥½ÃµÇ¾î¾ß ÇÑ´Ù. Request-URI¿¡¼´Â »ó´ëÀûÀÎ
°æ·Î·Î Ç¥½ÃµÉ ¼ö ÀÖ¾úÀ¸³ª, ¿©±â¼´Â Àý´ë °æ·Î¸¸ Ç¥½ÃµÇ¾î¾ß ÇÑ´Ù.
Location = "Location" ":" absoluteURI
ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö ÀÖ´Ù.
Location: http://www.w3.org/hypertext/WWW/NewLocation.html
Áï, LocationÀÇ ¿ëµµ´Â, ¾î´À URI·Î ¿ä±¸ ¸Þ½ÃÁö¸¦ ¼ö½ÅÇÑ ¼¹ö°¡ ÇØ¼®À» ÇØº¸´Ï Ŭ¶óÀÌ¾ðÆ®°¡ ¿øÇÏ´Â ÀÚ¿øÀÇ
URI°¡ ´Ù¸¥ Àå¼Ò ¹× ´Ù¸¥ À̸§À¸·Î RedirectionµÇ¾î ÀÖÀ» ¶§, ÃÖÁ¾ ´ë»óÀÌ µÇ´Â ÀÌ ÀÚ¿øÀÇ »õ·Î¿î URI°¡
LocationÀÇ Àý´ë °æ·Î Á¤º¸·Î¼ Àü´ÞÇÏ´Â °ÍÀÌ´Ù.
10.12 Pragma
General HeaderÀÇ Pragma Çʵå´Â ¿ä±¸/ÀÀ´äÀÇ ¿¬¼â µ¿ÀÛ¿¡ µû¶ó ¾î´À ¼ö½ÅÃø¿¡ Àû¿ëµÇ´Â º¯¼ö·Î¼ ±¸Çö¿¡
°ü·ÃµÈ °ÍµéÀ» Æ÷ÇÔÇÏ´Â µ¥ ¾²ÀδÙ. ¸ðµç Pragma º¯¼ö´Â ÇÁ·ÎÅäÄÝÀÇ °üÁ¡¿¡¼ ¼±ÅÃÀûÀÎ µ¿ÀÛÀ» ÁöÁ¤ÇÑ´Ù. ÇÏÁö¸¸ ¾î¶² ½Ã½ºÅÛÀº
º¯¼öµé¿¡ ´ëÇÑ µ¿ÀÛÀÇ Àϰü¼ºÀ» ¿ä±¸Çϱ⵵ ÇÑ´Ù.
¾Æ·¡¿Í °°Àº Çü½ÄÀ¸·Î ¾²ÀδÙ.
Pragma = "Pragma" ":" 1#pragma-directive
pragma-directive = "no-cache" | extension-pragma
extension-pragma = token ["=" word]
¸¸¾à "no-cache" º¯¼ö°¡ ¿ä±¸ ¸Þ½ÃÁö¿¡ Á¸ÀçÇÑ´Ù¸é ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼´Â ÇØ´ç ÀÚ¿øÀÌ Ä³½ÃµÇ¾î ÀÖÀ»Áö¶óµµ ¿ø·¡ À§Ä¡Çϰí
ÀÖ´Â ¼¹ö·Î ¿ä±¸ ¸Þ½ÃÁö¸¦ Àü´ÞÇØ¾ß ÇÑ´Ù. À̰ÍÀº Ŭ¶óÀÌ¾ðÆ®°¡ º¸³»´Â ¿ä±¸¿¡ ´ëÇØ ½Å·ÚÇÒ ¼ö ÀÖ´Â ÀÀ´äÀ» ¹Þ°íÀÚ ÇÒ ¶§ ¾²ÀÏ ¼ö ÀÖÀ¸¸ç, ¶ÇÇÑ
Ŭ¶óÀÌ¾ðÆ®¿¡°Ô µ¥ÀÌŸ ¿À·ù¿Í °°ÀÌ ¹®Á¦°¡ ¹ß»ýÇÑ Ä³½Ã ¹®¼¸¦ °»½ÅÇÒ ¼ö ÀÖµµ·Ï ÇÒ ¶§ ¾²ÀÏ ¼ö ÀÖ´Ù.
Pragma º¯¼ö´Â ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌ ÇÁ·Î±×·¥¿¡ ´ëÇÑ Á߿伺°ú »ó°ü¾øÀÌ ÀÌ ÇÁ·Î±×·¥¿¡ ÀÇÇØ ±×´ë·Î Àü´ÞµÇ¾î¾ß ÇÑ´Ù. ¿Ö³ÄÇϸé ÀÌ º¯¼öµéÀº
¿¬ÀÌÀº ¿ä±¸/ÀÀ´äÀÇ °í¸®¸¦ (request/response chain) µû¶ó ¸ðµç ¼ö½ÅÃø¿¡ Àû¿ëµÉ ¼ö Àֱ⠶§¹®ÀÌ´Ù. ƯÁ¤ÇÑ ¼ö½ÅÃø ¸¸À» À§ÇÑ
º¯¼ö¸¦ µû·Î ÁöÁ¤ÇÒ ¼ö ¾ø´Ù.
10.13 Referer
¿ä±¸ ¸Þ½ÃÁöÀÇ Referer Çì´õ Çʵå´Â ¼¹ö¸¦ À§ÇØ »ç¿ëÇÏ´Â °ÍÀε¥, Ŭ¶óÀÌ¾ðÆ®°¡ ¿äûÇÑ
Request-URI Á¤º¸¸¦ ¾ò°ÔµÈ ¿ø·¡ ¹®¼ÀÇ ÁÖ¼Ò¸¦ ³ªÅ¸³¾ ¶§ ¾²ÀδÙ. Áï, A¶ó´Â ¹®¼¸¦ ºê¶ó¿ìÀú¿¡¼ º¸°í ÀÖÀ» ¶§ ÀÌ
¹®¼¿¡ Æ÷ÇÔµÈ ¸µÅ©¸¦ ÀÌ¿ëÇÏ¿© B ¹®¼¸¦ ¿äûÇÑ´Ù°í Çϸé, B ¹®¼¸¦ Áö½ÃÇÏ´Â Request-URI´Â A¶ó°í ÇÏ´Â ¹®¼¿¡¼
¾Ë·ÁÁø °ÍÀ̹ǷΠB ¹®¼¸¦ ¿äûÇÏ´Â ¿ä±¸ ¸Þ½ÃÁö¿¡ µé¾î°¡´Â Referer´Â A°¡ µÈ´Ù.
À̸¦ ÅëÇØ ¼¹ö´Â ÇϳªÀÇ ¹®¼¿¡ ´ëÇØ ¸µÅ©µÇ¾î ÀÖ´Â ÀÌÀü ¹®¼µéÀÇ back-links¸¦ ±¸¼ºÇÒ ¼ö ÀÖ°Ô µÇ°í, URL Á¤º¸°¡ À߸ø ±âÀçµÈ
¹®¼µéÀ» ÃßÀûÇÒ ¼ö ÀÖ°Ôµµ µÈ´Ù. ¸¸¾à »ç¿ëÀÚ°¡ Á÷Á¢ ÀÔ·ÂÇÑ URIÀÇ °æ¿ìó·³ Referer°¡ ¾ø´Â °æ¿ì¶ó¸é Àý´ë Referer¸¦ Àü´ÞÇØ¼´Â ¾È
µÈ´Ù.
Referer = "Referer" ":" ( absoluteURI | relativeURI )
ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö°¡ ÀÖ´Ù.
Referer: http://www.w3.org/hypertext/DataSources/Overview.html
¸¸¾à ºÎºÐÀûÀÎ URI°¡ ÁÖ¾îÁø´Ù¸é, À̰ÍÀº Request-URI¸¦ ±âÁØÀ¸·Î ÇÏ´Â »ó´ëÀû °æ·Î·Î¼ ÇØ¼®µÈ´Ù.
- [ÁÖ] ÀÌ·¯ÇÑ Referer Á¤º¸°¡ ³ªÅ¸³»´Â ¸µÅ© Á¤º¸¸¦ ¾Õ¼ÀÇ From Á¤º¸Ã³·³ °³ÀÎ ÃëÇâÀ̳ª º¸¾È ¹®Á¦ ¶§¹®¿¡ ¼¹ö¿¡°Ô
º¸³»Áö ¾Ê°íÀÚ ÇÒ ¼öµµ ÀÖ´Ù. ±×·¯¹Ç·Î ºê¶ó¿ìÀú¿¡¼´Â Referer Á¤º¸³ª From Á¤º¸¸¦ º¸³¾ °ÍÀÎÁö º¸³»Áö ¾ÊÀ» °ÍÀÎÁö °áÁ¤ÇÒ ¼ö ÀÖ´Â
¼ö´ÜÀ» Á¦°øÇÏ¿©¾ß ÇÑ´Ù.
10.14 Server
ÀÀ´ä ¸Þ½ÃÁöÀÇ Server Çì´õ Çʵå´Â ¿ä±¸ ¸Þ½ÃÁö¸¦ ó¸®Çϱâ À§ÇØ ¼¹ö°¡ »ç¿ëÇÏ´Â ÇÁ·Î±×·¥¿¡ ´ëÇÑ Á¤º¸¸¦ ´ã°í ÀÖ´Ù. ÀÌ
Çʵå´Â Á¦Ç°¿¡ °üÇÑ ¿©·¯ °¡Áö »çÇ×À» ´ãÀ» ¼öµµ ÀÖÀ¸¸ç ¼¹ö¿¡ ´ëÇÑ Á¤º¸¸¦ ¾Ë¸®´Â µ¥¿¡ »ç¿ëµÈ´Ù. ÀÌ·¸°Ô ¿©·¯ °¡Áö »çÇ×ÀÌ ¿Ã ¼ö ÀÖÀ¸¹Ç·Î Á¦ÀÏ
Áß¿äÇÑ ¿ä¼ÒºÎÅÍ ¸ÕÀú ³ª¿Çϵµ·Ï ÇÑ´Ù. ´ÙÀ½°ú °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù.
Server = "Server" ":" 1*( product | comment )
ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö ÀÖ´Ù.
Server: CERN/3.0 libwww/2.17
¸¸¾à ÀÌ·¯ÇÑ ÀÀ´ä ¸Þ½ÃÁö°¡ ÇÁ¶ô½Ã ¼¹ö¸¦ °ÅÄ¡°Ô µÈ´Ù¸é ÇÁ¶ô½Ã ¼¹ö´Â Àڽſ¡ ´ëÇÑ Á¤º¸¸¦ ÀÌ ³»¿ë¿¡ Ãß°¡Çؼ º¸³»¼´Â ¾È µÈ´Ù.
- [ÁÖ] ±×·±µ¥ ÀÌ·± Á¤º¸¸¦ ÅëÇØ ¾î´À ¼ÒÇÁÆ®¿þ¾î¸¦ »ç¿ëÇϰí ÀÖ´ÂÁö ¾Ë ¼ö ÀÖ°í À̸¦ ÅëÇØ ÀÌ¹Ì ¾Ë·ÁÁø º¸¾È Ãë¾àÁ¡À» Ȱ¿ëÇÏ¿©
ÇØÅ·À» ÇÒ ¼ö ÀÖÀ¸¹Ç·Î ¼¹ö ±¸ÇöÀÚµéÀº ÀÌ Á¤º¸¸¦ º¸³¾ °ÍÀÎÁö ¾È º¸³¾ °ÍÀÎÁö ¼±ÅÃÇÒ ¼ö ÀÖµµ·Ï ±¸ÇöÇÏ´Â °ÍÀÌ ÁÁ´Ù.
10.15 User-Agent
¿ä±¸ ¸Þ½ÃÁöÀÇ User-Agent Çʵå´Â »ç¿ëÀÚ°¡ ¿ä±¸ ¸Þ½ÃÁö¸¦ »ý¼º½ÃŰ´Â ºê¶ó¿ìÀú¿¡ ´ëÇÑ Á¤º¸¸¦ ³ªÅ¸³½´Ù. À̰ÍÀº
Åë°èÀûÀÎ ¸ñÀû, ÇÁ·ÎÅäÄÝ À§¹è¿¡ ´ëÇÑ ÃßÀû, ƯÁ¤ ºê¶ó¿ìÀúÀÇ ÇѰ踦 ÇÇÇϱâ À§ÇÑ ÀûÀýÇÑ ÀÀ´äÀÇ ¸ñÀûÀ¸·Î ºê¶ó¿ìÀú Á¾·ù ÀÎ½Ä µî°ú °°Àº ¸ñÀûÀ¸·Î
¾²ÀÏ ¼ö ÀÖ´Ù. ÀÌ Á¤º¸°¡ ¹Ýµå½Ã ÇÊ¿äÇÑ °ÍÀº ¾Æ´ÒÁö¶óµµ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â ¿ä±¸ ¸Þ½ÃÁö¿¡ ÀÌ Á¤º¸¸¦ Æ÷ÇÔÇÏ¿©¾ß ÇÑ´Ù. ÀÌ Çʵ忡´Â ¿©·¯ °³ÀÇ
Á¦Ç° ¸íĪÀÌ Æ÷Ç﵃ ¼ö ÀÖÀ¸¸ç (3.7Àý ÂüÁ¶) Á߿䵵¿¡ µû¶ó ¼ø¼´ë·Î ³ª¿ÇÏ¿©¾ß ÇÏ°í ¿ì¼± ¼øÀ§°¡ ³ôÀº °ÍÀ» ¾Õ¿¡´Ù ¸í½ÃÇϵµ·Ï ÇÑ´Ù. ´ÙÀ½°ú
°°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù.
User-Agent = "User-Agent" ":" 1*( product | comment )
ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö ÀÖ´Ù.
User-Agent: CERN-LineMode/2.15 libwww/2.17b3
- [ÁÖ] ÇöÀç ÇÁ¶ô½Ã ÀÀ¿ë ÇÁ·Î±×·¥µé °¡¿îµ¥ ¾î¶² °ÍÀº User-Agent Çʵ忡 ÀÖ´Â ¸ñ·Ï¿¡ ÀÚ½ÅÀÇ Á¦Ç° Á¤º¸¸¦ µ¡ºÙ¿©¼
º¸³»±âµµ ÇÑ´Ù. À̰ÍÀº ÇÁ·ÎÅäÄÝ Ã³¸®¿¡ ÀÖ¾î ¾Ö¸ÅÇÏ°Ô ¸¸µé±â ¶§¹®¿¡ ±ÇÀå»çÇ×ÀÌ ¾Æ´Ï´Ù.
10.16 WWW-Authenticate
»ç¿ëÀÚÀÇ ¿ä±¸ ¸Þ½ÃÁö¿¡ ÁöÁ¤µÇ¾î ÀÖ´Â Á¤º¸°¡ º¸¾ÈÀÌ ÇÊ¿ä·Î ÇÏ´Â °ÍÀ̶ó¸é ¼¹ö´Â ¼ºñ½º¸¦ Á¦°øÇØÁÖ±â À§ÇØ »ç¿ëÀÚÀÇ ÀÎÁõÀ» ¿ä±¸ÇÒ °ÍÀÌ´Ù.
±×·¯¹Ç·Î ¼¹ö´Â WWW-Authenticate Çʵ带 Æ÷ÇÔ½ÃÄÑ ÀÀ´ä ¸Þ½ÃÁö¸¦ ºê¶ó¿ìÀú¿¡°Ô Àü´ÞÇϵµ·Ï ÇÑ´Ù. ÀÌ·¯ÇÑ
WWW-Authenticate Çì´õ Çʵå´Â 401 (unauthorized) ÀÀ´ä ¸Þ½ÃÁö¿¡´Â ¹Ýµå½Ã Æ÷ÇԵǾî¾ß ÇÏ´Â °ÍÀÌ´Ù.
´ÙÀ½°ú °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù.
WWW-Authenticate = "WWW-Authenticate" ":" 1#challenge
HTTP ÇÁ·ÎÅäÄÝ¿¡¼ÀÇ »ç¿ëÀÚ ÀÎÁõ °úÁ¤Àº 11Àå¿¡¼ ¼³¸íµÇ°í ÀÖ´Ù. Çʵ尡 Çϳª ÀÌ»óÀÇ challenge¸¦ °®°í Àְųª
Çϳª ÀÌ»óÀÇ WWW-Authenticate Çì´õ Çʵ尡 ÀÖ´Ù¸é »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â WWW-Authenticate
ÇÊµå °ªÀ» ÆÄ½ÌÇÒ ¶§ Ưº°ÇÑ ÁÖÀǸ¦ ±â¿ï¿©¾ß ÇÑ´Ù. ¿Ö³ÄÇϸé challengeÀÇ ³»¿ëÀÌ ","·Î¼ ±¸ºÐµÇ´Â
ÀÏ·ÃÀÇ ÀÎÁõ ÆÄ¶ó¹ÌÅÍ ¸®½ºÆ®¸¦ Æ÷ÇÔÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù.
11. Á¢±Ù ÀÎÁõ (Access Authentication)
HTTP/1.0 ÇÁ·ÎÅäÄÝ¿¡¼´Â ¼¹ö°¡ Ŭ¶óÀ̾ðÆ®ÀÇ ¿ä±¸¿¡ ´ëÇØ °Ë»çÇϰí (challenge) Ŭ¶óÀÌ¾ðÆ®°¡ ÀÎÁõ Á¤º¸¸¦ º¸³»´Â ´Ü¼øÇÑ
°Ë»ç/ÀÀ´ä ÀÎÁõ ¸ÞÄ«´ÏÁòÀ» (challenge-response authentication mechanism) »ç¿ëÇϰí ÀÖ´Ù. HTTP¿¡¼´Â ÀÎÁõ
¹æ½ÄÀ» Ç¥½ÃÇϱâ À§ÇØ È®Àå °¡´ÉÇÏ¸ç ´ë¼Ò¹®ÀÚ °¡¸®Áö ¾Ê´Â ÅäÅ«À» »ç¿ëÇϰí ÀÖ°í ÀÌ¿¡ µÚÀ̾î ","·Î ±¸ºÐµÇ´Â
attribute-value ½ÖÀ» ¸í½ÃÇÑ´Ù. attribute-value¿¡´Â ÀÎÁõ¿¡ ÀÖ¾î ÇÊ¿äÇÑ ÆÄ¶ó¹ÌÅÍ Á¤º¸°¡ µé¾î°£´Ù.
´ÙÀ½°ú °°Àº Ç¥Çö½ÄÀ» Ȱ¿ëÇϵµ·Ï ÇÑ´Ù.
auth-scheme = token
auth-param = token "=" quoted-string
401 (unauthorized) ÀÀ´ä ¸Þ½ÃÁö´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ®ÀÇ ÀÎÁõ °Ë»ç¸¦ À§ÇØ ¿ø¼¹ö¿¡ ÀÇÇØ »ç¿ëµÇ´Â °ÍÀÌ´Ù. ÀÌ·¯ÇÑ ÀÀ´äÀº
¿äûµÈ ÀÚ¿ø¿¡ ´ëÇØ Àû¿ëÇÒ ¼ö ÀÖ´Â Àû¾îµµ ÇϳªÀÇ
challenge¸¦ Æ÷ÇÔÇÏ´Â
WWW-Authenticate
Çì´õ Çʵ带 °®°í ÀÖ¾î¾ß ÇÑ´Ù. ´ÙÀ½°ú °°Àº °°Àº Ç¥Çö½ÄÀ¸·Î ³ªÅ¸³¾ ¼ö ÀÖ´Ù.
WWW-Authenticate = "WWW-Authenticate" ":" 1#challenge
challenge = auth-scheme 1*SP realm *("," auth-param)
auth-scheme = token
realm = "realm" "=" realm-value
realm-value = quoted-string
auth-param = token "=" quoted-string
realm attribute´Â ´ë¼Ò¹®ÀÚ¸¦ °¡¸®Áö ¾ÊÀ¸¸ç challenge¸¦ °¡Áö´Â ¸ðµç ÀÎÁõ ü°èµé¿¡ ´ëÇØ
ÇÊ¿äÇÑ °ÍÀÌ´Ù. realm value´Â ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇϸç Á¢±ÙÇϰí ÀÖ´Â ¼¹öÀÇ root URL°ú °áÇÕÇÏ¿© Ç¥½ÃµÇ¾î º¸È£ÇÒ ´ë»ó ¹üÀ§¸¦
¼³Á¤ÇÑ´Ù. ÀÌ·¯ÇÑ realmµéÀº ¼¹ö¿¡ ÀÖ´Â º¸È£ ÀÚ¿øµé¿¡ ´ëÇØ ¿©·¯ °³ÀÇ º¸È£ ¿µ¿ªÀ¸·Î ³ª´ ¼ö ÀÖ°Ô ÇØÁÖ¸ç, °¢°¢Àº µ¶ÀÚÀûÀÎ ÀÎÁõ ü°è¿Í
ÀÎÁõ µ¥ÀÌŸº£À̽º¸¦ °¡Áú ¼ö ÀÖ´Ù. realm value´Â ¹®ÀÚ¿·Î¼ ¿ø¼¹ö¿¡ ÀÇÇØ ÇÒ´çµÇ´Â °ÍÀ̸ç, ÀÎÁõ ¹æ½Ä¿¡ µû¶ó Ãß°¡ÀûÀÎ Àǹ̸¦ ºÎ¿©ÇÒ
¼ö ÀÖ´Ù.
»ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ ÀÚ±â ÀÚ½ÅÀ» ¼¹ö·ÎºÎÅÍ ÀÎÁõ¹Þ°íÀÚ ÇÑ´Ù¸é - 401 ÀÀ´äÀ» ¼ö½ÅÇÑ ÀÌÈĶó¾ß °¡´ÉÇÑ °ÍÀº ¾Æ´Ï´Ù - ¿ä±¸ ¸Þ½ÃÁö ¼Ó¿¡
Authorization Çì´õ Çʵ带 Æ÷ÇÔ½ÃÄѼ º¸³½´Ù. ÀÌ Çʵå´Â ¿äûµÈ ÀÚ¿øÀÇ º¸¾È ¿µ¿ª¿¡ ´ëÇØ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®ÀÇ ÀÎÁõ Á¤º¸¸¦ °¡Áø
credentials·Î¼ ±¸¼ºµÈ´Ù.
credentials = basic-credentials | (auth-scheme #auth-param)
»ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ credentialsÀ» ÀÚµ¿ÀûÀ¸·Î Àû¿ëÇÒ ¼ö ÀÖ´Â ¹üÀ§´Â º¸È£ ¿µ¿ª¿¡ ÀÇÇØ °áÁ¤µÈ´Ù. ¾Õ¼ÀÇ ¿ä±¸°¡ À̹Ì
ÀÎÁõµÇ¾ú´Ù¸é, ÀÎÁõ ü°è, ÆÄ¶ó¹ÌÅÍ, ¹× »ç¿ëÀÚ ¼±È£µµ¿¡ ÀÇÇØ °áÁ¤µÇ´Â ÀÏÁ¤ ½Ã°£ µ¿¾È °°Àº credentialsÀº º¸È£ ¹üÀ§ ³»ÀÇ ¸ðµç ¿ä±¸¿¡
´ëÇØ Àç»ç¿ëµÉ ¼ö ÀÖ´Ù. ±×·¸Áö ¾Ê´Ù¸é ÇϳªÀÇ º¸È£ ¿µ¿ªÀº ¼¹öÀÇ ¿µ¿ª ¹ÛÀ¸·Î È®ÀåµÉ ¼ö ¾ø´Ù.
¸¸¾à ¼¹ö°¡ ¿ä±¸ ¸Þ½ÃÁö¿Í ÇÔ²² Àü´ÞµÈ credentialsÀ» Á¢¼öÇÏÁö ¾Ê°íÀÚ ÇÑ´Ù¸é 403 (forbidden) ÀÀ´äÀ» º¸³»¾î¾ß ÇÑ´Ù.
HTTP ÇÁ·ÎÅäÄÝÀº Á¢±Ù ÀÎÁõ¿¡ ´ëÇÑ ÀÌ·¯ÇÑ °£´ÜÇÑ challenge-response ¸ÞÄ«´ÏÁò¿¡ ´ëÇØ ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ Á¦ÇÑÀ» µÎÁö ¾Ê´Â´Ù.
TCP ¼ö¼Û°èÃþ¿¡¼ÀÇ ¾Ïȣȳª ¸Þ½ÃÁö ĸ½¶È ¹æ¹ý°ú Ãß°¡ÀûÀÎ ¸ÞÄ«´ÏÁòÀÌ »ç¿ëµÉ ¼öµµ ÀÖÀ¸¸ç, À̶§ ÀÎÁõ Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â Ãß°¡ÀûÀÎ Çì´õ Çʵ带
Á¤ÀÇÇÒ ¼öµµ ÀÖ´Ù. ±×·¯³ª ÀÌ·¯ÇÑ Ãß°¡ÀûÀÎ ¸ÞÄ«´ÏÁòÀº ¿©±â¿¡¼ Á¤ÀÇÇÏÁö ¾Êµµ·Ï ÇÑ´Ù.
ÇÁ¶ô½Ã ¼¹ö´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ® ÀÎÁõÀ» À§ÇØ WWW-Authentication°ú Authorization
Çì´õ Çʵ带 ¿ø·¡ »óÅ ±×´ë·Î Áß°èÇØ¾ß Çϰí, AuthorizationÀ» Æ÷ÇÔÇϰí ÀÖ´Â ¿ä±¸ ¸Þ½ÃÁö¿¡ ´ëÇÑ ÀÀ´äÀ» Àý´ë
ij½ÃÇØ¼´Â ¾È µÈ´Ù. HTTP/1.0¿¡¼´Â Ŭ¶óÀÌ¾ðÆ®°¡ ÇÁ¶ô½Ã¿Í ÀÎÁõÇÏ´Â ¼ö´ÜÀº Á¦°øÇÏÁö ¾Ê´Â´Ù.
11.1 ±âº» ÀÎÁõ ü°è (Basic Authentication Scheme)
"Basic" ÀÎÁõ ü°è´Â »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ °¢ º¸¾È ¿µ¿ª¿¡ ´ëÇØ »ç¿ëÀÚ ¾ÆÀ̵ð¿Í ºñ¹Ð¹øÈ£·Î ÀÚ½ÅÀ» Áõ¸íÇÏ´Â ¸ðµ¨¿¡
±â¹ÝÇϰí ÀÖ´Ù. ¼¹ö´Â Request-URI¿¡ ÁöÁ¤µÈ ¿µ¿ª¿¡ ´ëÇÑ »ç¿ëÀÚ ¾ÆÀ̵ð¿Í ºñ¹Ð¹øÈ£¸¦ °Ë»çÇÏ¿© Åë°úµÉ ¶§¸¸ ÇØ´ç ¿ä±¸¿¡
´ëÇÑ ÀÎÁõÀ» Çã°¡ÇÑ´Ù. ¿©±â¼ ¼±Åà °¡´ÉÇÑ ÀÎÁõ ÆÄ¶ó¹ÌÅÍ´Â ¾ø´Ù.
º¸¾È ¿µ¿ª ³»ÀÇ ¾î´À URI¿¡ ´ëÇØ ÀÎÁõµÇÁö ¾ÊÀº ¿ä±¸¸¦ ¼ö½ÅÇÏ°Ô µÇ¸é ¼¹ö´Â ´ÙÀ½°ú °°Àº challenge¸¦ ÀÀ´äÇÏ¿©¾ß
ÇÑ´Ù.
WWW-Authenticate: Basic realm="WallyWorld"
¿©±â¼ "WallyWorld"¶õ Request-URIÀÇ º¸¾È ¿µ¿ªÀ» ¸í½ÃÇϱâ À§ÇØ ¼¹ö°¡ ºÎ¿©ÇÏ´Â
¹®ÀÚ¿ÀÌ´Ù.
ÀÎÁõÀ» ¹Þ±â À§ÇØ Å¬¶óÀÌ¾ðÆ®´Â »ç¿ëÀÚ ¾ÆÀ̵ð¿Í ºñ¹Ð¹øÈ£¸¦ º¸³»´Âµ¥ µÎ °³ »çÀÌÀÇ ±¸ºÐÀº °¡¿îµ¥¿¡ ":" ¹®ÀÚ¸¦ ³Ö°í
based64 ÀÎÄÚµùÀ» ÇÏ¿© credentials¿¡ ³Ö¾î¼ º¸³½´Ù.
basic-credentials = "Basic" SP basic-cookie
basic-cookie =
userid-password = [token] ":" *TEXT
¸¸¾à »ç¿ëÀÚ ¿¡ÀÌÀüÆ®°¡ »ç¿ëÀÚ ¾ÆÀ̵ð·Î¼ "Aladdin" ºñ¹Ð¹øÈ£·Î¼ "open sesame"¸¦ ³Ö¾î¼
º¸³»°íÀÚ ÇÑ´Ù¸é, Ŭ¶óÀ̾ðÆ®ÀÇ ÀÎÁõ ¿äûÀ¸·Î¼ Authorization Çì´õ Çʵ带 »ç¿ëÇÏ¿© ´ÙÀ½°ú °°ÀÌ µÉ °ÍÀÌ´Ù.
(10.2Àý ÂüÁ¶)
Authorization: Basic QWxhZGRpbjpvcGVuIHNLc2FtZQ==
ÀÌ¿Í °°Àº ±âº» ÀÎÁõ ¹æ½ÄÀº ºñº¸È£ ÀÎÁõ ¹æ½ÄÀ̸ç Ŭ¶óÀÌ¾ðÆ®¿Í ¼¹ö »çÀÌÀÇ TCP ¿¬°áÀÌ °ø°ÝÀ¸·ÎºÎÅÍ ¾ÈÀüÇÏ´Ù°í ½Å·ÚÇÒ¸¸ ÇÏ´Ù´Â ÀüÁ¦ ÇÏ¿¡
Ȱ¿ëÇÏ´Â °ÍÀÌ´Ù. ±×·¯¹Ç·Î ÀÌ ÀüÁ¦°¡ ¼º¸³ÇÏÁö ¾ÊÀ¸¸é ÀÌ ¹æ½ÄÀº °ø°ÝÀ¸·ÎºÎÅÍ ¾ÈÀüÇÏ´Ù°í ¸»ÇÒ ¼ö ¾ø´Ù. ÇöÀçÀÇ °³¹æÇü ³×Æ®¿öÅ©¿¡¼´Â ÀÌ ÀüÁ¦°¡
¼º¸³ÇÑ´Ù°í ÇÒ ¼ö ¾øÀ¸¹Ç·Î ±âº» ÀÎÁõ ¹æ½ÄÀº Àû´çÈ÷ »ç¿ëµÇ¾î¾ß Çϸç, Ŭ¶óÀÌ¾ðÆ®´Â ¼¹ö¿ÍÀÇ ±âº» ÀÎÁõÀ» À§ÇØ ÀÌ ¹æ½ÄÀ» ±¸ÇöÇÏ¿©¾ß ÇÑ´Ù.
12. º¸¾È »çÇ×µé
ÀÌ ÀåÀº ÀÀ¿ë ÇÁ·Î±×·¥ °³¹ßÀÚ, Á¤º¸ Á¦°øÀÚ, ¹× ÀÌ¿ëÀÚ¿¡°Ô ÀÌ ¹®¼¿¡ ¼³¸íµÇ¾î ÀÖ´Â HTTP/1.0ÀÇ º¸¾È ÇѰèÁ¡À» ¾Ë¸®±â À§ÇÑ °ÍÀÌ´Ù.
¹àÇôÁø ¹®Á¦¿¡ ´ëÇÑ ¸íÈ®ÇÑ ÇØ°áÃ¥À» Á¦½ÃÇÏ´Â °ÍÀº ¾Æ´ÏÁö¸¸ À§ÇèÀ» ÁÙÀ̱â À§ÇÑ ¹æ¹ýÀû Á¦¾ÈµéÀº ´ã°í ÀÖ´Ù.
12.1 Ŭ¶óÀÌ¾ðÆ® ÀÎÁõ
11.1Àý¿¡ ¼³¸íÇÑ °Íó·³ ±âº» ÀÎÁõ ¹æ½ÄÀº »ç¿ëÀÚ ÀÎÁõ¿¡ ´ëÇÑ ¾ÈÀüÇÑ ¹æ¹ýÀÌ ¾Æ´Ï¸ç ½ÇÁ¦ ³×Æ®¿öÅ©¸¦ ÅëÇØ
Entity-Body°¡ ³»¿ë ±×´ë·Î Àü´ÞµÇ´Â °ÍÀ» ÇÇÇÏÁöµµ ¸ø ÇÏ´Â ¹æ¹ýÀÌ´Ù. HTTP/1.0Àº º¸¾È¼ºÀ» ³ôÀ̱â À§ÇÑ Ãß°¡ÀûÀÎ
ÀÎÁõ ¹æ½ÄÀ̳ª ¾ÏÈ£È ¸ÞÄ«´ÏÁòÀ» Á¦°øÇØÁÖÁö ¸ø Çϰí ÀÖ´Ù.
12.2 ¾ÈÀüÇÑ Methods
Ŭ¶óÀÌ¾ðÆ® ¼ÒÇÁÆ®¿þ¾î °³¹ßÀÚµéÀº ÀÎÅÍ³Ý »ó¿¡¼ÀÇ »ç¿ëÀÚ°¡ ÀÌ¿ëÇÏ´Â ¸ðµç µ¿ÀÛµéÀÌ ¼ÒÇÁÆ®¿þ¾î°¡ Á¦°øÇÏ´Â °ÍÀÓÀ» ÀνÄÇÏ¿©¾ß Çϰí, »ç¿ëÀڵ鿡°Ô
ÀÚ½ÅÀÇ ¾î¶² µ¿ÀÛ ½ÇÇàÀÌ Àڽſ¡°Ô³ª ¶Ç´Â ´Ù¸¥ »ç¶÷µé¿¡°Ô ¿¹±âÄ¡ ¾ÊÀº Áß¿äÇÑ Àǹ̸¦ ºÎ¿©ÇÒ ¼öµµ ÀÖ´Ù´Â °ÍÀ» ÀνĽÃÄÑ¾ß ÇÑ´Ù.
ƯÈ÷, GET°ú HEAD´Â ´ë»ó ÀÚ¿øÀÇ È¹µæÀ̶ó´Â ÀÇ¹Ì ÀÌ¿ÜÀÇ ´Ù¸¥ ¾î¶² °Íµµ °¡ÁöÁö ¾Ê±â ¶§¹®¿¡,
"¾ÈÀüÇÑ" °ÍÀ̶ó°í °£ÁÖÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª POSTÀÇ °æ¿ì¿¡´Â ¾ÈÀüÇÏÁö ¸øÇÑ ¾î¶² µ¿ÀÛÀ» ½ÇÇà½Ãų °¡´É¼ºÀÌ ÀÖÀ½À» »ç¿ëÀÚ¿¡°Ô
ÁÖÁö½ÃÄÑ¾ß ÇÑ´Ù.
¼¹ö°¡ GET¿¡ ´ëÇÑ ¿ä±¸¸¦ ó¸®ÇÏ´Â °úÁ¤¿¡¼ ºÎ¼öÀûÀÎ ´Ù¸¥ µ¿ÀÛÀ» ¹ß»ý½ÃŰ´ÂÁö »ç½Ç»ó Àß ¾Ë ¼ö ¾ø´Ù. (¾î¶² µ¿Àû
ÀÚ¿øÀº ÀÌ·± Ư¼ºÀ» °í·ÁÀÇ ´ë»óÀ¸·Î »ï°í Àֱ⵵ ÇÏ´Ù.) ¿©±â¿¡ ÀÖ¾î¼ÀÇ Â÷ÀÌÁ¡Àº »ç¿ëÀÚ°¡ ÀÌ ºÎ¼ö È¿°ú¸¦ ¿ä±¸ÇÏÁö ¾Ê¾Ò´Ù´Â °ÍÀÌ°í ±×·¯¹Ç·Î
À̰ÍÀ» ÃßÃøÇÒ ¼ö ¾ø´Ù´Â Á¡ÀÌ´Ù.
12.3 ¼¹öÀÇ Log Á¤º¸ÀÇ ³²¿ë
¼¹ö´Â »ç¿ëÀÚÀÇ ¿ä±¸·ÎºÎÅÍ »ç¿ëÀÚµéÀÇ µ¶¼ ½À°üÀ̳ª °ü½É ÁÖÁ¦µé¿¡ ´ëÇÑ °³ÀÎÀû Á¤º¸¸¦ È®º¸ÇÒ ¼ö ÀÖ´Â À§Ä¡¿¡ ÀÖ´Ù. ÀÌ·¯ÇÑ Á¤º¸´Â ºÐ¸íÈ÷
°³ÀÎÀûÀÎ ºñ¹Ð »çÇ×ÀÌ¸ç ¾î¶² ³ª¶ó¿¡¼´Â ÀÌÀÇ °ü¸®¿¡ ÀÖ¾î ¹ýÀûÀÎ Á¦ÇÑÀ» ¹Þ°í ÀÖ´Ù. ±×·¯¹Ç·Î µ¥ÀÌŸ¸¦ Á¦°øÇϱâ À§ÇØ HTTP ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÏ´Â
»ç¶÷µéÀº °³°³ÀεéÀÇ Çã¶ô ¾øÀÌ ÀÌ·± ÀÚ·áµéÀ» ¹«´Ü ¹èÆ÷ÇØ¼´Â ¾È µÈ´Ù´Â °ÍÀ» ¾Ë¾Æ¾ß ÇÑ´Ù.
12.4 À§ÇèÇÑ Á¤º¸ÀÇ Àü´Þ
ÀϹÝÀûÀÎ µ¥ÀÌŸ Àü¼Û ÇÁ·ÎÅäÄÝó·³ HTTPµµ Àü¼ÛµÇ´Â µ¥ÀÌŸÀÇ ³»¿ëÀ» ÅëÁ¦ÇÒ ¼ö°¡ ¾ø°í, ƯÁ¤ Á¤º¸ ºÎºÐÀÇ Á߿䵵¸¦ ÆÇ´ÜÇÒ ¼ö ÀÖ´Â ¼ö´Üµµ
¾ø´Ù. ±×·¯¹Ç·Î ÀÀ¿ë ÇÁ·Î±×·¥Àº Á¤º¸ Á¦°øÀÚ¿¡°Ô Á¤º¸¿¡ ´ëÇÑ ÅëÁ¦ ±â´ÉÀ» °¡´ÉÇÑÇÑ ¸¹ÀÌ ÁÖ¾î¾ß ÇÑ´Ù. À̸¦ À§ÇØ ¼¼ °¡ÁöÀÇ Çì´õ Çʵ尡 Ưº°ÇÑ
°ü½ÉÀÇ ´ë»óÀÌ µÈ´Ù. Áï, Server, Referer, ¹× FromÀÌ´Ù.
¼¹öÀÇ Æ¯Á¤ ¼ÒÇÁÆ®¿þ¾î ¹öÀüÀ» ¾Ë¸®´Â °ÍÀº ÇØ´ç ¼ÒƮƮ¿þ¾îÀÇ ¾Ë·ÁÁø º¸¾È Ãë¾àÁ¡À» ÅëÇØ ¼¹ö È£½ºÆ®°¡ Á÷Á¢ °ø°Ý´çÇÏ°Ô ÇÒ À§Ç輺À» Á¦°øÇϱâ
¶§¹®¿¡, ±¸Çö °³¹ßÀÚµéÀº Server Çì´õ Çʵ带 °ü¸®ÀÚ ¼³Á¤ÀÌ °¡´ÉÇϰԲû ±¸ÇöÇÏ¿©¾ß ÇÑ´Ù.
Referer Çʵå´Â »ç¿ëÀÚÀÇ Àб⠽À°ü¿¡ ´ëÇÑ Á¤º¸¸¦ Á¦°øÇÒ ¼ö ÀÖ°í ²¨²Ù·Î ¿ªÃßÀûÇÒ ¼ö ÀÖ´Â ¿¼è¸¦ Á¦°øÇÒ ¼ö ÀÖ´Ù.
ÀÌ Çʵå´Â ¸Å¿ì À¯¿ëÇÑ °ÍÀÓ¿¡µµ ºÒ±¸Çϰí Referer¿¡ Æ÷ÇԵǾî ÀÖ´Â Á¤º¸·ÎºÎÅÍ ÃßÃâµÉ ¼ö ÀÖ´Â »ç¿ëÀÚ Á¤º¸°¡ ³²¿ëµÉ °¡´É¼ºÀÌ
ÀÖ´Ù. °³ÀÎ Á¤º¸°¡ Á¦°ÅµÇ¾úÀ» ¶§Á¶Â÷ Referer Çʵ带 ÅëÇØ °³ÀÎÀû ºñ°ø°³ ¹®¼¿¡ ´ëÇÑ URI°¡ ¹àÇôÁú ¼ö ÀÖ´Ù.
FromÀ¸·ÎºÎÅÍ Àü´ÞµÇ´Â Á¤º¸´Â »ç¿ëÀÚÀÇ °³ÀÎÀû °ü½É»ç³ª »ç¿ëÀÚ°¡ ÀÖ´Â °÷ÀÇ º¸¾È Á¤Ã¥°ú Ãæµ¹ÇÒ ¼öµµ ÀÖÀ¸¸ç, ÀÌ ¶§¹®¿¡
»ç¿ëÀÚ¿¡°Ô Á¦°ø °ÅºÎ ¶Ç´Â ÇʵåÀÇ ³»¿ë ¼öÁ¤ÀÇ ¼±Åà ¿ä¼Ò¸¦ ÁÖÁö ¾Ê°í ¹«Á¶°Ç Àü´ÞÇÏ°Ô ÇØ¼´Â ¾È µÈ´Ù. »ç¿ëÀÚ ¼±È£µµ ¶Ç´Â ÀÀ¿ë ÇÁ·Î±×·¥ ÁöÁ¤
»çÇ× ¼³Á¤ ȯ°æ¿¡¼ ÀÌ ÇʵåÀÇ ³»¿ëÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ°Ô²û »ç¿ëÀÚ¿¡°Ô Á¦°øÇÏ¿©¾ß ÇÑ´Ù.
ÀÌ·¯ÇÑ Á¤º¸°¡ ¹Ýµå½Ã ÇÊ¿äÇÑ °ÍÀº ¾Æ´Ô¿¡µµ ºÒ±¸Çϰí, From°ú Referer Á¤º¸¸¦ º¸³¾Áö ¾È º¸³¾
°ÍÀÎÁö ÁöÁ¤ÇÒ ¼ö ÀÖ´Â °£´ÜÇÑ Åä±Û ¼±ÅÃâÀ» Á¦°øÇϵµ·Ï ±Ç°íÇÑ´Ù.
12.5 ÈÀϰú °æ·Î À̸§À» ÀÌ¿ëÇÑ °ø°Ý
HTTP ¼¹ö ±¸ÇöÀº ¼¹ö °ü¸®ÀÚ°¡ Á¦°øÇϰíÀÚ ÇÏ´Â ¹®¼¸¸ ¼ºñ½ºµÉ ¼ö ÀÖµµ·Ï ÇÏ¿©¾ß ÇÑ´Ù. ¸¸¾à HTTP ¼¹ö°¡ HTTP URLÀ» ÈÀÏ
½Ã½ºÅÛ È£Ãâ·Î °ð¹Ù·Î µ¿ÀÛ½ÃŰ¸é ¼¹ö´Â HTTP Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ¿øÇÏÁö ¾Ê´Â ÈÀÏÀ» Á¦°øÇÏÁö ¾Êµµ·Ï Ưº°ÇÑ ÁÖÀǸ¦ ±â¿ï¿©¾ß ÇÑ´Ù.
¿¹¸¦ µé¾î, Unix, MS Windows, ¹× ´Ù¸¥ ¿î¿µÃ¼°è´Â ÇöÀç µð·ºÅ丮 ÇÑ ´Ü°è ¾ÕÀ» ÁöÁ¤Çϴ ǥ½Ã·Î ".."¸¦
»ç¿ëÇϰí Àִµ¥, HTTP ¼¹ö¿¡¼´Â Request-URI¿¡ ÀÌ·± Çü½ÄÀÇ ÁöÁ¤À» Çã¿ëÇÏÁö ¾Ê¾Æ¾ß ÇÑ´Ù. ±×·¸°Ô ÇÏÁö ¾ÊÀ¸¸é
HTTP ¼¹ö¸¦ ÅëÇØ Á¢±ÙÇϵµ·Ï ¸¸µç ¹üÀ§ ¹ÛÀÇ ÀÚ¿ø¿¡ ´ëÇÑ ¿øÄ¡ ¾Ê´Â Á¢±ÙÀ» °¡´ÉÇÏ°Ô Çϱ⠶§¹®ÀÌ´Ù.
ºñ½ÁÇϰÔ, Á¢±Ù Á¦¾î ÈÀÏ, ȯ°æ ¼³Á¤ ÈÀÏ, ½ºÅ©¸³Æ® ½ÇÇà ÈÀÏ µî°ú °°ÀÌ ¼¹ö ³»ºÎÀûÀ¸·Î Á¢±ÙÇÒ ¼ö ÀÖ°Ô ÇÑ ÆÄÀϵéÀº ±× Á߿伺 ¶§¹®¿¡
ºÎ´çÇÑ Á¢±Ù ½Ãµµ·ÎºÎÅÍ ¹æ¾î¸¦ ÇÏ¿©¾ß ÇÑ´Ù. ±×¸®°í ¼¹ö ÇÁ·Î±×·¥ ±¸Çö»óÀÇ ¹ö±× ¶§¹®¿¡ º¸¾È Ãë¾àÁ¡ÀÌ ¹ß°ßµÇ±âµµ ÇÑ´Ù.
13. Âü°íÀÚ·á
[1] 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.
[2] 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.
[3] Berners-Lee, T., and D. Connolly, "Hypertext Markup Language -
2.0", RFC 1866, MIT/W3C, November 1995.
[4] Berners-Lee, T., Masinter, L., and M. McCahill, "Uniform
Resource Locators (URL)", RFC 1738, CERN, Xerox PARC,
University of Minnesota, December 1994.
[5] Borenstein, N., and N. Freed, "MIME (Multipurpose Internet Mail
Extensions) Part One: Mechanisms for Specifying and Describing
the Format of Internet Message Bodies", RFC 1521, Bellcore,
Innosoft, September 1993.
[6] Braden, R., "Requirements for Internet hosts - Application and
Support", STD 3, RFC 1123, IETF, October 1989.
[7] Crocker, D., "Standard for the Format of ARPA Internet Text
Messages", STD 11, RFC 822, UDEL, August 1982.
[8] F. Davis, B. Kahle, H. Morris, J. Salem, T. Shen, R. Wang,
J. Sui, and M. Grinbaum. "WAIS Interface Protocol Prototype
Functional Specification." (v1.5), Thinking Machines
Corporation, April 1990.
[9] Fielding, R., "Relative Uniform Resource Locators", RFC 1808,
UC Irvine, June 1995.
[10] Horton, M., and R. Adams, "Standard for interchange of USENET
Messages", RFC 1036 (Obsoletes RFC 850), AT&T Bell
Laboratories, Center for Seismic Studies, December 1987.
[11] 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.
[12] Postel, J., "Simple Mail Transfer Protocol." STD 10, RFC 821,
[13] Postel, J., "Media Type Registration Procedure." RFC 1590,
USC/ISI, March 1994.
[14] Postel, J., and J. Reynolds, "File Transfer Protocol (FTP)",
STD 9, RFC 959, USC/ISI, October 1985.
[15] Reynolds, J., and J. Postel, "Assigned Numbers", STD 2, RFC
1700, USC/ISI, October 1994.
[16] Sollins, K., and L. Masinter, "Functional Requirements for
Uniform Resource Names", RFC 1737, MIT/LCS, Xerox Corporation,
December 1994.
[17] US-ASCII. Coded Character Set - 7-Bit American Standard Code
for Information Interchange. Standard ANSI X3.4-1986, ANSI,
1986.
[18] 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.
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.
[19] W. Richard Stevens, "TCP/IP Illustrated, Volume",
Addison-Wesley, 1994.
[20] Roy Fielding, "Hypertext Transfer Protocol - HTTP/1.0", RFC 1945,
IETF HTTP WG, May 1996.
ºÎ·Ï (Appendices)
¿©±âÀÇ ºÎ·ÏÀº HTTP/1.0 ±Ô°Ý¼¿¡´Â Æ÷ÇÔµÇÁö ¾ÊÁö¸¸ Á¤º¸ Á¦°øÀÇ Ãø¸é¿¡¼ ±â¼úµÇ´Â °ÍÀÌ´Ù.
A. ÀÎÅÍ³Ý ¹Ìµð¾î Çü½Ä (Internet Media Type) message/http
ÀÌ ¹®¼´Â HTTP/1.0 ÇÁ·ÎÅäÄÝ¿¡ ´ëÇÑ ±Ô°ÝÀ» Á¤ÀÇÇÏ´Â µ¿½Ã¿¡ ÀÎÅÍ³Ý ¹Ìµð¾î Çü½ÄÀ¸·Î¼ "message/http"¿¡
´ëÇÑ ±Ô°ÝÀ» ¼³¸íÇÏ´Â ¿ªÇÒµµ ÇÑ´Ù. ´ÙÀ½ÀÇ »çÇ×ÀÌ IANA [13]¿¡ µî·ÏµÇ¾î ÀÖ´Ù.
Media Type name: message
Media subtype name: http
Required parameters: none
Optional parameters: version, msgtype
version: The HTTP-Version number of the enclosed message
(e.g., "1.0"). If not present, the version can be
determined from the first line of the body.
msgtype: The message type -- "request" or "response". If not
present, the type can be determined from the first
line of the body.
Encoding considerations: only "7bit", "8bit", or "binary" are permitted
Security considerations: none
B. Tolerant Applications
ÀÌ ¹®¼°¡ HTTP/1.0 ¸Þ½ÃÁö »ý¼º¿¡ ´ëÇÑ ±ÔÁ¤ »çÇ×µéÀ» ´Ù·ç°í ÀÖÁö¸¸ ¸ðµç ÀÀ¿ë ÇÁ·Î±×·¥µéÀÌ ÀÌ ±ÔÁ¤À» Á¤È®ÇÏ°Ô ±¸ÇöÇϰí ÀÖ´Â °ÍÀº
¾Æ´Ï´Ù. ±×·¯¹Ç·Î Àß µ¿ÀÛÇÏ´Â ÀÀ¿ë ÇÁ·Î±×·¥À» ¸¸µé±â À§Çؼ´Â ¾à°£ÀÇ ±¸Çö»ó ¿À·ù³ª º»·¡ Àǹ̿¡¼ ¹þ¾î³ ±¸Çö µî°ú °°Àº º¯È¿¡ ´ëÇØ Àß ´ëóÇÒ
¼ö ÀÖµµ·Ï ÇÏ¿©¾ß ÇÑ´Ù.
Ŭ¶óÀÌ¾ðÆ®´Â Status-LineÀ» ÇØ¼®ÇÒ ¶§ ¾ÈÁ¤ÀûÀ̾î¾ß (tolerant) ÇÏ¸ç ¼¹ö´Â
Request-LineÀ» ÇØ¼®ÇÒ ¶§ ¾ÈÁ¤ÀûÀ̾î¾ß ÇÑ´Ù. ƯÈ÷ À̵éÀº ÇÊµå »çÀÌ¿¡ ÇϳªÀÇ SP¸¸ Çã¿ëµÉ ¶§¿¡¶óµµ
¸¹Àº ¼öÀÇ SP³ª HT°¡ ³ª¿À´õ¶óµµ ¼ö¿ëÇÏ°í ´ëóÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
HTTP-header Çʵ忡 ´ëÇÑ ÁÙ³¡ Ç¥½Ã´Â CRLFÀÌ´Ù. ±×·¯³ª ÀÌ·± Çì´õ¸¦ ÇØ¼®ÇÒ ¶§ ÀÀ¿ë
ÇÁ·Î±×·¥¿¡¼´Â ÁÙ³¡ Ç¥½Ã·Î¼ ¾Õ¼ ³ª¿À´Â CRÀ» ¹«½ÃÇϰí ÇϳªÀÇ LFµµ ÀνÄÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
C. MIME°úÀÇ °ü°è
HTTP/1.0Àº ÀÎÅÍ³Ý ¸ÞÀϰú (RFC 822 [7]) MIME(Multipurpose Internet Mail Extension,
[5])¿¡ Á¤ÀǵǾî ÀÖ´Â ¸¹Àº ±¸¼º ¿ä¼ÒµéÀ» Ȱ¿ëÇϰí Àִµ¥, ¿£ÅÍÆ¼µéÀ» È®Àå °¡´ÉÇÑ ¸ÞÄ«´ÏÁò°ú ´Ù¾çÇÑ Ç¥Çö Çü½ÄÀ¸·Î Àü¼ÛÇÒ ¼ö ÀÖµµ·Ï Çϱâ
À§ÇؼÀÌ´Ù. ±×·¯³ª RFC 1521Àº ¸ÞÀÏ¿¡ ´ëÇÑ ¼³¸íÀ» Çϰí ÀÖÀ¸³ª HTTP´Â RFC 1521¿¡ ¼³¸íµÇ¾î ÀÖ´Â °Í°ú ¾à°£ ´Ù¸¥ ±â´ÉÀ» °®°í
Àֱ⵵ ÇÏ´Ù. ÀÌ·¯ÇÑ Â÷ÀÌÁ¡µéÀº ÀÌÁø¸ðµå Àü¼Û ¿¬°á »ó¿¡ ÀÖ¾î ¼º´ÉÀ» ÃÖÀûÈÇϰí, »õ·Î¿î ¹Ìµð¾îÀÇ »ç¿ëÀ» ÈξÀ ´õ ÀÚÀ¯·Ó°Ô Çϰí, ³¯Â¥ ºñ±³¸¦
´õ¿í ½±°Ô Çϸç, HTTP ¼¹ö¿Í Ŭ¶óÀ̾ðÆ®ÀÇ È°¿ë¼ºÀ» ¾Ë¸®±â À§ÇÑ ¸ñÀûÀ¸·Î ÁÖÀDZí°Ô ¼±ÅÃµÈ °ÍµéÀÌ´Ù.
'96³â 5¿ù ÇöÀç, RFC 1521Àº ¼öÁ¤µÉ ¿¹Á¤À¸·Î ÀÖ´Ù. ÀÌ ¼öÁ¤ ÀÛ¾÷¿¡ RFC 1521ÀÌ ¾Æ´Ï¶ó HTTP/1.0¿¡¼ ¹ß°ßµÈ Ȱ¿ëÀû
ÀÕÁ¡µéÀÌ ¹Ý¿µµÉ ¼ö ÀÖ´Ù.
ÀÌ ºÎ·ÏÀº HTTP¿Í RFC 1521ÀÇ Â÷ÀÌÁ¡¿¡ ´ëÇØ ¸î °¡Áö ºÎºÐÀ¸·Î ¼³¸íÇϰí ÀÖ´Ù. ¾öÁ¤ÇÑ MIME ȯ°æÀ¸·Î Åë½ÅÀ» ÇÏ´Â ÇÁ¶ô½Ã¿Í
°ÔÀÌÆ®¿þÀÌ´Â ÀÌ·¯ÇÑ Â÷ÀÌÁ¡À» Àß ¾Ë°í ÀÖ¾î¾ß Çϰí ÇÊ¿äÇÏ´Ù¸é ÀûÀýÇÑ º¯È¯µµ ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. MIME ȯ°æÀ¸·ÎºÎÅÍ HTTP·Î Åë½ÅÇÏ´Â
ÇÁ¶ô½Ã¿Í °ÔÀÌÆ®¿þÀÌ´Â ¾î¶² º¯È¯ÀÌ ÇÊ¿äÇÒ ¼öµµ ÀÖÀ¸¹Ç·Î ÀÌ·± Â÷ÀÌÁ¡µéÀ» ¶ÇÇÑ ¾Ë¾Æ¾ß ÇÒ Çʿ䰡 ÀÖ´Ù.
C.1 Conversion to Canonical Form
RFC 1521Àº ÀÎÅÍ³Ý ¸ÞÀÏ ¿£ÅÍÆ¼°¡ Àü¼ÛµÇ±â Àü¿¡ RFC 1521 [5]ÀÇ ºÎ·Ï G¿¡ ¼³¸íÇÑ ¹Ù¿Í °°ÀÌ Ç¥ÁØÀûÀÎ ÇüÅ·Î
(canonical form)·Î º¯È¯µÇ¾î¾ß ÇÑ´Ù°í Çϰí ÀÖ´Ù. Áö±Ý ÀÌ ¹®¼ÀÇ 3.6.1ÀýÀº HTTP »óÀ¸·Î Àü¼ÛÇÒ ¶§
"text" ¹Ìµð¾î Çü½Ä¿¡ ´ëÇØ Çã¿ëÇÑ subtypeÀÇ Çü½ÄµéÀÌ ¼³¸íµÇ¾î ÀÖ´Ù.
RFC 1521Àº "text"ÀÎ Content-Type ¹®¼ÀÇ ³»¿ëÀÌ CRLF¿¡ ÀÇÇØ
Áٹٲٱ⸦ Ç¥½ÃÇϵµ·Ï Çϰí ÀÖ°í, Áٹٲٱ⠺κРÀÌ¿ÜÀÇ °÷¿¡¼ CRÀ̳ª LF°¡ »ç¿ëµÇÁö ¾Êµµ·Ï Çϰí ÀÖ´Ù.
ÇÏÁö¸¸ HTTP¿¡¼´Â ¸Þ½ÃÁö°¡ Àü¼ÛµÉ ¶§ ³»¿ë ¼Ó¿¡ µç Áٹٲٱâ Ç¥½Ã¿¡ ´ëÇØ CRLF, CR,
LF °¢°¢ÀÇ Á¸À縦 ÀÎÁ¤Çϰí ÀÖ´Ù.
HTTP·ÎºÎÅÍ RFC 1521 ȯ°æÀ¸·Î Åë½ÅÇÏ´Â ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌ´Â ÀÌ ¹®¼ÀÇ 3.6.1Àý¿¡ ¼³¸íµÇ¾î ÀÖ´Â ÅØ½ºÆ® ¹Ìµð¾î ³»ÀÇ ¸ðµç
Áٹٲٱ⸦ RFC 1521 Ç¥ÁØ ÇüÅÂÀÎ CRLF·Î ÇØ¼®ÇÏ¿©¾ß ÇÑ´Ù. ±×·¯³ª À̰ÍÀº
Content-EncodingÀÇ Á¸Àç¿Í HTTP°¡ CR°ú LF¸¦ ÀǹÌÇÏ´Â octet 13°ú
10À» »ç¿ëÇÏÁö ¾Ê´Â ¾î¶² ¹®ÀÚÁýÇÕÀ» Çã¿ëÇÑ´Ù´Â »ç½Ç¿¡ ÀÇÇØ º¹ÀâÇÏ°Ô µÉ ¼ö ÀÖ´Ù.
C.2 ³¯Â¥ Çü½ÄÀÇ º¯È¯
HTTP/1.0Àº ³¯Â¥ ºñ±³ °úÁ¤À» °£´ÜÇÏ°Ô Çϱâ À§ÇØ 3.3Àý°ú °°ÀÌ Á¦ÇÑµÈ ³¯Â¥ Çü½Ä¸¸ Áö¿øÇϵµ·Ï Çϰí ÀÖ´Ù. ´Ù¸¥ ÇÁ·ÎÅäÄݷκÎÅÍ
Áß°èÇÏ´Â ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌ´Â ¸Þ½ÃÁö¿¡ ÀÖ´Â ¾î¶² Çü½ÄÀÇ Date Çì´õ¶óµµ HTTP/1.0ÀÇ Çü½Ä °¡¿îµ¥ Çϳª·Î µû¸£µµ·Ï Çϰí
ÇÊ¿äÇÏ´Ù¸é ³¯Â¥¸¦ ´Ù½Ã ¸¸µéµµ·Ï ÇÑ´Ù.
C.3 Content-Encoding ¼Ò°³
RFC 1521¿¡´Â HTTP/1.0ÀÇ Content-Encoding Çì´õ Çʵå¿Í °°Àº Àǹ̸¦ °¡Áö´Â ±â´ÉÀÌ ¾ø´Ù. À̰ÍÀº
¹Ìµð¾î Çü½Ä¿¡ ´ëÇÑ ÀÏÁ¾ÀÇ ºÎ¿¬ ¼³¸íÀÇ ¿ä¼Ò·Î¼ ¾²ÀÌ´Â °ÍÀ̹ǷΠHTTP·ÎºÎÅÍ MIME Áö¿ø ÇÁ·ÎÅäÄÝ·Î Åë½ÅÇÏ´Â ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌ´Â
Content-Type Çì´õ ÇʵåÀÇ ÁöÁ¤ »çÇ×À» º¯°æÇϰųª ¸Þ½ÃÁö¸¦ Æ÷¿öµù Çϱâ Àü¿¡ Entity-Body¸¦
µðÄÚµùÇÏ¿©¾ß ÇÑ´Ù. (ÀÎÅÍ³Ý ¸ÞÀÏ¿¡ ´ëÇÑ Content-TypeÀ» ½ÇÇèÀûÀ¸·Î ±¸ÇöÇÑ À¸¶² ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼´Â
Content-Encoding°ú ¶È°°Àº ±â´ÉÀ» ½ÇÇà½Ã۱â À§ÇØ
";conversions=<content-coding>"À̶õ media-type ÆÄ¶ó¹ÌÅ͸¦ »ç¿ëÇϱ⵵ ÇÑ´Ù. ±×·¯³ª
ÀÌ ÆÄ¶ó¹ÌÅÍ´Â RFC 1521¿¡ Á¤ÀǵǾî ÀÖ´Â °ÍÀÌ ¾Æ´Ï´Ù.)
C.4 No Content-Transfer-Encoding
HTTP¿¡¼´Â RFC 1521¿¡ ÀÖ´Â Content-Transfer-Encoding (CTE) Çʵ带 »ç¿ëÇÏÁö ¾Ê°í ÀÖ´Ù.
±×·¯¹Ç·Î MIME Áö¿ø ÇÁ·ÎÅäÄݷκÎÅÍ HTTP ÇÁ·ÎÅäÄÝ·ÎÀÇ Åë½ÅÀ» Á¦°øÇÏ´Â ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌ´Â HTTP Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ÀÀ´ä ¸Þ½ÃÁö¸¦ Àü´ÞÇϱâ
Àü¿¡ ÀνÄÇÒ ¼ö ¾ø´Â CTE ("quoted-printable" or "base64") ÀÎÄÚµùÀ» µðÄÚµù½ÃÄÑ¾ß ÇÑ´Ù.
HTTP·ÎºÎÅÍ MIME Áö¿ø ÇÁ·ÎÅäÄÝ·Î Åë½ÅÇÏ´Â ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌ´Â HTTP ÇÁ·ÎÅäÄÝ »ó¿¡¼ ¾ÈÀüÇÑ Àü¼ÛÀ» À§ÇØ ¸Þ½ÃÁö°¡ Á¤È®ÇÑ Çü½Ä°ú
ÀÎÄÚµùÀ¸·Î µÇ¾î ÀÖ´Ù´Â °ÍÀ» º¸ÀåÇÒ Ã¥ÀÓÀ» °®°í ÀÖ´Ù. ¿©±â¼ ¾ÈÀüÇÑ Àü¼ÛÀ̶õ »ç¿ëÇϰí ÀÖ´Â ÇÁ·ÎÅäÄÝÀÇ Á¦ÇÑ¿¡ µû¶ó Á¤ÀǵȴÙ. ÀÌ·¯ÇÑ ÇÁ¶ô½Ã¿Í
°ÔÀÌÆ®¿þÀÌ´Â ¸ñÀûÁö¿¡¼ ¾²ÀÌ´Â ÇÁ·ÎÅäÄÝ »ó¿¡¼ (MIME Áö¿ø ÇÁ·ÎÅäÄÝ) ¾ÈÀüÇÑ Àü¼ÛÀÇ °¡´É¼ºÀ» ³ôÀ̰íÀÚ ÇÑ´Ù¸é Àü¼ÛÇÏ´Â µ¥ÀÌŸ¿¡ ´ëÇØ ÀûÀýÇϰÔ
Content-Transfer-Encoding Ç¥½Ã¸¦ ÇÏ¿©¾ß ÇÑ´Ù.
C.5 Multipart Body-Parts¿¡¼ÀÇ HTTP Çì´õ Çʵå
RFC 1521¿¡¼ multipart body-parts¿¡ ÀÖ´Â ´ëºÎºÐÀÇ Çì´õ ÇʵåµéÀº Çʵå À̸§ÀÌ "Content-"·Î
½ÃÀÛÇÏÁö ¾ÊÀ¸¸é ÀϹÝÀûÀ¸·Î ¹«½ÃµÈ´Ù. HTTP/.10¿¡¼´Â multipart body-parts°¡ ÇØ´ç ºÎºÐÀÇ Àǹ̿¡ ÀÖ¾î Áß¿äÇÑ HTTP Çì´õ
Çʵ带 Æ÷ÇÔÇÒ ¼öµµ ÀÖ´Ù.
D. Ãß°¡ÀûÀÎ ±â´Éµé
¿©±â¼´Â ±âÁ¸ÀÇ ÀϺΠHTTP ±¸Çö ÇÁ·Î±×·¥¿¡¼ »ç¿ëµÇ°í ÀÖÁö¸¸ ´ëºÎºÐÀÇ HTTP/1.0 ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼´Â ÀϰüµÇ°í Á¤È®ÇÏ°Ô »ç¿ëµÇ°í
ÀÖÁö ¾ÊÀº ÇÁ·ÎÅäÄÝ ¿ä¼Òµé¿¡ ´ëÇØ ±â¼úÇϵµ·Ï ÇÑ´Ù. ±¸ÇöÀÚµéÀº ÀÌ·¯ÇÑ °ÍÀ» Àß ¼÷ÁöÇϵµ·Ï ÇÏ¿©¾ß ÇÏÁö¸¸, ´Ù¸¥ HTTP/1.0 ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼
À̵é Á¸Àç¿¡ ÀÇÁ¸Çϰųª »óÈ£¿î¿ë¼º¿¡ ÀÇÁ¸Çϰųª ÇÒ ¼ö´Â ¾ø´Ù.
ÀÌ·¯ÇÑ °ÍµéÀÌ »ý±â°Ô µÈ °è±â´Â HTTP/1.0 ÇÁ·ÎÅäÄÝ ±Ô¾àÀÌ È®Á¤µÇ±â Àü±îÁö ¼ö½Ã·Î °³Á¤µÇ´ø µå·¡ÇÁÆ®µéÀ» ±âÁØÀ¸·Î ÀϺΠHTTP/1.0
ÀÀ¿ë ÇÁ·Î±×·¥µéÀÌ °³¹ßµÇ¾ú±â ¶§¹®ÀÌ´Ù. ¿¹ÀüÀÇ µå·¡ÇÁÆ®¿¡¼ ¸í½ÃµÈ ±â´ÉÀÌ ÇöÀçÀÇ ÃÖÁ¾ È®Á¤ ±Ô¾à¿¡´Â Æ÷ÇÔµÇÁö ¾ÊÀº °æ¿ìµéÀÌ ¸¹Àºµ¥, À̶§ »èÁ¦µÈ
ºÎºÐµéÀÌ ¸ðµç HTTP/1.0 ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ ÀϰüµÇ°Ô µ¿ÀÛÇÏÁö ¸øÇÏ´Â ±â´ÉµéÀÌ´Ù.
D.1 Ãß°¡ÀûÀÎ ¿ä±¸ Methods
D.1.1 PUT
PUT method´Â °°Àº ¿ä±¸ ¸Þ½ÃÁö¿¡ Æ÷ÇԵǾî ÀÖ´Â ¿£ÅÍÆ¼¸¦ ÁöÁ¤ÇÑ Request-URI¿¡ ÀúÀåÇ϶ó´Â
°ÍÀ» ¿ä±¸ÇÏ´Â °ÍÀÌ´Ù. ¸¸¾à Request-URI°¡ ÀÌ¹Ì Á¸ÀçÇϰí ÀÖ´Â ÀÚ¿øÀ» °¡¸®Å°°í ÀÖ´Ù¸é Æ÷ÇԵǾî ÀÖ´Â ¿£ÅÍÆ¼´Â ´ë»ó
ÀÚ¿ø¿¡ ´ëÇØ °»½ÅµÈ ÃÖ½ÅÀÇ °ÍÀ̶ó°í °£ÁÖÇϵµ·Ï ÇÏ¿©¾ß ÇÑ´Ù. ¸¸¾à ±âÁ¸ÀÇ ÀÚ¿øÀ» °¡¸®Å°Áö ¾Ê°í ÀÖÀ¸¸ç ÀÌ URI°¡ ¿ä±¸Çϰí ÀÖ´Â »ç¿ëÀÚ
¿¡ÀÌÀüÆ®¿¡ ÀÇÇØ »õ·Î¿î ÀÚ¿øÀ¸·Î¼ Á¤ÀÇµÉ ¼ö ÀÖ´Ù¸é, ¿ø¼¹ö´Â ÀÌ URI·Î ÇØ´ç ÀÚ¿øÀ» »ý¼º½Ãų ¼ö°¡ ÀÖ´Ù.
POST¿Í PUT »çÀÌÀÇ ±Ùº»ÀûÀÎ Â÷ÀÌ´Â Request-URI°¡ ´Ù¸¥ Àǹ̸¦ °¡Áø´Ù´Â
°ÍÀÌ´Ù. POST¿¡¼ÀÇ URI´Â µ¥ÀÌŸ ¼ö½Å ÇÁ·Î¼¼½º, ´Ù¸¥ ¾î¶² ÇÁ·ÎÅäÄݰúÀÇ °ÔÀÌÆ®¿þÀÌ, ¶Ç´Â ÁÖ¼®¹®À» ¹Þ¾ÆµéÀÌ´Â º°°³ÀÇ
¿£ÅÍÆ¼ µî°ú °°Àº ¾î¶² ÀÚ¿ø ¿ä¼Ò°¡ ¿ä±¸ ¸Þ½ÃÁö ³»¿¡ Æ÷ÇԵǾî ÀÖ´Â ¿£ÅÍÆ¼¸¦ ó¸®ÇØ¾ß ÇÒ µ¥ÀÌŸÀÇ ¿ä¼Ò·Î¼ ÁöÁ¤ÇÑ´Ù´Â °ÍÀÌ´Ù. Áï, URI´Â
¿ä±¸ ¸Þ½ÃÁö¿¡ Æ÷ÇԵǾî ÀÖ´Â ¿£ÅÍÆ¼¸¦ Ȱ¿ëÇÒ µ¥ÀÌŸ·Î¼ ó¸®ÇÏ´Â ¾î¶² ¿ä¼Ò¸¦ ÁöÁ¤Çϰí ÀÖ´Ù.
¹Ý¸é¿¡ PUT¿¡ ÀÖ¾î¼ÀÇ URI´Â ¿ä±¸ ¸Þ½ÃÁö¿¡ Æ÷ÇԵǾî ÀÖ´Â ¿£ÅÍÆ¼¸¦ ÁöÁ¤Çϰí ÀÖÀ¸¸ç, »ç¿ëÀÚ ¿¡ÀÌÀüÆ®´Â ¾î¶² URI°¡
¾²À̰í ÀÖ´ÂÁö ¾Ë°í ÀÖÀ¸¸ç ¼¹ö´Â ¿£ÅÍÆ¼¸¦ ´Ù¸¥ ÀÚ¿ø¿ä¼Ò·Î Àû¿ëÇÏÁö ¾Ê¾Æ¾ß ÇÑ´Ù.
D.1.2 DELETE
DELETE method´Â ¿ø¼¹ö¿¡°Ô Request-URI¿¡ ÁöÁ¤µÇ¾î ÀÖ´Â ÀÚ¿øÀ» »èÁ¦Çϵµ·Ï ¿äûÇÑ´Ù.
D.1.3 LINK
LINK method´Â Request-URI°¡ ÁöÁ¤Çϰí ÀÖ´Â ±âÁ¸ÀÇ ÀÚ¿ø°ú ±âÁ¸ÀÇ ´Ù¸¥ ÀÚ¿øµé »çÀÌ¿¡ Çϳª
¶Ç´Â ±× ÀÌ»óÀÇ ¸µÅ© °ü°è¸¦ »ý¼º½ÃŰ´Â ¿ªÇÒÀ» ÇÑ´Ù.
D.1.4 UNLINK
UNLINK method´Â Request-URI°¡ ÁöÁ¤ÇÑ ±âÁ¸ ÀÚ¿øÀ¸·ÎºÎÅÍ Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ ¸µÅ©
°ü°è¸¦ ÇØÁ¦½Ãų ¶§ »ç¿ëÇÑ´Ù.
D.2 Ãß°¡ÀûÀÎ Çì´õ Çʵå Á¤ÀÇ
D.2.1 Accept
Accept ¿ä±¸ Çì´õ Çʵå´Â ¿ä±¸¿¡ ´ëÇÑ ÀÀ´ä ¸Þ½ÃÁö·Î¼ Çã¿ëÇÒ ¼ö ÀÖ´Â ¹Ìµð¾î ¹üÀ§ÀÇ ¸ñ·ÏÀ» ¾Ë·ÁÁÙ ¶§ »ç¿ëÇÑ´Ù. ±×·ì
ÁöÁ¤À¸·Î¼ "*" ±ÛÀÚ°¡ ¾²ÀÏ ¼ö ÀÖÀ¸¸ç, "*/*" Ç¥½Ã´Â ¸ðµç Á¾·ùÀÇ ¹Ìµð¾î Çü½ÄÀ» Çã¿ëÇÑ´Ù´Â ¶æÀ̰í,
"type/*" Ç¥½Ã´Â ÇØ´ç type¿¡ ´ëÇÑ ¸ðµç Á¾·ùÀÇ subtype Çü½ÄÀ» Çã¿ëÇÑ´Ù´Â ¶æÀÌ´Ù.
D.2.2 Accept-Charset
Accept-Charset ¿ä±¸ Çì´õ Çʵå´Â ±âº» ¼³Á¤µÇ´Â US-ASCII¿Í ISO-8859-1 À̿ܿ¡ ¼±È£ÇÏ´Â ¹®ÀÚÁýÇÕÀÇ
¸ñ·ÏÀ» ÁöÁ¤ÇÒ ¶§ »ç¿ëÇÑ´Ù. ÀÌ Çʵå´Â, ±¤¹üÀ§ÇÑ ¹®ÀÚÁýÇÕÀ̳ª Ư¼ö ¸ñÀûÀÇ ¹®ÀÚÁýÇÕÀ» Áö¿øÇϴ Ŭ¶óÀÌ¾ðÆ®°¡ ÇØ´ç ¹®ÀÚÁýÇÕÀ¸·Î ¹®¼¸¦ Ç¥ÇöÇÒ ¼ö
ÀÖ´Â ¼¹ö¿¡°Ô ÀÚ½ÅÀÇ Ã³¸®´É·ÂÀ» ¾Ë·ÁÁÙ ¼ö ÀÖµµ·Ï ÇÑ´Ù.
D.2.3 Accept-Encoding
Accept-Encoding ¿ä±¸ Çì´õ Çʵå´Â AcceptÀÇ °æ¿ì¿Í ºñ½ÁÇÏÁö¸¸, ÀÀ´ä ¸Þ½ÃÁö¿¡ Çã¿ëÇÒ ¼ö
ÀÖ´Â content-coding ¿ä¼Ò¸¦ Á¦ÇÑÇÏ´Â °ÍÀÌ´Ù.
D.2.4 Accept-Language
Accept-Encoding ¿ä±¸ Çì´õ Çʵå´Â AcceptÀÇ °æ¿ì¿Í ºñ½ÁÇÏÁö¸¸, ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î¼
¼±È£ÇÏ´Â ¾ð¾îÀÇ ¸ñ·ÏÀ» ¸í½ÃÇÒ ¶§ ¾²ÀδÙ.
D.2.5 Content-Language
Content-Language ¿£ÅÍÆ¼ Çì´õ Çʵå´Â Æ÷ÇԵǾî ÀÖ´Â ¿£ÅÍÆ¼¿¡ ´ëÇØ Àû¿ëµÇ¾î ÀÖ´Â ¾ð¾î¸¦ Ç¥½ÃÇÑ´Ù. À̸¦ ÅëÇØ
¾î¶² »ç¶÷µé¿¡°Ô ÀÌ ¿£ÅÍÆ¼°¡ À¯È¿ÇÒ °ÍÀÎÁö ³ªÅ¸³¾ ¼ö ÀÖ´Ù. ÀÌ Çʵå´Â ¿£ÅÍÆ¼ ³»¿¡ »ç¿ëµÇ´Â ¸ðµç ¾ð¾îµéÀ» ÀüºÎ ¹Ý¿µÇÏÁö ¸øÇÒ ¼öµµ ÀÖ´Ù.
D.2.6 Link
Link ¿£ÅÍÆ¼ Çì´õ Çʵå´Â ¿£ÅÍÆ¼¿Í ´Ù¸¥ ¾î¶² ÀÚ¿ø »çÀÌÀÇ °ü°è¸¦ ³ªÅ¸³»´Â ¼ö´ÜÀ¸·Î ¾²ÀδÙ. ÇϳªÀÇ ¿£ÅÍÆ¼´Â ¿©·¯ °³ÀÇ
¸µÅ©°ªÀ» °¡Áú ¼ö ÀÖ´Ù. metainformation ·¹º§¿¡¼ÀÇ ¸µÅ©´Â °èÃþÀûÀÎ ±¸Á¶¿Í ÀÌ¿ë °æ·Î¿Í (navigation paths) °°ÀÌ
°ü·Ã¼ºÀ» ³ªÅ¸³¾ ¼ö ÀÖ´Ù.
D.2.7 MIME-Version
HTTP ¸Þ½ÃÁö´Â ¸Þ½ÃÁö¸¦ ±¸¼ºÇϱâ À§ÇØ »ç¿ëÇÑ MIME ÇÁ·ÎÅäÄÝÀÇ ¹öÀüÀ» ³ªÅ¸³»±â À§ÇØ MIME-Version ÀÏ¹Ý Çì´õ
Çʵ带 Æ÷ÇÔÇÒ ¼öµµ ÀÖ´Ù. RFC 1521 [5]¿¡¼ Á¤ÀÇÇϰí ÀÖ´Â °Í°ú °°ÀÌ MIME-Version ÀÏ¹Ý Çì´õ ÇʵåÀÇ »ç¿ëÀº
¸Þ½ÃÁö°¡ MIME Çü½ÄÀ» µû¸£°í ÀÖÀ½À» ÁöÁ¤ÇÏ´Â °ÍÀ̾î¾ß ÇÑ´Ù. ±×·¯³ª ºÒÇàÈ÷µµ ±âÁ¸ÀÇ ¿À·¡Àü HTTP/1.0 ¼¹öµéÀÇ °æ¿ì¿¡´Â À̰ÍÀ» µû¸£Áö
¾Ê°í ÀÖÀ¸¹Ç·Î ÀÌ Çʵ带 ¹«½ÃÇÏ¿©¾ß ÇÑ´Ù.
D.2.8 Retry-After
Retry-After ÀÀ´ä Çì´õ Çʵå´Â ¼¹öÀÇ ¼ºñ½º°¡ Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ¾ó¸¶ µ¿¾È Á¦°øµÇÁö ¸ø ÇÏ´ÂÁö ¾Ë·ÁÁÖ±â À§ÇØ 503
(service unavailable) ÀÀ´ä°ú ÇÔ²² ¾²ÀδÙ. ´Ù¸¥ °üÁ¡¿¡¼ ¹Ù¶óº¸ÀÚ¸é ¼¹ö°¡ °úºÎÇÏ¿Í °°Àº ÀÌÀ¯·Î Áö±Ý ÇöÀç ¼ºñ½º¸¦ Á¦°øÇÒ ¼ö
¾øÀ» ¶§ ¾ó¸¶ ½Ã°£ ÈÄ¿¡ ´Ù½Ã ¿äûÇ϶ó´Â Àǹ̷μ ÇØ¼®ÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù. ÀÌ ÇʵåÀÇ ÁöÁ¤°ªÀº HTTP-date ¶Ç´Â ÀÀ´äÀ»
º¸³½ ½Ã°¢ ÀÌÈÄÀÇ ÃÊ ´ÜÀ§ÀÇ ½ÊÁø¼ö·Î¼ Ç¥½ÃµÉ ¼ö ÀÖ´Ù.
D.2.9 Title
Title ¿£ÅÍÆ¼ Çì´õ Çʵå´Â ¿£ÅÍÆ¼ÀÇ Á¦¸ñÀ» Ç¥½ÃÇÏ´Â ÇʵåÀÌ´Ù.
D.2.10 URI
URI ¿£ÅÍÆ¼ Çì´õ Çʵå´Â Request-URI¿¡ ÀÇÇØ ¸í½ÃµÇ´Â URIÀÇ ÀϺΠ¶Ç´Â ÀüºÎ¸¦ ³ªÅ¸³¾ ¼ö
ÀÖ´Ù. ¿äûµÈ ÀÚ¿øÀÌ ÀÌ URI¸¦ ÅëÇØ Á¦°øµÇ´ÂÁö´Â º¸ÀåÇÒ ¼ö ¾ø´Ù.
¸¶Áö¸· ¼öÁ¤: 1996. 11. 16. by ±è ¿ë ¿î
Cache Error