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 ÀÌÁø¸ðµå·Î Àü¼ÛÇÏ¿©¾ß¸¸ ÇÑ´Ù.

TCP/IP Protocol Stack
[±×¸² 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 = <any US-ASCII digit "0"..."9">
"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ÀÇ Ç¥±â ¹æ¹ýÀº ¾Æ·¡¿Í °°ÀÌ ÇØ¼­ ¾²ÀδÙ.

<n>*<m>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 = <any 8-bit sequence of data>
CHAR = <any US-ASCII character (octets 0 - 127)>
UPALPHA = <any US-ASCII oppercase letter "A" .. "Z">
LOALPHA = <any US-ASCII lowercase letter "a" .. "z">
ALPHA = UPALPHA | LOALPHA
DIGIT = <any US-ASCII digit "0" .. "9">
CTL = <any US-ASCII control character (octets 0-31) and DEL(127)>
CR = <US-ASCII CR, carriage return (13)>
LF = <US-ASCII LF, linefeed (10)>
SP = <US-ASCII SP, space (32)>
HT = <US-ASCII HT, horizontal-tab (9)>
<"> = <US-ASCII double-quote mark (34)>
CRLF = CR LF
CR LF·Î ±¸¼ºµÇ¾î ÀÖÀ¸¸ç Entity-Body¸¦ Á¦¿ÜÇÑ ¸ðµç ÇÁ·ÎÅäÄÝ ¿ä¼Òµé¿¡ ´ëÇÑ ÁÙÀÇ ³¡(end-of-line)À» Ç¥½ÃÇÑ´Ù. Entity-Body ³»¿¡ ÀÖ´Â ÁÙÀÇ ³¡ Ç¥½Ã´Â 3.6Àý¿¡ ¼³¸íµÇ¾î ÀÖ´Â °Íó·³ °ü·Ã ¹Ìµð¾î Á¾·ù¿¡ ÀÇÇØ Á¤ÀǵȴÙ.
LWS = [CRLF] 1*(SP | HT)
HTTP ÇÁ·ÎÅäÄÝ Çì´õ°¡ ¿©·¯ ÁÙ·Î ±¸¼ºµÉ ¼ö Àִµ¥, À̶§ ´ÙÀ½ ÁÙ·ÎÀÇ °è¼Ó Ç¥½Ã¸¦ ³ªÅ¸³»´Â µ¥¿¡ ¾²ÀδÙ. ÁÙÀÇ Ã¹ ½ÃÀÛ¿¡ SP³ª HT°¡ ÀÖÀ¸¸é ¾Õ ÁÙÀÇ °è¼ÓÀ¸·Î¼­ ÀνĵȴÙ.
TEXT = <any OCTET except CTLs, but including LWS>
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*<any CHAR except CTLs or tspecials>
CTL ¹®ÀÚ³ª tspecials ¹®ÀÚ¸¦ Á¦¿ÜÇÑ Çϳª ÀÌ»óÀÇ ¹®ÀÚ·Î ±¸¼ºµÈ ±ÛÀÚ.
tspecials = "(" | ")" | "<" | ">" | "@" | "," | ";" | ":" | "\" | <"> | "/" | "[" | "]" | "?" | "=" | "{" | "}" | SP | HT
À§¿¡¼­ <"> Ç¥±â´Â "(" ÀÇ °æ¿ì¿Í ¶È°°ÀÌ ±× ¹®ÀÚ ÀÚü¸¦ ³ªÅ¸³½´Ù.
comment = "(" *(ctext | comment) ")"
HTTP ÇÁ·ÎÅäÄÝ Çì´õ ¼Ó¿¡ °ýÈ£ Ç¥½Ã·Î¼­ ¼³¸í¹®À» Æ÷ÇÔ½Ãų ¼ö ÀÖ´Ù.
ctext = <any TEXT excluding "(" and ")">
°ýÈ£¸¦ Á¦¿ÜÇÑ ¾î¶² ¹®ÀÚ¶óµµ °¡´ÉÇÏ´Ù.
quoted-string = (<"> *(qdtext) <">)
°ýÈ£ Ç¥½Ã ¼Ó¿¡ Àüü°¡ µé¾î ÀÖÀ¸¹Ç·Î ÇÑ °¡Áö ¿ä¼Ò·Î¼­ Ãë±ÞµÈ´Ù. ¿¹¸¦ µé¾î, "I Love You!" °¡ ÀÌÀÇ ¿¹°¡ µÈ´Ù.
qdtext = <any CHAR except <"> 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/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 = <any OCTET excluding ALPHA, DIGIT, reserved, extra, safe, and unsafe>

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 = <A legal Internet host domain name or IP address (in dotted- decimal form), as defined by Section 2.1 of RFC 1123> 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 = <the OCTETs making up the field-value and consisting of either *TEXT or combinations of token, tspecials, and quoted-string>

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 = <base64 encoding of userid-password, except not limited to 76 char/line> userid-password = [token] ":" *TEXT auth-scheme = token auth-param = token "=" quoted-string quoted-string = (<"> *(qdtext) <">) qdtext = <any CHAR except <"> 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 = <any OCTET excluding ALPHA, DIGIT, reserved, extra, safe, and unsafe> 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 = *<TEXT, excluding CR and LF> ÀÌ·¯ÇÑ »óÅ ǥ½ÃÁÙÀº Ç×»ó ´ÙÀ½°ú °°Àº ÇÁ·ÎÅäÄÝ ¹öÀü°ú »óÅÂÄÚµå·Î ½ÃÀÛÇϱ⠶§¹®¿¡, "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¸¦ °Ë»çÇØ º¸°Å³ª È­¸é¿¡ º¸ÀÌ°Ô ÇÒ ÇÊ¿ä´Â ¾ø´Ù.

ù ¹øÂ° ÀÚ¸® ¼ýÀÚ´Â ÀÀ´äÀÇ Á¾·ù¿¡ ´ëÇÑ ºÐ·ù ±âÈ£À̸ç, ³ª¸ÓÁö µÎ ÀÚ¸® ¼ýÀÚ´Â ÀϷùøÈ£ÀÌ´Ù. ÇöÀç ù ¹øÂ° ÀÚ¸® ¼ýÀÚ¿¡ ´ëÇØ ´Ù¼¸ °¡Áö·Î ºÐ·ùÇÏ¿© ¾²°í ÀÖ´Ù.

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 = *<TEXT, excluding CR, LF>

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´Â ´ÙÀ½°ú °°Àº ±â´ÉÀ» ¼öÇàÇϱâ À§ÇÑ ÇÑ °¡Áö ¹æ¹ýÀ¸·Î ¼³°èµÇ¾ú´Ù.

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 = <base64 encoding of userid-password, except not limited to 76 char/line> userid-password = [token] ":" *TEXT auth-scheme = token auth-param = token "=" quoted-string quoted-string = (<"> *(qdtext) <">) qdtext = <any CHAR except <"> 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 Çì´õ¿¡ ÀÇÇØ ÁÖ¾îÁø ³¯Â¥ ÀÌÈÄ¿¡ ¼öÁ¤µÈ °æ¿ì¿¡¸¸ Àü´ÞÇϵµ·Ï ÇÏ´Â °ÍÀÌ´Ù. À̰ÍÀ» °áÁ¤ÇÏ´Â ¾Ë°í¸®ÁòÀº ´ÙÀ½ÀÇ °æ¿ìµéÀ» Æ÷ÇÔÇÑ´Ù.

  1. ¸¸¾à Á¶°ÇºÎ GET ¿ä±¸°¡ 200 (ok)°¡ ¾Æ´Ñ ´Ù¸¥ ¾î´À »óŸ¦ À¯¹ßÇϰųª Àü´ÞµÈ If-Modified-Since ³¯Â¥°¡ ºÎÀûÀýÇÑ °ÍÀ̶ó¸é ÀÀ´äÀº ÀϹÝÀûÀÎ GETÀÇ ±â´É°ú ¶È°°ÀÌ Ã³¸®µÇ¾î¾ß ÇÑ´Ù. ¼­¹öÀÇ ÇöÀç ½Ã°¢ ¹× ³¯Â¥º¸´Ù ´Ê´Â °æ¿ì¿¡´Â ºÎÀûÀýÇÑ °ÍÀÌ´Ù.

  2. ÀÚ¿øÀÌ If-Modified-Since ³¯Â¥ ÀÌÈÄ·Î ¼öÁ¤µÇ¾ú´Ù¸é ÀÀ´äÀº ÀϹÝÀûÀÎ GET¿¡¼­ÀÇ °æ¿ì¿Í ¶È°°ÀÌ Ã³¸®µÇ¾î¾ß ÇÑ´Ù.

  3. ÀÚ¿øÀÌ 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 = <base64 encoding of userid-password, except not limited to 76 char/line> 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 ±è ¿ë ¿î