Protocols for the World-Wide Web Service
(HTTP/1.0, HTTP/1.1, PEP, and HTTP-NG)

305-350, ´ëÀü±¤¿ª½Ã À¯¼º±¸ °¡Á¤µ¿ 161¹øÁö
Çѱ¹ÀüÀÚÅë½Å¿¬±¸¼Ò ¸ÖƼ¹Ìµð¾îÇ¥ÁØ¿¬±¸½Ç
±è ¿ë ¿î
E-mail : qkim@pec.etri.re.kr
URL : http://pec.etri.re.kr/~qkim/

World-Wide Web ¼­ºñ½º ÀÚü¸¦ À§ÇØ ¾²ÀÌ´Â ÇÁ·ÎÅäÄÝÀº HTTP¶ó°í ÇÏ´Â °ÍÀÌ´Ù. ÃÖÃÊ¿¡ °³¹ßµÇ¾úÀ» ¶§´Â ´ÜÁö ½ÇÁ¦ µ¥ÀÌŸÀÇ Àü¼Û¸¸À» À§ÇØ ¾²¿´À¸³ª Áö±ÝÀº ´Ù¾çÇÑ ±â´ÉÀ» ÇÁ·ÎÅäÄÝ¿¡ ³Ö°íÀÚ Çϰí ÀÖ´Ù. ÀÌ·¯ÇÑ °úÁ¤À¸·Î °³¹ßµÇ°í ÀÖ´Â ´Ù¾çÇÑ ÇÁ·ÎÅäÄݵéÀ» ¿©±â¼­ Á¤¸®ÇϰíÀÚ ÇÏ¸ç ¹Ìó Á¤¸®ÇÏÁö ¸øÇÑ ´Ù¸¥ ÇÁ·ÎÅäÄݵéÀº ´ÙÀ½ ±âȸ¿¡ Á¤¸®ÇϰíÀÚ ÇÑ´Ù. ÀÌ ±Û¿¡¼­´Â ¾Æ·¡ÀÇ ³× °¡Áö ÇÁ·ÎÅäÄÝ¿¡ ´ëÇØ »ìÆìº¸µµ·Ï ÇÑ´Ù.


HyperText Transfer Protocol - HTTP/1.0
(Korean Version 2.0)

Abstract:
HTTP´Â HyperText Transfer ProtocolÀÇ ¾àÀÚÀ̸ç, ºÐ»êȯ°æ ¹× °øµ¿ÀÛ¾÷ ȯ°æ¿¡ ÀÌ¿ëÇÒ ÇÏÀÌÆÛ¹Ìµð¾î Á¤º¸½Ã½ºÅÛÀÇ °³¹ßÀ» ¸ñÀûÀ¸·Î ¼³°èµÈ ÀÀ¿ë°èÃþÀÇ ÇÁ·ÎÅäÄݷμ­ WWW¿¡¼­ÀÇ ÇÏÀÌÆÛÅØ½ºÆ® ¹®¼­ÀÇ Àü¼ÛÀ» À§ÇØ ¾²ÀÌ´Â ÇÁ·ÎÅäÄÝÀ̶õ ¶æÀÌ´Ù. ±×·¯³ª ±Û¶æ¿¡¼­ º¸ÀÌ´Â HyperText ¹®¼­¸¸ÀÌ ¾Æ´Ï¶ó À½¼º, È­»ó, µ¥ÀÌŸ µî°ú °°ÀÌ MIME¿¡ ÀÇÇØ Á¤ÀÇµÉ ¼ö ÀÖ´Â ¸ðµç ¹®¼­ Çü½ÄÀ» Àü¼ÛÇÒ ¼ö ÀÖ´Ù. À̰ÍÀº HTTP ÇÁ·ÎÅäÄÝÀÇ ±âº»ÀûÀÎ Àü¼Û ¹æ½ÄÀÌ ÀÌÁø¸ðµå(binary mode)¿¡ ±Ù°ÅÇϰí Àֱ⠶§¹®ÀÌ´Ù. ¿©±â¿¡¼­´Â HTTP ÇÁ·ÎÅäÄÝÀÇ ±¸Á¶¿Í µ¿ÀÛ ¸ÞÄ«´ÏÁò¿¡ ´ëÇØ »ìÆìº¸°íÀÚ ÇÑ´Ù.[1]

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¿¡ Ãß°¡µÉ ¿¹Á¤ÀÌ´Ù. º» ¹®¼­ÀÎ 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.html ÀÌ´Ù. ÃÖÁ¾ÀûÀ¸·Î Á¤¸®µÉ ¿Ï°áÆÇÀº Korean Version 3À¸·Î Á¤¸®µÉ °ÍÀ̸ç À§Ä¡ÇÏ´Â °÷Àº http://pec.etri.re.kr/~qkim/HTTP/http10v3.html ÀÌ´Ù. WWW¿¡¼­ »ç¿ëÇÏ´Â °¢Á¾ ÇÁ·ÎÅäÄÝ¿¡ ´ëÇÑ ¹®¼­ Á¤¸®´Â http://pec.etri.re.kr/~qkim/HTTP/¿¡ Á¤¸®µÇ°í ÀÖÀ¸¸ç ¹®¼­ ³»¿ëÀÇ º¯°æ¿¡ ´ëÇÑ ¾Ë¸²±ÛÀÌ ÀÖ´Ù.

1. ¼­·Ð

1.1 HTTP vs. TCP/IP

HTTP´Â World Wide Web¿¡¼­ »ç¿ëÇϰí ÀÖ´Â µ¥ÀÌŸ Àü¼Û ÇÁ·ÎÅäÄÝÀ̸ç MIMEÀ¸·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ¸ðµç µ¥ÀÌŸ Çü½Ä¿¡ ´ëÇØ 8bit ÀÌÁø¸ðµå·Î Àü¼ÛÇÒ ¼ö ÀÖ´Ù. (8bit ÀÌÁø¸ðµå Àü¼ÛÀ̶ó ÇÔÀº 1bitµµ ºüÁü¾øÀÌ ¿ÏÀü¹«°áÇÏ°Ô Àü¼ÛÇÑ´Ù´Â °ÍÀ̸ç 7bit ¾Æ½ºÅ°¸ðµå Àü¼ÛÀ̶ó ÇÔÀº 8bit ±âº» ´ÜÀ§¿¡¼­ MSB 1bitÀÇ ¿ÏÀü¹«°á¼ºÀ» º¸ÀåÇÏÁö ¸ø ÇÑ´Ù´Â °ÍÀ̹ǷΠµ¥ÀÌŸ Àü¼Û¿¡ ¿À·ù°¡ »ý±æ °¡´É¼ºÀÌ ÀÖ´Ù. µû¶ó¼­ ASCII ÅØ½ºÆ® ¹®¼­¸¦ Àü¼ÛÇÒ ¶§´Â 7bit ¾Æ½ºÅ°¸ðµå·Î Àü¼ÛÀ» ÇØµµ µÇÁö¸¸ ½ÇÇàÆÄÀϰú °°Àº binary data¸¦ Àü¼ÛÇϰíÀÚ ÇÒ ¶§´Â ¹Ýµå½Ã 8bit ÀÌÁø¸ðµå·Î Àü¼ÛÇÏ¿©¾ß¸¸ ÇÑ´Ù.)

À̰ÍÀº FTPÀÇ °æ¿ì¿¡¼­¿Í °°ÀÌ ÀÌÁø¸ðµå·Î µ¥ÀÌŸ ¼Û¼ö½ÅÀÌ °¡´ÉÇÔÀ» ¶æÇϸç, ´Ù¸¸ WWW¿ëÀÇ Ãß°¡ÀûÀÎ Á¤º¸°¡ HTTP ÇÁ·ÎÅäÄÝ¿¡¼­ Ȱ¿ëµÇ°í ÀÖÀ» »ÓÀÌ´Ù. µû¶ó¼­ HTTP ÇÁ·ÎÅäÄÝÀº TCP/IP ÇÁ·ÎÅäÄÝ Ã¼°è °¡¿îµ¥ TELNETÀ̳ª FTP¿Í °°Àº ÀÀ¿ë ÇÁ·ÎÅäÄÝÀÇ ÇÑ °¡ÁöÀÌ´Ù. Áï, ¾Æ·¡ÀÇ ±×¸²¿¡¼­ º¸ÀÌ´Â °Íó·³ HTTP´Â TELNETó·³ TCP ¼ö¼Û°èÃþ ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇØ¼­ µ¥ÀÌŸ ¼Û¼ö½ÅÀ» ÇÏ´Â ÀÀ¿ë °èÃþ ÇÁ·ÎÅäÄÝÀÇ ÀÏÁ¾À̶ó´Â °ÍÀÌ´Ù.

TCP/IP ÇÁ·ÎÅäÄÝ¿¡¼­´Â TCP Àü¼Û ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇÏ´Â ÀÀ¿ë ÇÁ·ÎÅäÄÝµé »çÀÌÀÇ ±¸º°À» port ¹øÈ£¸¦ ÅëÇØ ÇØ°áÇϰí ÀÖ´Ù. ±×·¯¹Ç·Î HTTP ÀÀ¿ë ÇÁ·ÎÅäÄÝ¿¡ ÇÒ´çµÇ¾î »ç¿ëÇÏ´Â TCP Æ÷Æ®°¡ ÀÖÀ¸¸ç 80¹øÀ¸·Î ÁöÁ¤µÇ¾î ÀÖ´Ù. Á¤ÀǵǾî ÀÖÁö ¾ÊÀº ´Ù¸¥ ÀÓÀÇÀÇ Æ÷Æ®¸¦ ÀÌ¿ëÇÒ ¼öµµ ÀÖÀ¸³ª ±âº»ÀûÀ¸·Î Á¤ÀǵǾî ÀÖ´Â ¹øÈ£´Â 80¹øÀÌ´Ù.

±×·¸´Ù°í ÇØ¼­ HTTP ÇÁ·ÎÅäÄÝÀº TCP/IP¿¡¼­¸¸ µ¿ÀÛÇÒ ¼ö ÀÖ´Â °ÍÀº ¾Æ´Ï´Ù. OSI ÂüÁ¶¸ðµ¨À» ÀÌ¿ëÇÑ ÇÁ·ÎÅäÄÝ Ã¼°è¿¡¼­µµ ¼ö¼Û°èÃþÀÇ Àü¼Û ÇÁ·ÎÅäÄÝ »óÀ§¿¡¼­ HTTP ÇÁ·ÎÅäÄÝÀº ÀÀ¿ë ÇÁ·ÎÅäÄݷμ­ Ȱ¿ëµÉ ¼ö ÀÖ´Â °ÍÀÌ´Ù. ´Ù¸¸ ´Ù¸¥ ÇÁ·ÎÅäÄÝ Ã¼°è¿¡¼­ »ç¿ëÇϰíÀÚ ÇÒ ¶§´Â ±×¿¡ ¸Â°Ô²û ¾à°£ÀÇ ÀûÀýÇÑ ¼öÁ¤À» ÇØ¾ß¸¸ °¡´ÉÇÒ °ÍÀÌ´Ù.

TCP/IP Protocol Stack
[±×¸² 1] TCP/IP Protocol Stack[2]

¹öÀü 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 µî°ú °°Àº ±âÁ¸ ÇÁ·ÎÅäÄݰúÀÇ Åë½ÅÀ» °¡´ÉÇÏ°Ô ÇØÁÖ´Â ÇÁ·ÎÅäÄÝÀÇ ¿ªÇÒÀ» ÇϰԲû ÇÒ ¼öµµ ÀÖ´Ù. ÀÌ¿¡ µû¶ó ±âÁ¸ÀÇ ÃàÀûµÇ¾î ÀÖ´Â ÇÏÀÌÆÛ¹Ìµð¾î Á¤º¸µéÀ» ±×´ë·Î Ȱ¿ëÇÒ ¼ö ÀÖ°Ô ÇÏ¸ç »ç¿ëÀÚ ºê¶ó¿ìÀúÀÇ ±¸Çöµµ ´Ü¼øÈ­ ½Ãų ¼ö ÀÖ°Ô ÇÑ´Ù.

1.3 HTTP ÇÁ·ÎÅäÄÝ ±Ô°Ý¼­¿¡ ¾²ÀÌ´Â ¿ë¾î

HTTP ÇÁ·ÎÅäÄÝ ¼³¸í¼­¿¡´Â ¿©·¯ °¡Áö ¿ë¾îµéÀÌ ¾²À̰í ÀÖÀ¸¸ç ÁÖ¿ä ¿ë¾îµé¿¡ ´ëÇØ ¼³¸íÇϵµ·Ï ÇÑ´Ù.

¿¬°á(connection)
µ¥ÀÌŸ ¼Û¼ö½ÅÀ» À§ÇØ µÎ °³ÀÇ ÀÀ¿ë ÇÁ·Î±×·¥ »çÀÌ¿¡ TCP µ¥ÀÌŸ Àü¼Û ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇØ¼­ ¸¸µé¾îÁø °¡»óÀûÀÎ ¿¬°á¼±

¸Þ½ÃÁö(message)
HTTP ÇÁ·ÎÅäÄÝÀÇ Åë½ÅÀ» À§ÇØ »ç¿ëµÇ´Â ±âº»ÀûÀÎ ¼Û¼ö½Å ´ÜÀ§

¿ä±¸(request)
HTTP ÇÁ·ÎÅäÄÝ »ó¿¡¼­ ºê¶ó¿ìÀú°¡ ¾î¶² µ¥ÀÌŸ ¿ä±¸¸¦ Çϱâ À§ÇØ º¸³»´Â HTTP ¸Þ½ÃÁö

ÀÀ´ä(response)
HTTP ÇÁ·ÎÅäÄÝ »ó¿¡¼­ ¼­¹ö°¡ ¼ö½ÅÇÑ ¿ä±¸¿¡ ´ëÇØ ó¸®ÇÑ °á°ú¸¦ ºê¶ó¿ìÀú¿¡°Ô ÀÀ´äÀ¸·Î º¸³»´Â HTTP ¸Þ½ÃÁö

ÀÚ¿ø(resource)
URI¿¡ ÀÇÇØ ÁöÁ¤µÉ ¼ö ÀÖ´Â ¼­ºñ½º ¶Ç´Â Åë½Å¸Á »óÀÇ µ¥ÀÌŸ

¿£ÅÍÆ¼(entity), °³Ã¼
Àü¼Û °¡´ÉÇÑ µ¥ÀÌŸ ÀÚ¿ø ¶Ç´Â ¾î´À ¼­ºñ½º Á¦°ø¿ë ¼­¹ö·ÎºÎÅÍÀÇ ÀÀ´äÀÌ ¿£ÅÍÆ¼°¡ µÉ ¼ö ÀÖÀ¸¸ç, À̰ÍÀº ¿ä±¸ ¶Ç´Â ÀÀ´ä ¸Þ½ÃÁö¿¡ Æ÷Ç﵃ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ¿£ÅÍÆ¼´Â ±× ÀÚü Á¤º¸(content)¿Í À̰ÍÀÌ ¾î¶² ÇüÅÂÀÇ µ¥ÀÌŸÀÎÁö ¾Ë·ÁÁÖ´Â metainformationÀ¸·Î (4.2.4 ÂüÁ¶) ±¸¼ºµÇ¾î ÀÖ´Ù.

Ŭ¶óÀ̾ðÆ®(client)
HTTP ÇÁ·ÎÅäÄÝ ±Ô¾à¿¡ ¸ÂÃß¾î ¿ä±¸¸¦ º¸³»°í ¼­¹ö°¡ º¸³»¿À´Â ÀÀ´äÀ» ¼ö½ÅÇÏ´Â ¿ªÇÒÀ» Çϸç, ÀÌ·± ¼Û¼ö½ÅÀ» À§ÇØ ¿¬°áÀ» ¼³¸³ÇÏ´Â ÀÀ¿ë ÇÁ·Î±×·¥. ºê¶ó¿ìÀú¶ó°í ºÒ¸®±âµµ ÇÑ´Ù.

ºê¶ó¿ìÀú(browser), »ç¿ëÀÚ ¿¡ÀÌÀüÆ®(user agent)
¿ä±¸¸¦ ¹ß»ý½ÃŰ´Â ¿ªÇÒÀ» Çϴ Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥. ºê¶ó¿ìÀú, editors, spiders(web-traversing robots) µî.

¼­¹ö(server)
¿äû¹ÞÀº ¼­ºñ½º¸¦ Á¦°øÇØÁÖ±â À§ÇØ ¿¬°áÀ» Çã¿ëÇÏ´Â ÀÀ¿ë ÇÁ·Î±×·¥

origin server
½ÇÁ¦ µ¥ÀÌŸ¸¦ ÀúÀåÇØµÎ°í Àְųª ¿ä±¸¿¡ ÀÇÇØ ÀúÀåÇÒ ¼ö ÀÖ´Â Àå¼Ò

ÇÁ¶ô½Ã(proxy)
´Ù¸¥ Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥°úÀÇ »çÀÌ¿¡¼­ ¼­¹ö·Î¼­µµ Ŭ¶óÀÌ¾ðÆ®·Î¼­µµ µ¿ÀÛÇÏ´Â Áß°è ÇÁ·Î±×·¥. requests´Â ³»ºÎÀûÀÎ µ¿ÀÛ¿¡ ÀÇÇØ 󸮵Ǿî Á¦°øµÇµçÁö, ¾Æ´Ï¸é ´Ù¸¥ ¼­¹ö·Î Àü´ÞµÇµçÁö ÇÑ´Ù.

°ÔÀÌÆ®¿þÀÌ(gateway)
´Ù¸¥ ¼­¹ö¿ÍÀÇ Áß°è ¿ªÇÒÀ» ÇÏ´Â ¼­¹ö. ÇÁ¶ô½Ã¿Í´Â ´Þ¸® ºê¶ó¿ìÀú°¡ ¿ä±¸ÇÑ °Í¿¡ ´ëÇØ ¸¶Ä¡ ½ÇÁ¦ ¼­¹öÀÎ¾ç ¼­ºñ½º¸¦ Á¦°øÇØÁØ´Ù. µû¶ó¼­ ºê¶ó¿ìÀú¿¡¼­´Â Á¦°ø¹ÞÀº ¼­ºñ½º°¡ °ÔÀÌÆ®¿þÀ̷κÎÅÍ Àü´ÞµÈ °ÍÀÎÁö ¸ð¸¥´Ù.

ij½Ã(cache)
ÀÀ´ä¹ÞÀº ¸Þ½ÃÁö¸¦ ÀÚ½ÅÀÇ ÄÄÇ»ÅÍ¿¡ ÀúÀåÇÑ Àå¼Ò ¶Ç´Â ÀúÀå/°Ë»ö/»èÁ¦°¡ °¡´ÉÇϵµ·Ï ¸¸µç ÀúÀå ½Ã½ºÅÛ. ÀÌ¹Ì °¡Á®¿Â µ¥ÀÌŸ¸¦ ÀúÀåÇØµÎ°í ÀÖ´Ù°¡ °°Àº µ¥ÀÌŸÀÎ °æ¿ì ´Ù½Ã °¡Á®¿ÀÁö ¾Ê°í ÀúÀåµÇ¾î ÀÖ´Â °ÍÀ» º¸¿©ÁÖµµ·Ï ÇÏ¿© ÀÀ´ä ½Ã°£À» ºü¸£°Ô Çϰí Åë½Å¸Á ÀÌ¿ëÀÇ È¿À²¼ºÀ» ³ôÀδÙ.

ÅͳÎ(tunnel)
µÎ °³ÀÇ ¿¬°á »çÀÌ¿¡¼­ ¹«Á¶°Ç Áß°è(blind relay)ÀÇ ¿ªÇÒÀ» ÇÏ´Â Áß°£ ÇÁ·Î±×·¥.

1.4 HTTP ÇÁ·ÎÅäÄÝÀÇ µ¿ÀÛ

HTTP ÇÁ·ÎÅäÄÝÀº ¿ä±¸/ÀÀ´ä (Request/Response) ¹æ½ÄÀ» ÀÌ¿ëÇÏ¿© µ¿ÀÛÇϰí ÀÖ´Ù. Áï, ¿øÇÏ´Â ÇÁ·ÎÅäÄÝ ±â´É(¿¹: GET, HEAD, POST)¿¡ ´ëÇØ ¼­ºñ½º ¿ä±¸¸¦ ÇÏ¸é µ¥ÀÌŸ ¼Û¼ö½ÅÀ» À§ÇÑ TCP ¿¬°áÀÌ ¸¸µé¾îÁö°í, ¼­¹ö°¡ ÀÀ´äÀ» º¸³»¾î µ¥ÀÌŸ Àü¼ÛÀ» ³¡³»¸é ÀÚµ¿ÀûÀ¸·Î ¿¬°áÀÌ ²÷¾îÁö°Ô µÇ´Â °ÍÀÌ´Ù.

Áï, Ŭ¶óÀÌ¾ðÆ®´Â ¼­¹ö¿ÍÀÇ »çÀÌ¿¡ TCP¸¦ ±â¹ÝÀ¸·Î ÇÑ HTTP ¿¬°áÀ» ¸¸µé°í method, URI, protocol version, Ŭ¶óÀÌ¾ðÆ® Á¤º¸, »ç¿ëÀÚ µ¥ÀÌŸ µî°ú °°ÀÌ ±ÔÁ¤µÇ¾î ÀÖ´Â ¿ä±¸ Çü½Ä¿¡ µû¶ó ¼­¹ö¿¡°Ô ¿ä±¸ ¸Þ½ÃÁö¸¦ º¸³½´Ù. ¼­¹ö´Â ÇÁ·ÎÅäÄÝ ¹öÀü, ¼º°ø ¶Ç´Â ¿À·ùÄÚµå ¹øÈ£, ¼­¹ö Á¤º¸, µ¥ÀÌŸ Á¤º¸, »ç¿ëÀÚ µ¥ÀÌŸ µîÀ» Æ÷ÇÔÇÏ´Â ÀÀ´ä ¸Þ½ÃÁö¸¦ º¸³½´Ù.

¾Æ·¡ 1.4.1Àý°ú 1.4.2Àý¿¡ ¿ä±¸¿Í ÀÀ´äÀÇ °æ¿ì¿¡ ´ëÇÑ °£´ÜÇÑ ¿¹¸¦ º¸À̰í ÀÖ´Ù.

1.4.1 Requests

HTTPÀÇ Request Çü½ÄÀº ¾ÆÁÖ °£´ÜÇÏ´Ù. ù ¹øÂ° Á٠óÀ½¿¡ ¾î¶² ±â´ÉÀ» ÀÌ¿ëÇÏ·Á´ÂÁö ÁöÁ¤À» ÇÑ´Ù. °¡Àå ÀϹÝÀûÀ¸·Î ¾²À̰í ÀÖ´Â °ÍÀÌ GET ÀÌ´Ù. À̰ÍÀº ºê¶ó¿ìÀú°¡ ¼­¹ö¿¡°Ô ¹®¼­¸¦ º¸³»´Þ¶ó°í ¿äûÇÏ´Â °ÍÀÌ´Ù. ±× ´ÙÀ½¿¡´Â È­ÀÏ À̸§Ã³·³ ´ë»óÀÌ µÇ´Â °ÍÀ» ÁöÁ¤Çϰí ÇöÀç ¾²À̰í ÀÖ´Â HTTP ÇÁ·ÎÅäÄÝÀÇ ¹öÀüÀ» ÁöÁ¤ÇÑ´Ù. ÀÌ ´ÙÀ½¿¡´Â ÀÏ·ÃÀÇ ÁöÁ¤ »çÇ×µéÀ» µ¡ºÙÀÏ ¼ö°¡ ÀÖÀºµ¥, ¿¹¸¦ µé¾î ºê¶ó¿ìÀúÀÇ Á¾·ù³ª ºê¶ó¿ìÀú°¡ ´Ù·ê ¼ö ÀÖ´Â µ¥ÀÌŸ Çü½Ä µîÀÌ´Ù. ¾Æ·¡¿Í °°Àº ¿¹¸¦ º¼ ¼ö ÀÖ´Ù.

Request Example
GET  /index.html  HTTP/1.0
Accept: text/plain
Accept: text/html
Accept: */*
User-Agent: Netscape 1.2

1.4.2 Responses

HTTP¿¡¼­ÀÇ ÀÀ´ä Çü½Äµµ ¾ÆÁÖ °£´ÜÇÏ°Ô ±¸¼ºµÇ¾î ÀÖ´Ù. ¼­¹ö¿¡¼­ ¾²À̰í ÀÖ´Â ÇÁ·ÎÅäÄÝ ¹öÀü, Request¿¡ ´ëÇÑ ½ÇÇà °á°ú, Àü´ÞÇØÁÙ µ¥ÀÌŸÀÇ Çü½Ä, µ¥ÀÌŸ ±æÀÌ µî°ú °°Àº Ãß°¡ÀûÀÎ Á¤º¸°¡ Àü´ÞµÇ°í, ÀÌ·¯ÇÑ Çì´õ Á¤º¸ÀÇ ³¡À» ³ªÅ¸³»´Â ºóÁÙÀÌ µé¾î°¡°í, µÚÀÌ¾î ½ÇÁ¦ µ¥ÀÌŸ°¡ Àü´ÞµÈ´Ù. µ¥ÀÌŸ Àü´ÞÀÌ ³¡³ª¸é ¼­¹ö´Â ¿¬°áÀ» ²÷´Â´Ù. ¾Æ·¡¿Í °°Àº ¿¹¸¦ º¼ ¼ö ÀÖ´Ù.

Response Example
HTTP/1.0 200 OK
Server: MDMA/0.1
MIME-version: 1.0
Content-type: text/html
Last-Modified: Thu Jul 7 00:25:33 1994
Content-Length: 2003
Right here waiting for you...

1.5 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
"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°³ÀÇ element ¿ä¼Ò·Î ±¸¼ºµÇ´Â ÇÑ °¡Áö °á°ú¸¦ ÀǹÌÇÑ´Ù. Áï, 1*2DIGIT ¶ó´Â Ç¥ÇöÀº ¼ýÀÚ°¡ Àû¾îµµ ÇÑ °³ ÃÖ´ë µÎ °³·Î ±¸¼ºµÇ¾î ÇÑ °³ÀÇ ¼ö¸¦ ³ªÅ¸³½´Ù´Â ¶æÀÌ´Ù. 4´Â ÇÑ °¡Áö ¿¹À̸ç, 45µµ ÇÑ °¡Áö ¿¹°¡ µÈ´Ù. ±×·¯³ª 345ÀÇ °æ¿ì¿¡´Â ¼ýÀÚ ¼¼ °³·Î ±¸¼ºµÇ¾î ÀÖÀ¸¹Ç·Î ÃÖ¼Ò °¹¼ö¿Í ÃÖ´ë °¹¼ö¿¡ À§¹èµÇ¾î ÀûÇÕÇÏÁö ¾Ê´Ù.

nÀÇ ±âº»°ªÀº 0À̸ç mÀÇ ±âº»°ªÀº ¹«ÇÑ´ëÀÌ´Ù. ±×·¯¹Ç·Î "*(element)"´Â 0°³¸¦ Æ÷ÇÔÇØ¼­ ¾î¶² °¹¼ö¶óµµ °¡´ÉÇÑ Ç¥Çö¹ýÀÌ´Ù. "1*element"ÀÇ °æ¿ì´Â Àû¾îµµ ÇÑ °³´Â ÀÖ¾î¾ß Çϸç ÃÖ´ë °¹¼ö¿¡´Â Á¦ÇÑÀÌ ¾ø´Ù.

[rule]
¼±ÅÃÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â ¶æÀÌ´Ù. ¿¹¸¦ µé¾î, "[foo bar]" À̰ÍÀº "foo bar"¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ°í »ç¿ëÇÏÁö ¾ÊÀ» ¼öµµ ÀÖ´Ù´Â °ÍÀÌ´Ù. ±×·¯¹Ç·Î "*1(foo bar)"·Î Ç¥ÇöÇÒ ¼ö ÀÖ´Ù.

N rule
ƯÁ¤ Ƚ¼ö¸¸Å­ÀÇ ¹Ýº¹À» ³ªÅ¸³½´Ù. 2DIGITÀº µÎ ÀÚ¸® ¼ýÀÚ¸¦ ³ªÅ¸³½´Ù´Â °ÍÀÌ´Ù. µû¶ó¼­ "*(element)"·Î ³ªÅ¸³¾ ¼ö ÀÖ´Â °ÍÀÌ´Ù.

#rule
¾Õ¼­ ¼³¸íÇÑ °Íó·³ ¹Ýº¹À» ³ªÅ¸³»±ä ÇÏÁö¸¸ ¿ä¼ÒµéÀÇ ³ª¿­·Î¼­ Ç¥ÇöµÇ´Â °ÍÀÌ´Ù. Áï, 1#Method ¶ó°í Çϸé MethodÀÇ ¿ä¼ÒµéÀº GET, HEAD, POST µîÀ̹ǷΠÀû¾îµµ ÇÑ °³ÀÇ Method°¡ ÀÖ¾î¾ß Çϰí ÃÖ´ë °¹¼ö´Â Á¦ÇÑÀÌ ¾ø´Ù´Â °ÍÀ¸·Î ÀÌÇØÇÒ ¼ö ÀÖ´Ù. ´Ù½Ã ¸»ÇØ GET Çϳª¸¸À¸·Î ±¸¼ºµÉ ¼öµµ ÀÖ°í, GET, HEAD, POST ÀÌ·¸°Ô ¼¼ °¡Áö ¿ä¼ÒµéÀÇ ³ª¿­·Î¼­ Ç¥ÇöµÉ ¼öµµ ÀÖ´Ù´Â °ÍÀÌ´Ù. °¢ ¿ä¼Òµé »çÀÌÀÇ ±¸ºÐÀº ','¸¦ ÀÌ¿ëÇÑ´Ù. ¶Ç ´Ù¸¥ ¿¹¸¦ µéÀÚ¸é, 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 ±âº»ÀûÀÎ ±ÔÄ¢

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)À» Ç¥½ÃÇÑ´Ù. 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 ºÎºÐÀº ÆÄ¶ó¹ÌÅÍ º¯°æ°ú °°ÀÌ ºÎ¼öÀûÀÎ »çÇ×µéÀÇ º¯°æÀÌ ÀÖÀ» ¶§ »ç¿ëÇÏ´Â °ÍÀÌ´Ù. ÇöÀç ÀÌ·ç¾îÁö°í ÀÖ´Â ÇÁ·ÎÅäÄÝÀÇ ¹öÀüÀº 1.0ÀÌ´Ù. °¢ ¼ýÀÚ´Â ¾çÀÇ Á¤¼ö¸¦ »ç¿ëÇÏ¿© 1¾¿ Áõ°¡Çϵµ·Ï µÇ¾î ÀÖÀ¸¹Ç·Î, HTTP/2.13Àº HTTP/2.4º¸´Ù »óÀ§ ¹öÀüÀÌ´Ù.

ÇÁ·ÎÅäÄÝÀÇ ¹öÀüÀ» ³ªÅ¸³»´Â °ÍÀº, ¼Û½ÅÃøÀÌ ¿ä±¸(request)¸¦ º¸³¾ ¶§ »ç¿ëÇÏ´Â ¸Þ½ÃÁöÀÇ Ç¥Çö Çü½ÄÀ» ³ªÅ¸³»°í ¼­¹ö³ª ºê¶ó¿ìÀú°¡ ¾î¶² Çü½ÄÀÇ ¸Þ½ÃÁö¸¦ ÀÌÇØÇϰí ó¸®ÇÒ ¼ö ÀÖ´ÂÁö Ç¥½ÃÇÏ´Â Áß¿äÇÑ ¿ä¼ÒÀÌ´Ù.

minor ¹øÈ£°¡ ¹Ù²ð ¶§´Â ¸Þ½ÃÁö ÇØ¼® ¾Ë°í¸®ÁòÀ» º¯°æÇÏÁö ¾Ê°íµµ ÇÁ·ÎÅäÄÝ ±â´É¿¡ ´ëÇÑ º¯È­¸¦ ÁÙ ¼ö ÀÖÀ» ¶§À̰í, ÇÁ·ÎÅäÄÝ ³»ÀÇ ¸Þ½ÃÁö Çü½ÄÀÌ ¹Ù²ð ¶§¿Í °°Àº Å« º¯È­°¡ µÚµû¸¦ ¶§ major ¹øÈ£¸¦ ¹Ù²Û´Ù.

HTTP ¸Þ½ÃÁöÀÇ ¹öÀüÀº HTTP-Version Çʵ带 ÅëÇØ Ç¥½ÃÇÏ¸ç ¸Þ½ÃÁöÀÇ Ã¹ ¹øÂ° ÁÙ¿¡ ÀÚ¸®ÇÑ´Ù. ¸¸¾à ÇÁ·ÎÅäÄÝ ¹öÀüÀÌ Ç¥½ÃµÇÁö ¾ÊÀ¸¸é ¼ö½ÅÃø¿¡¼­´Â HTTP/0.9 ¹öÀüÀÇ ´Ü¼ø Çü½ÄÀ¸·Î °£ÁÖÇÑ´Ù.

HTTP-Version = "HTTP" "/" 1*DIGIT "." 1*DIGIT

¼­¹ö³ª ºê¶ó¿ìÀú¸¦ ±¸ÇöÇϰíÀÚ ÇÒ ¶§ ¹Ýµå½Ã Æ÷ÇԵǾî¾ß ÇÏ´Â HTTP ÇÁ·ÎÅäÄÝÀº 0.9¿Í 1.0 ¹öÀü ¸ðµÎÀ̸ç, ÀÌ ¹®¼­ ¼Ó¿¡¼­´Â µÑ ´Ù ±â¼úµÇ¾î ÀÖ´Ù.

ÀÌ ¹®¼­¿¡ Á¤ÀǵǾî ÀÖ´Â Full-Request ¶Ç´Â Full-Response Çü½ÄÀÇ ¸Þ½ÃÁö¸¦ Àü¼ÛÇÏ´Â ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼­´Â "HTTP/1.0"À̶õ HTTP-VersionÀ» ³ªÅ¸³»¾î¾ß ÇÑ´Ù.

HTTP/1.0 ¼­¹ö´Â, HTTP/0.9¿Í HTTP/1.0 ¿ä±¸¸¦ À§ÇÑ Request-Line Ç¥Çö Çü½ÄÀ» ÀνÄÇÒ ¼ö ÀÖ¾î¾ß Çϰí, HTTP/0.9¿Í HTTP/1.0 Çü½ÄÀ¸·Î µÇ¾î ÀÖ´Â À¯È¿¿ä±¸ (valid request)¸¦ ÀÌÇØÇÒ ¼ö ÀÖ¾î¾ß Çϰí, ¶ÇÇÑ Å¬¶óÀÌ¾ðÆ®°¡ »ç¿ëÇÑ ÇÁ·ÎÅäÄÝ ¹öÀü°ú °°Àº ¸Þ½ÃÁö Çü½ÄÀ¸·Î ÀûÀýÈ÷ ÀÀ´äÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.

HTTP/1.0 Ŭ¶óÀÌ¾ðÆ®´Â, HTTP/1.0 ÀÀ´ä Çü½ÄÀÎ Status-LineÀÇ ¸Þ½ÃÁö Çü½ÄÀ» ÀνÄÇÒ ¼ö ÀÖ¾î¾ß Çϰí, HTTP/0.9 ¶Ç´Â HTTP/1.0 Çü½ÄÀ¸·Î µµÂøµÈ À¯È¿ÀÀ´ä (valid response)À» ÀÌÇØÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.

ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌ ÀÀ¿ë ÇÁ·Î±×·¥Àº ÀÚ½ÅÀÇ ÇÁ·ÎÅäÄÝ ¹öÀü°ú ´Ù¸¥ ¿ä±¸¸¦ Ŭ¶óÀÌ¾ðÆ®·ÎºÎÅÍ ¼ö½ÅÇßÀ» ¶§´Â ÀÌÀÇ Ã³¸®¸¦ º¸´Ù ½ÅÁßÇÏ°Ô ÇÏ¿©¾ß ÇÑ´Ù. ÇÁ·ÎÅäÄÝ ¹öÀüÀº ¼Û½ÅÃø Ŭ¶óÀ̾ðÆ®ÀÇ ÇÁ·ÎÅäÄÝ Ã³¸® ´É·ÂÀ» ³ªÅ¸³»´Â °ÍÀ̹ǷΠÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌ´Â ¼Û½ÅÃø ¹öÀüº¸´Ù ³ôÀº ¸Þ½ÃÁö¸¦ Àü´ÞÇϸé Àý´ë ¾È µÈ´Ù. ¸¸¾à ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÇÀÇ ÇÁ·ÎÅäÄÝ ¹öÀüº¸´Ù ³ôÀº ¹öÀüÀÇ ¼Û½ÅÃø ¿ä±¸°¡ µµÂøÇÏ¸é ¿ä±¸ÇÑ ÇÁ·ÎÅäÄÝ ¹öÀüÀ» ³·Ã߰ųª ¿À·ù¸¦ µÇµ¹·Á º¸³»¾î¾ß ÇÑ´Ù. ¸¸¾à ³·Àº ¹öÀüÀÇ ¼Û½ÅÃø ¿ä±¸°¡ µµÂøÇϸé Áß°èÇØÁֱ⠾ռ­ ¹öÀüÀ» ³ôÀÌ´Â ¹æ¹ýµµ °¡´ÉÇÏ´Ù. ÇØ´ç ¼Û½ÅÃø ¿ä±¸¿¡ ´ëÇÑ ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌÀÇ ÀÀ´äÀº À§¿¡¼­ ¾ð±ÞÇÑ ¼­¹ö ¿ä±¸»çÇ×À» ¸¸Á·½ÃÄÑ¾ß ÇÑ´Ù.

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¿¡¼­³ª ¾²ÀÏ ¼ö ÀÖ´Â °ÍÀÌ´Ù. ±×·¯¹Ç·Î ´Ù¸¥ Á¾·ùÀÇ ¼ö¼Û°èÃþ¿¡ HTTP°¡ ¾²À̱â À§Çؼ­´Â ±×¿¡ ¸Â´Â URI Ç¥Çö ¹æ½ÄÀ» Á¤ÀÇÇÏ¿©¾ß ÇÑ´Ù.

3.2.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À» Áö¿øÇϴ Ŭ¶óÀÌ¾ðÆ®³ª ¼­¹ö´Â À§ ¼¼ °¡Áö Çü½ÄÀ» ¸ðµÎ ÀνÄÇÒ ¼ö ÀÖ¾î¾ß ÇÏÁö¸¸ ¸Þ½ÃÁö¸¦ ¸¸µé ¶§´Â ¼¼ ¹øÂ° Çü½ÄÀ» ¸¸µé¾î¼­´Â ¾È µÈ´Ù. ¿Ö³ÄÇϸé ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀ̸¦ ÅëÇØ non-HTTP ÀÀ¿ë ÇÁ·Î±×·¥µéÀÌ SMTP ¶Ç´Â NNTP¸¦ ÀÌ¿ëÇÏ¿© µ¥ÀÌŸ¸¦ Àü´ÞÇÒ ¶§ »ý¼ºµÇ´Â ÀÏÀÚ/½Ã°£À» ÀνÄÇÒ ¼ö ÀÖ¾î¾ß Çϱ⠶§¹®ÀÌ´Ù.

¸ðµç 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"

3.2.4 Character Sets

HTTP ÇÁ·ÎÅäÄÝ ±Ô°Ý¼­¿¡¼­´Â 'character set'À̶õ ¿ë¾î¸¦ MIME ±Ô°Ý¼­¿¡¼­ Á¤ÀÇÇÑ °Íµµ ¶È°°ÀÌ »ç¿ëÇÑ´Ù. Áï,
character set
ÀÏ·ÃÀÇ 8bit µ¥ÀÌŸ¸¦ ÀûÀýÇÑ ´ëÀÀ °ü°è¿¡ ÀÖ´Â ÀÏ·ÃÀÇ ±ÛÀÚ·Î º¯È¯½Ãų ¼ö ÀÖ°Ô²û ÇÑ °³ ¶Ç´Â ±× ÀÌ»óÀÇ Ç¥·Î¼­ ¸¸µé¾î¼­ ÂüÁ¶ÇÏ°Ô ÇÏ´Â ¼ö´ÜÀÌ´Ù. ±×·¯¹Ç·Î ¹«Á¶°Ç º¯È¯½ÃÄѼ­´Â ¾È µÉ °ÍÀ̸ç, ¸ðµç ±ÛÀÚ°¡ character set¿¡ Á¤ÀǵǾî ÀÖÁö ¾ÊÀ» ¼ö ÀÖ°í, ƯÁ¤ÇÑ ±ÛÀÚ¸¦ Ç¥ÇöÇϱâ À§ÇØ Çϳª ÀÌ»óÀÇ 8bit µ¥ÀÌŸ¿­ÀÌ Á¸ÀçÇÒ ¼öµµ ÀÖ´Ù.

ÀÌ Á¤ÀÇ¿¡ µû¸£¸é, US-ASCII¿Í °°Àº ´Ü¼øÇÑ º¯È¯Ç¥·ÎºÎÅÍ ISO 2022ÀÇ °æ¿ì¿¡¼­¿Í °°ÀÌ º¹ÀâÇÑ º¯È¯Ç¥¿¡ À̸£±â±îÁö ´Ù¾çÇÑ Á¾·ùÀÇ character encodingµéÀº Çã¿ëÇÑ´Ù. ÇÏÁö¸¸ MIME character set À̸§°ú °ü·ÃµÈ Á¤ÀÇ´Â 8bit µ¥ÀÌŸ·ÎºÎÅÍ ±ÛÀÚ·ÎÀÇ º¯È¯¿¡ °üÇÑ »çÇ×À» ¿ÏÀüÇÏ°Ô ¸í½ÃÇÏ¿©¾ß ÇÑ´Ù. ¿ÏÀüÇÑ º¯È¯ °ü°è¸¦ Á¤ÀÇÇϱâ À§ÇØ ´Ù¸¥ ¼ö´ÜÀ» ÅëÇÑ ¿ÜºÎ Á¤º¸¸¦ Ȱ¿ëÇØ¼­´Â ¾È µÈ´Ù.

HTTP character setÀº ´ë¼Ò¹®ÀÚ ±¸º°À» ÇÏÁö ¾ÊÀ¸¸ç, HTTP ±¸Çö½Ã¿¡ ±Ç°íÇÏ´Â ¹®ÀÚ ÁýÇÕÀÇ Á¾·ù·Î¼­´Â ¾Æ·¡¿Í °°´Ù.

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¿¡ µî·ÏµÇ¾î ÀÖ´Â °ÍÀ¸·Î ÇÑÁ¤ÇØ¾ß ÇÑ´Ù.

3.2.5 Content Codings

ÇØ´ç ÀÚ¿ø¿¡ ´ëÇØ Àû¿ëµÇ¾î ÀÖ´Â ÀÎÄÚµù º¯È¯ ¹æ½ÄÀ» ¾Ë¸®±â À§ÇØ »ç¿ëÇÑ´Ù. À̰ÍÀº ½ÇÁ¦ µ¥ÀÌŸÀÇ È­ÀÏ Çü½ÄÀ̳ª ³»¿ëÀ» ¼Õ»ó½ÃŰÁö ¾Ê°í µ¥ÀÌŸ¸¦ ¾ÐÃàÇϰųª º¸¾ÈÀ» À§ÇØ ¾ÏȣȭÇÒ ¶§ ÁÖ·Î ¾²ÀÏ ¼ö ÀÖ´Ù. ÀÌ ¹æ½ÄÀ¸·Î ÀÎÄÚµùµÈ µ¥ÀÌŸ°¡ ÀúÀåµÇ¾î ÀÖ´Ù°¡ ¼Û¼ö½ÅµÇ¾î ½ÇÁ¦ Ȱ¿ëµÇ±â Àü¿¡´Â µðÄÚµùÀÌ µÇ¾î¾ß ÇÑ´Ù.

content-coding = "x-gzip" | "x-compress" | token

¿©±â¼­ gzip ¶Ç´Â compress´Â ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼­´Â x-gzip°ú x-compress·Î °¢°¢ µ¿ÀÏÇÏ°Ô Ãë±ÞµÈ´Ù. Ç¥½ÃµÈ ¸ðµç content-coding º¯¼ö´Â ´ë¼Ò¹®ÀÚ¸¦ °¡¸®Áö ¾Ê´Â´Ù.

3.2.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´Â parameter Á¾·ù¿¡ µû¶ó ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇÒ ¼öµµ ÀÖ°í ±¸ºÐÇÏÁö ¾ÊÀ» ¼öµµ ÀÖ´Ù.

ÀÌ·¯ÇÑ Ç¥Çö½Ä¿¡ ÀÖ¾î LWS´Â type°ú subtype »çÀÌ¿¡ Àý´ë Çã¿ëµÇÁö ¾ÊÀ¸¸ç, ¶ÇÇÑ attribute¿Í ÀÌÀÇ value »çÀÌ¿¡µµ Çã¿ëµÇÁö ¾Ê´Â´Ù. ÀνÄÇÒ ¼ö ¾ø´Â parameter¸¦ °¡Áø media typeÀÌ ¼ö½ÅµÇ¸é Ŭ¶óÀÌ¾ðÆ®´Â Ã³¸®ÇÒ ¼ö ¾ø´Â Á¾·ùÀÇ media typeÀ¸·Î¼­ Àû¿ëÇÑ´Ù.

¿À·¡ ÀüÀÇ ÀϺΠHTTP ±¸Çö ÇÁ·Î±×·¥¿¡¼­´Â media typeÀÇ parameter¸¦ ÀνÄÇÒ ¼ö ¾ø¾ú´Ù. HTTP/1.0 ±¸Çö ÇÁ·Î±×·¥¿¡¼­´Â ¸Þ½ÃÁö ³»¿ëÀÌ ¾î¶² Á¾·ùÀÎÁö ÁöÁ¤ÇÒ Çʿ䰡 ÀÖÀ» ¶§¸¸ media typeÀÇ parameter¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.

media-typeÀÇ value´Â IANA¿¡ µî·ÏµÇ¾î ÀÖ´Â °ÍÀ» »ç¿ëÇÏ¸é µÈ´Ù. µî·ÏµÇ¾î ÀÖÁö ¾ÊÀº °ÍÀ» »ç¿ëÇÏ´Â °ÍÀº ÁÁÀº ¹æ¹ýÀÌ ¾Æ´Ï´Ù.

3.2.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´Â Çì´õ ºÎºÐ°úÀÇ ±¸ºÐÀ» ÇÑ ÁÙÂ¥¸® ºó °ø¹éÀ¸·Î¼­ Çϰí ÀÖ´Ù.

ºê¶ó¿ìÀú°¡ ¼­¹ö¿¡°Ô ¹®¼­ ¿äûÀ» ÇÒ ¶§, ºê¶ó¿ìÀú°¡ »ç¿ëÇϰí ÀÖ´Â ÇÁ·ÎÅäÄÝ ¹öÀü¿¡ µû¶ó¼­ 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 *(General-Header | Request-Header | Entity-Header) CRLF [Entity-Body] Full-Response = Status-Line *(General-Header | Response-Header | Entity-Header) CRLF [Entity-Body]

À§¿¡¼­ 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, Request-Header, Response-Header, Entity-Header µî°ú °°ÀÌ ³× °¡Áö Çì´õ Çü½ÄÀÌ ÀÖ´Ù. ¿©±â¿¡¼­ °øÅëÀûÀ¸·Î »ç¿ëÇϴ ǥÇö Çü½ÄÀº RFC 822ÀÇ 3.1Àý¿¡¼­ Á¤ÀÇÇϰí ÀÖ´Â °ÍÀÌ´Ù.

ÀÌ·¯ÇÑ Çì´õÀÇ ¼ø¼­´Â Áß¿äÇÏÁö ¾ÊÀ¸³ª °¡´ÉÇÏ´Ù¸é ¾Æ·¡¿¡ ³ª¿­µÇ¾î ÀÖ´Â ¼ø¼­Ã³·³, General-Header°¡ ¸ÕÀú ³ª¿À°í À̾ Request-Header ¶Ç´Â Response-Header°¡ ³ª¿À°í ±× ´ÙÀ½¿¡ Entity-Header Çʵ尡 ³ª¿À´Â °ÍÀÌ ÁÁ´Ù. °¢ Çì´õ Çʵå´Â À̸§°ú µÚÀÌÀº ":", ÇÑ °³Â¥¸® ºóÄ­ (sinle 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.2.1 General Header Fields

General Header´Â Full-Request ¸Þ½ÃÁö¿Í Full-Response ¸Þ½ÃÁö¿¡ °øÅëÀûÀ¸·Î Æ÷ÇԵǾî ÀÖ´Â Çì´õ Çü½ÄÀÌ´Ù. À̰ÍÀº Àü¼ÛµÇ°í ÀÖ´Â ¸Þ½ÃÁö¿¡ °üÇÑ »çÇ×À» ¾Ë¸®´Â °ÍÀÌÁö, Àü¼ÛµÇ°í ÀÖ´Â »ç¿ëÀÚ µ¥ÀÌŸ¿¡ °üÇÑ »çÇ×À» ¾Ë¸®´Â °ÍÀÌ ¾Æ´Ï´Ù.

General-Header = Date | Pragma Date = "Date" ":" HTTP-date Progma = "Pragma" ":" 1#pragma-directive pragma-directive = "no-cache" | extension-pragma extension-pragma = token ["=" word]

Çʵå À̸§Àº HTTP ÇÁ·ÎÅäÄÝÀÇ ¹öÀü º¯°æ°ú ÇÔ²² ÇÁ·ÎÅäÄÝÀÇ È®ÀåÀ» ²ÒÇÒ ¶§ Ãß°¡µÉ ¼ö ÀÖ´Ù. ±×·¯³ª ÀÌ·¸°Ô È®ÀåµÇ´Â Çʵå´Â general header field°¡ °¡Áø ¿ªÇÒ¿¡ ÀûÇÕÇØ¾ß ÇÒ °ÍÀÌ´Ù. ÀνÄÇÒ ¼ö ¾ø´Â Çì´õ Çʵå´Â 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.2.2 Request Header Fields

Request-Header Çʵå´Â Full-Request ¸Þ½ÃÁö¿¡ Æ÷ÇԵǴ °ÍÀ̸ç, ¿ä±¸ »çÇ׿¡ ´ëÇÑ ¶Ç´Â Ŭ¶óÀÌ¾ðÆ® ÀÚü¿¡ ´ëÇÑ Ãß°¡ÀûÀÎ Á¤º¸¸¦ ¼­¹ö¿¡°Ô Àü´ÞÇÒ ¶§ ¾²ÀδÙ.

Request-Header = Authorization | From | If-Modified-Since | Referer | User-Agent

Request-HeaderÀÇ Çʵå À̸§Àº HTTP ÇÁ·ÎÅäÄÝÀÇ ¹öÀü º¯°æ°ú ÇÔ²² ÇÁ·ÎÅäÄÝÀÇ È®ÀåÀ» ²ÒÇÒ ¶§ Ãß°¡µÉ ¼ö ÀÖ´Ù. ±×·¯³ª ÀÌ·¸°Ô È®ÀåµÇ´Â Çʵå´Â request header field°¡ °¡Áø ¿ªÇÒ¿¡ ÀûÇÕÇØ¾ß ÇÒ °ÍÀÌ´Ù. ÀνÄÇÒ ¼ö ¾ø´Â Çì´õ Çʵå´Â 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.2.3 Response Header Fields

response header Çʵå´Â ¼­¹ö°¡ ÀÀ´ä ¸Þ½ÃÁö¸¦ º¸³¾ ¶§ Status-Line¿¡´Ù ½ÇÀ» ¼ö ¾ø´Â Ãß°¡ÀûÀÎ Á¤º¸¸¦ Àü´ÞÇϰíÀÚ ÇÒ ¶§ ¾²ÀδÙ. ¼­¹ö¸¦ À̰ÍÀ» ÀÌ¿ëÇÏ¿© ¼­¹ö Àڽſ¡ ´ëÇÑ Á¤º¸³ª Request-URI¿¡¼­ ¸í½ÃÇÑ ÀÚ¿ø¿¡ ´ëÇÑ Á¢±Ù ¹× ÀÌ¿ë ¹æ¹ý¿¡ ´ëÇÑ Á¤º¸¸¦ Àü´ÞÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½°ú °°Àº Ç¥Çö½ÄÀ¸·Î ³ªÅ¸³½´Ù.

Response-Header = Location | Server | WWW-Authenticate

Response-HeaderÀÇ Çʵå À̸§Àº HTTP ÇÁ·ÎÅäÄÝÀÇ ¹öÀü º¯°æ°ú ÇÔ²² ÇÁ·ÎÅäÄÝÀÇ È®ÀåÀ» ²ÒÇÒ ¶§ Ãß°¡µÉ ¼ö ÀÖ´Ù. ±×·¯³ª ÀÌ·¸°Ô È®ÀåµÇ´Â Çʵå´Â response header field°¡ °¡Áø ¿ªÇÒ¿¡ ÀûÇÕÇØ¾ß ÇÒ °ÍÀÌ´Ù. ÀνÄÇÒ ¼ö ¾ø´Â Çì´õ Çʵå´Â 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.2.4 Entity Header Fields

Entity-Header Çʵå´Â Entity-Body¿¡ ´ëÇÑ ÀÎÄÚµù ¹æ½Ä, ÃÖÁ¾ ¼öÁ¤ ÀÏÀÚ, À¯È¿ ±â°£, ¹®¼­ ±æÀÌ µî°ú °°Àº ¿ÜÇüÀû Á¤º¸(metainformation)¸¦ ³ªÅ¸³¾ ¶§ ¾²À̰ųª, Àü´ÞÇÒ entity body µ¥ÀÌŸ°¡ ¾øÀ» ¶§´Â ¿ä±¸ ¸Þ½ÃÁö¿¡¼­ ÁöÁ¤ÇÑ ÇØ´ç ÀÚ¿ø¿¡ ´ëÇÑ Á¤º¸¸¦ ¾Ë·ÁÁÙ ¶§ ¾²ÀδÙ.

Entity-Header = Allow | Content-Encoding | Content-Length | Content-Type | Expires | Last-Modified | 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´Â 7Àå¿¡¼­ »ìÆìº¼ °ÍÀÌ´Ù. ¿©±â¼­´Â Full-Request ¸Þ½ÃÁö¿Í °ü·ÃÇØ¼­ ³ª¸ÓÁö Çì´õ¿Í Çü½ÄÀ» »ìÆìº¸±â·Î ÇÑ´Ù.

¿ä±¸ ¸Þ½ÃÁöÀÇ Ã¹ ¹øÂ° ÁÙ¿¡ ¿øÇÏ´Â ÇØ´ç ÀÚ¿ø¿¡ Àû¿ëÇÒ ÀÌ¿ë ¹æ¹ý, ÀÚ¿øÀÇ À§Ä¡¿Í °°Àº Á¤º¸, ¹× »ç¿ëÇϰí ÀÖ´Â ÇÁ·ÎÅäÄÝ ¹öÀü µîÀÌ Æ÷ÇԵȴÙ. HTTP/0.9 ¹öÀüÀÇ ÇÁ·ÎÅäÄݵµ Áö¿øÇϱâ À§ÇØ ¿ä±¸ ¸Þ½ÃÁö´Â Simple-Request¿Í Full-RequestÀÇ µÎ °¡Áö Á¾·ù·Î¼­ Ç¥½ÃµÈ´Ù.

¿ä±¸ ¸Þ½ÃÁöÀÇ Çü½ÄÀ» ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³» º¸ÀÏ ¼ö ÀÖ´Ù.

Request = Simple-Request | Full-Request Simple-Request = "GET" SP Request-URI CRLF Full-Request = Request-Line *(General-Header | Request-Header | Entity-Header) CRLF [ Entity-Body ]

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 token, ÇØ´ç ÀÚ¿øÀ» °¡¸®Å°´Â Request-URI, ÇÁ·ÎÅäÄÝ ¹öÀü, ±×¸®°í ¸¶Áö¸·¿¡ CRLF·Î¼­ Ç¥½ÃµÈ´Ù. °¢°¢ÀÇ ÆÄ¶ó¹ÌÅ͵éÀº SP¿¡ ÀÇÇØ ±¸ºÐµÇ°í ÀÖ´Ù.

¸Þ½ÃÁö Á¤º¸ÀÇ ³¡À» ³ªÅ¸³»´Â CRLFÀº ¸¶Áö¸· ÀÌ¿ÜÀÇ Àå¼Ò¿¡´Â Çã¿ëµÇÁö ¾Ê´Â´Ù. ´Ù¸¸ »ç¿ëÀÚ Á¤º¸ µ¥ÀÌŸ¿Í °°Àº Entity ºÎºÐÀº 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

Simple-Request¿Í Full-Request ¼Ó¿¡ ÀÖ´Â Request-LineÀÇ Â÷ÀÌÁ¡Àº HTTP-Version ÇʵåÀÇ Á¸Àç À¯¹«¿Í GET ÀÌ¿ÜÀÇ ´Ù¸¥ ¹æ¹ýÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´ÂÁö ¾ø´ÂÁö ÇÏ´Â °ÍÀÌ´Ù.

5.1.1 Method

Request-URI·Î ÁöÁ¤µÇ´Â ´ë»óü¿¡ ´ëÇØ ¾î¶»°Ô Ȱ¿ëÇÒ °ÍÀÎÁö ±× ÀÌ¿ë ¹æ¹ýÀ» ÁöÁ¤ÇÑ´Ù. ¿¹¸¦ µé¾î GETÀ̶õ method·Î ÁöÁ¤µÇ¾î ÀÖÀ¸¸é Request-URI·Î ÁöÁ¤µÇ¾î ÀÖ´Â µ¥ÀÌŸ È­ÀÏÀ» °¡Áö°í ¿À¶ó´Â ¶æÀÌ µÇ¸ç, POST¶õ method·Î ÁöÁ¤µÇ¾î ÀÖÀ¸¸é Request-URI·Î ÁöÁ¤µÇ¾î ÀÖ´Â Àå¼Ò¿¡ ±ÛÀ» ¿Ã¸± ¼ö ÀÖ´Ù. ÇöÀç ¼¼ °¡Áö Á¾·ù°¡ Á¤ÀÇµÇ¾î ¾²À̰í ÀÖÀ¸¸ç ´ÙÀ½°ú °°´Ù. method´Â ´ë¼Ò¹®ÀÚ °¡¸®Áö ¾Ê´Â´Ù.

GET, HEAD, POST¶ó°í ÇÏ´Â ¼¼ °¡Áö method¿¡ ´ëÇÑ ¼³¸íÀº 8Àå¿¡¼­ ÀÌ·ç¾îÁú °ÍÀÌ´Ù.

´ÙÀ½°ú °°Àº Ç¥½Ã Çü½ÄÀ¸·Î ³ªÅ¸³¾ ¼ö ÀÖ´Ù.

Method = "GET" ; 8.1Àý ÂüÁ¶ | "HEAD" ; 8.2Àý ÂüÁ¶ | "POST" ; 8.3Àý ÂüÁ¶ | extension-method extension-method = token

Ŭ¶óÀÌ¾ðÆ®°¡ ´ë»ó ÀÚ¿ø¿¡ ´ëÇØ ¿äûÇÑ method ¿äûÀÌ ¼­¹ö¿¡¼­ ó¸®ÇÒ ¼ö ¾ø´Â °ÍÀ̶ó¸é ¼­¹ö´Â 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ÀÇ Àý´ë °æ·Î (absolute path) ¸¸ÀÌ Àü´ÞµÈ´Ù. (5.1ÀýÀÇ »ó¼¼ Ç¥Çö½Ä¿¡¼­ abs_path ÂüÁ¶.) ¿¹¸¦ µé¾î, È£½ºÆ® ¼­¹ö·ÎºÎÅÍ À§¿¡ ¸í½ÃÇÑ ¹®¼­¸¦ Ŭ¶óÀÌ¾ðÆ®°¡ Á÷Á¢ °¡Á®¿À°íÀÚ ÇÏ´Â °æ¿ì, www.w3.org È£½ºÆ®¿¡ 80¹ø Æ÷Æ®·Î TCP ¿¬°áÀ» ¸Î¾î ´ÙÀ½°ú °°Àº ³»¿ëÀ» º¸³½´Ù.

GET /pub/WWW/TheProject.html HTTP/1.0

À§¿¡ À̾ Full-RequestÀÇ ³ª¸ÓÁö ºÎºÐÀÌ µÚµû¸¥´Ù. ¿©±â¼­ Àý´ë °æ·Î´Â Àý´ë »ý·«µÉ ¼ö ¾ø´Ù. µû¶ó¼­ ¸¸¾à¿¡ ¿ø·¡ URI¿¡ ¾Æ¹« °Íµµ ÁöÁ¤µÇ¾î ÀÖÁö ¾Ê´Ù¸é Request-URI¿¡ "/" ÀÌ Ç¥½Ã°¡ µé¾î°¡¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î ´ÙÀ½°ú °°´Ù.

GET /

´Ù½Ã ¸»ÇØ, »ç¿ëÀÚ°¡ ºê¶ó¿ìÀú¿¡ http://www.w3.org ¿Í °°Àº URLÀ» ÁöÁ¤ÇÏ¿© Àý´ë °æ·Î Ç¥½Ã°¡ µÇ¾î ÀÖÁö ¾ÊÀ» ¶§ À§¿Í °°Àº °úÁ¤À» °ÅÄ¡´Â °ÍÀÌ´Ù. ¸¸¾à http://www.w3.org/ ÀÌ¿Í °°Àº URLÀ» ÁöÁ¤ÇßÀ» ¶§´Â Àý´ë °æ·Î°¡ "/"·Î¼­ ÀÌ¹Ì Ç¥½ÃµÇ¾î ÀÖÀ¸¹Ç·Î ´ç¿¬È÷ À§¿Í °°Àº Ç¥Çö½ÄÀÌ µÈ´Ù. Áï, °á°úÀûÀ¸·Î´Â µÎ °¡Áö °æ¿ì¿¡ ´ëÇÑ Request-URI Ç¥Çö½ÄÀÌ ¶È °°´Ù.

Request-URI°¡ Àü¼ÛµÉ ¶§´Â ÀÎÄÚµùµÇ¾î Àü´ÞµÈ´Ù. ¿©±â¼­ ¸î °¡Áö ±ÛÀÚ´Â RFC 1738¿¡¼­ Á¤ÀÇÇϰí ÀÖ´Â "%HEX HEX" ÀÎÄÚµù ¹æ½ÄÀ¸·Î º¯È¯µÉ ¼ö ÀÖ´Ù. ¼ö½ÅÇÏ´Â ¼­¹ö´Â ¿ä±¸ ¸Þ½ÃÁö¸¦ ÀûÀýÈ÷ ó¸®Çϱâ À§ÇÏ¿© ÀÎÄÚµùµÇ¾î ÀÖ´Â Request-URI¸¦ µðÄÚµùÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.

5.2 Request Header Fields

4.2.2ÀýÀ» ÂüÁ¶ÇÏ¸é µÈ´Ù.

6. Response

¼­¹ö´Â ¼ö½ÅÇÑ ¿ä±¸ ¸Þ½ÃÁö¸¦ HTTP ÇÁ·ÎÅäÄÝ¿¡ ¸Â°Ô ¹ø¿ªÇÏ¿© ÀûÀýÇÑ µ¿ÀÛÀ» ¼öÇàÇϰí ÇÁ·ÎÅäÄÝÀÇ ÀÀ´ä ¸Þ½ÃÁö Çü½Ä¿¡ ¸ÂÃç °á°ú¸¦ Àü´ÞÇÑ´Ù. ¿ä±¸ ¸Þ½ÃÁöÀÇ Çü½ÄÀ» ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³» º¸ÀÏ ¼ö ÀÖ´Ù.

Response = Simple-Response | Full-Response Simple-Response = [Entity-Body] Full-Response = Status-Line *(General-Header | Response-Header | Entity-Header) CRLF [Entity-Body]

ÀÌ·¯ÇÑ ÀÀ´ä ¸Þ½ÃÁö´Â ÇÁ·ÎÅäÄÝÀÇ ¹öÀü¿¡ µû¶ó¼­ µÎ °¡Áö Á¾·ù°¡ ÀÖÀ½À» 4.1Àý¿¡¼­ º¸¿´À¸¸ç Simple-Response¿Í Full-Response°¡ ±×°ÍÀÌ´Ù. Simple-Response´Â HTTP/0.9 ÇÁ·ÎÅäÄÝ Çü½ÄÀÇ ¿ä±¸ ¸Þ½ÃÁö¿¡ ´ëÇÑ ÀÀ´ä ¶Ç´Â ¼­¹ö°¡ HTTP/0.9 ÇÁ·ÎÅäÄÝ·Î Á¦ÇÑÀûÀ¸·Î ¾²ÀÏ ¶§ÀÇ ÀÀ´äÀ¸·Î¸¸ »ç¿ëµÇ¾î¾ß ÇÑ´Ù.

Ŭ¶óÀÌ¾ðÆ®°¡ HTTP/1.0 Çü½ÄÀÇ Full-Request¸¦ º¸³Â´Âµ¥ ¼ö½ÅÇÑ ÀÀ´äÀÌ Status-LineÀ¸·Î ½ÃÀÛÇÏÁö ¾Ê´Â´Ù¸é, ¼ö½ÅÇÑ ÀÀ´äÀÌ Simple-Request¶ó°í °£ÁÖÇϰí ÀûÀýÇÏ°Ô ÆÄ½Ì(parsing) 󸮸¦ Çϵµ·Ï ÇÑ´Ù.

Full-ResponseÀÇ °¢ Çì´õ ÇʵåµéÀº 4.2Àý¿¡¼­ ÀÌ¹Ì »ìÆìº¸¾Ò´Ù.

6.1 Status-Line

Full-Response ¸Þ½ÃÁö¿¡ µé¾î°¡´Â ù ¹øÂ° ÁÙÀÇ ³»¿ëÀÌ Status-LineÀÌ¸ç ¾Æ·¡¿Í °°Àº ±¸¼º Çü½ÄÀ¸·Î µÇ¾î ÀÖ´Ù. °¢°¢ÀÇ ÆÄ¶ó¹ÌÅ͵éÀº SP¿¡ ÀÇÇØ ±¸ºÐµÇ°í ÀÖÀ¸¸ç, HTTP ¹öÀüÀÌ Á¦ÀÏ ¸ÕÀú ³ª¿À°í À̾ ¼ýÀÚ·Î µÈ »óÅ Äڵ尡 Ç¥½ÃµÇ°í À̾ °ü·ÃµÈ Ãß°¡ÀûÀÎ ³»¿ë ¼³¸íÀÌ µ¡ºÙ¿©Áø´Ù. ¸Þ½ÃÁö Á¤º¸ÀÇ ³¡À» ³ªÅ¸³»´Â CRLF´Â ¸¶Áö¸· ÀÌ¿ÜÀÇ Àå¼Ò¿¡´Â Çã¿ëµÇÁö ¾Ê´Â´Ù. ´Ù¸¸ »ç¿ëÀÚ µ¥ÀÌŸ¿Í °°Àº Entity ºÎºÐÀº 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 = "200" ; OK | "201" ; Created | "202" ; Accepted | ... | extension-code extension-code = 3DIGIT Reason-Phrase = *<TEXT, excluding CR and LF>

6.1.1 Status-Code

¼­¹ö°¡ ¿ä±¸ ¸Þ½ÃÁö¸¦ ¼ö½ÅÇÏ¿© ó¸®ÇÑ °á°ú¸¦ ¾Ë·ÁÁÖ´Â ¼¼ ÀÚ¸®ÀÇ Á¤¼ö·Î Ç¥ÇöµÇ´Â ó¸® °á°ú ¹øÈ£ÀÌ´Ù. Reason-Phrase¿¡´Â Status-Code¿¡ ´ëÇÑ Â©¸·ÇÑ ¼³¸í¹®ÀÌ µé¾î°¥ ¼ö ÀÖ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â Reason-Phrase¸¦ ¹Ýµå½Ã Á¡°ËÇϰųª È­¸é¿¡ º¸ÀÌ°Ô ÇÒ ÇÊ¿ä´Â ¾ø´Ù.

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

HTTP/1.0¿¡¼­ Á¤ÀÇÇÑ »óÅ ÄÚµå¿Í ´ëÀÀÇÏ´Â Reason-Phrase ¼³¸í¹®À» ¾Æ·¡ÀÇ ¿¹¿¡¼­ º¼ ¼ö ÀÖ´Ù. ¿©±â¼­ÀÇ ¼³¸í¹®Àº ´ÜÁö ±ÇÀå »çÇ×ÀÏ »ÓÀ̸ç, °°Àº Àǹ̿¡ ÀÖ¾î ´Ù¸¥ ±Û·Î¼­ Ç¥ÇöÇØµµ µÈ´Ù.

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

6.1.2 Reason-Phrase

À§¿¡¼­ Ç¥½ÃÇÑ Status-Code¿¡ ´ëÇØ »ó¼¼ ¼³¸íÀ» À§ÇÑ Ãß°¡ÀûÀÎ Á¤º¸¸¦ Á¦°øÇϰíÀÚ ÇÒ ¶§ Reason-Phrase¿¡ Æ÷ÇԵǾî Àü´ÞµÈ´Ù. À§ 6.1.1À» ÂüÁ¶ÇÏ¸é µÈ´Ù.

7. Entity

Full-Request¿Í Full-Response ¸Þ½ÃÁö´Â °¢ ¸Þ½ÃÁö ³»¿¡ ¹®¼­³ª »ç¿ëÀÚ µ¥ÀÌŸ¿Í °°Àº ¿£ÅÍÆ¼ ¿ä¼Ò¸¦ Àü¼ÛÇÒ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ ¿£ÅÍÆ¼´Â Entity-Header Çʵå¿Í Entity-Body Çʵå·Î¼­ ±¸¼ºµÈ´Ù. 7ÀåÀÇ ¼³¸í¿¡ À־ Ŭ¶óÀÌ¾ðÆ®¿Í ¼­¹ö´Â ¿£ÅÍÆ¼ ¿ä¼Ò¸¦ Àü¼ÛÇÏ´À³Ä ¼ö½ÅÇÏ´À³Ä¿¡ µû¶ó °¢°¢ ¼Û½ÅÀÚ ¶Ç´Â ¼ö½ÅÀÚ°¡ µÉ ¼ö ÀÖ´Ù.

7.1 Entity Header Fields

4.2.4Àý¿¡ ¼³¸íµÇ¾î ÀÖ´Ù.

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'ÀÇ °ªÀÌ µé¾î°¡¾ß ÇÑ´Ù.

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.2.4 ÂüÁ¶) 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)

»óÅ Äڵ忡´Â ´ÙÀ½°ú °°Àº °ÍµéÀÌ Á¸ÀçÇÑ´Ù. (6.1.1Àý ÂüÁ¶)

9.1 Informational 1xx

9.2 Successful 2xx

200 OK
201 Created
202 Accepted
204 No Content

9.3 Redirection 3xx

300 Multiple Choices
301 Moved Permanently
302 Moved Temporarily
304 Not Modified

9.4 Client Error 4xx

400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found

9.5 Server Error 5xx

500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable

10. Çì´õ Çʵå Á¤ÀÇ (Header Field Definitions)

ÀÌ Àå¿¡¼­´Â HTTP/1.0 ÇÁ·ÎÅäÄÝÀÇ Çì´õ ÇʵåµéÀÇ Á¤ÀÇ¿¡ ´ëÇÑ Ç¥Çö Çü½Ä°ú Á¤ÀÇ¿¡ ´ëÇÑ ³»¿ëÀ» ´Ù·é´Ù.

10.1 Allow

Request-URI¿¡ ÀÇÇØ ÁöÁ¤µÇ´Â ´ë»óü¿¡ ´ëÇØ Àû¿ëÇÒ methodsµéÀ» ³ª¿­Çϰí ÀÖ´Ù. À̰ÍÀº ÁöÁ¤µÈ ¹®¼­¿¡ ´ëÇØ Àû¿ëÇÒ methodÀÇ Á¾·ùµéÀ» ¼ö½ÅÃø¿¡°Ô ¾Ë·ÁÁÖ±â À§ÇØ »ç¿ëµÈ´Ù. POST method¸¦ »ç¿ëÇÏ´Â ¿ä±¸ ¸Þ½ÃÁö¿¡´Â Allow Çʵ尡 Çã¿ëµÇÁö ¾Ê´Â´Ù. ±×·¯¹Ç·Î Æ÷ÇԵǾî ÀÖ´Ù¸é ¹«½ÃÇÏ¿©¾ß ÇÑ´Ù.

´ÙÀ½°ú °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù.

Allow = "Allow" ":" 1#method

ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö ÀÖ´Ù.

Allow: GET, HEAD

10.2 Authorization

ºê¶ó¿ìÀú°¡ ¼­¹ö¿¡°Ô ¼­ºñ½º ¿äûÀ» ÇÒ ¶§ ÀÚ½ÅÀÇ ½ÅºÐÀ» ¹àÈ÷°í ÀÎÁ¤¹Þ´Â µ¿ÀÛÀ» À§ÇØ »ç¿ëµÇ´Â ÇʵåÀÌ´Ù. 401 Unauthorized ÀÀ´äÀ» ¼ö½ÅÇÑ ÀÌÈĶó¸é ¹Ýµå½Ã ÀÌ Çʵ带 »ç¿ëÇÒ ÇÊ¿ä´Â ¾ø´Ù. Authorization Çʵå´Â ´ë»ó ÀÚ¿ø¿¡ ´ëÇÑ user agentÀÇ ÀÎÁõ Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â 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>

10.3 Content-Encoding

Entity Çì´õÀÇ Content-Encoding Çʵå´Â Àü¼Û ´ë»óÀÌ µÇ´Â °³Ã¼°¡ ÁöÁ¤µÈ media-type¿¡ ´ëÇØ ¾î¶² ¹æ½ÄÀ¸·Î º¯È¯µÇ¾î ÀÖ´ÂÁö ³ªÅ¸³½´Ù. (modifier to the media-type) µû¶ó¼­ ¼ö½ÅÃøÀÇ ÀÔÀå¿¡¼­ º¼ ¶§´Â Content-Type Çì´õ Çʵ忡 ÁöÁ¤µÇ¾î ÀÖ´Â µ¥ÀÌŸ Çü½ÄÀ¸·Î ¿ø»ó º¹±¸Çϱâ À§ÇØ ¾î¶² µðÄÚµù ¾Ë°í¸®ÁòÀ» »ç¿ëÇØ¾ß ÇÒÁö °áÁ¤ÇÏ´Â ¿ªÇÒÀ» Content-Encoding Çʵ尡 ÇÏ°Ô µÈ´Ù. À̰ÍÀº ÁÖ·Î ½ÇÁ¦ µ¥ÀÌŸ¿¡ ´ëÇÑ º¯Áú ¾øÀÌ µ¥ÀÌŸ ¾ÐÃàÀ» °¡´ÉÇÏ°Ô Çϱâ À§ÇØ »ç¿ëµÈ´Ù.

Content-Encoding = "Content-Encoding" ":" content-coding

content-codingÀÇ ³»¿ëÀº 3.2.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Àý¿¡ ¼³¸íµÇ¾î ÀÖ´Ù.

10.5 Content-Type

Entity Çì´õÀÇ Content-Type Çʵå´Â ¼ö½ÅÃø¿¡°Ô Àü´ÞÇÏ´Â Entity-BodyÀÇ µ¥ÀÌŸ Çü½ÄÀ» Ç¥½ÃÇÑ´Ù. ¿ä±¸ ¸Þ½ÃÁöÀÇ method°¡ GETÀ̶ó¸é Àü¼ÛÇÏ´Â µ¥ÀÌŸÀÇ Çü½ÄÀ̶õ Àǹ̷μ­ Àü´ÞµÇÁö¸¸, HEAD¶ó¸é Àü¼ÛµÇ¾î¾ß ÇÏ´Â µ¥ÀÌŸÀÇ Çü½ÄÀÌ ¾î¶² °ÍÀÎÁö Ç¥½ÃÇÏ´Â ÀǹÌÀÌ´Ù. ´ÙÀ½°ú °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù.

Content-Type = "Content-Type" ":" media-type

ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö ÀÖ´Ù.

Content-Type: text/html

media-type¿¡ ´ëÇÑ ¼³¸íÀº 3.2.6Àý¿¡ ÀÖ´Ù.

10.6 Date

¸Þ½ÃÁö°¡ ¸¸µé¾îÁö´Â ³¯Â¥¿Í ½Ã°£À» ³ªÅ¸³¾ ¶§ ¾²À̸ç, RFC 822¿¡¼­ Á¤ÀÇÇϰí ÀÖ´Â orig-date¿Í °°Àº ÀǹÌÀÌ´Ù. ÀÌ Çʵå´Â 3.2.3Àý¿¡¼­ ¼³¸íÇÏ´Â °Í°ú °°ÀÌ HTTP-date·Î Ç¥ÇöµÇ¸ç ¾Æ·¡¿Í °°´Ù.

Date = "Date" ":" HTTP-date

ÀÌÀÇ ¿¹´Â ´ÙÀ½°ú °°´Ù.

Date: Tue, 15 Nov 1994 08:12:31 GMT

¸Þ½ÃÁö°¡ »ç¿ëÀÚ ¿¡ÀÌÀüÆ®³ª ¼­¹ö¿ÍÀÇ Á÷Á¢ ¿¬°áÀ» ÅëÇØ ¼ö½ÅµÇ´Â °ÍÀ̶ó¸é ¼ö½ÅÃø¿¡¼­´Â ÀÌ ³¯Â¥¸¦ ÇöÀç ³¯Â¥·Î °£ÁÖÇÒ ¼ö ÀÖ´Ù. HTTP ÇÁ·ÎÅäÄÝ µ¿ÀÛÀÇ Ã¹ ½Ã¹ßÁ¡ÀÇ ÀÔÀå¿¡¼­ º¸¸é, ³¯Â¥¶ó°í ÇÏ´Â Á¤º¸´Â ij½ÃµÇ¾î ÀÖ´ø Á¤º¸¸¦ °ËÁõÇϱâ À§ÇÑ Áß¿äÇÑ ¿ä¼ÒÀ̹ǷΠÀÀ´äÇÏ´Â ¼­¹ö¿¡¼­´Â Ç×»ó Date Çì´õ¸¦ Æ÷ÇÔÇϰí ÀÖ¾î¾ß ÇÑ´Ù.

10.7 Expires

Entity Çì´õÀÇ Expires Çʵå´Â Àü´ÞÇÏ´Â µ¥ÀÌŸ¸¦ Àǹ̾ø´Â ´ë»óÀ¸·Î °£ÁÖÇÏ´Â ½Ã±â¸¦ Ç¥½ÃÇÑ´Ù. ´Ù½Ã ¸»ÇØ, ½ÄǰÀÇ À¯È¿±â°£ Ç¥½Ã¿Í °°ÀÌ ÀÏÁ¤ ±â°£ À¯È¿ÇÑ ´ë»ó¿¡ ´ëÇØ ±× ½Ã°¢À» Áö³ª¼­´Â À¯È¿ÇÏÁö ¾Ê´Ù°í ÁöÁ¤ÇÒ ¶§ »ç¿ëÇÏ´Â °ÍÀÌ´Ù. ¸¸¾à ij½ÃµÇ¾î ÀÖ´Â µ¥ÀÌŸ¿¡ ´ëÇØ ÀÌ·¸°Ô Ç¥½ÃµÇ¾î ÀÖÀ» ¶§¶ó¸é ÁöÁ¤ÇÑ ½Ã°¢ÀÌ Áö³ª°í ³­ ´ÙÀ½¿¡´Â ij½ÃµÇ¾î ÀÖ´Â µ¥ÀÌŸ¸¦ Áö¿öµµ µÇ´Â °ÍÀÌ´Ù.

Expires = "Expires" ":" HTTP-date

ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö ÀÖ´Ù.

Expires: Thu, 01 Dec 1994 16:00:00 GMT

ÀÌ·¸°Ô ÁöÁ¤µÈ ³¯Â¥°¡ Date Çì´õ Çʵ忡 ÀÇÇØ ÁöÁ¤µÈ °Íº¸´Ù ¾Õ¼± ³¯Â¥°Å³ª °°Àº ³¯Â¥¶ó¸é ¼ö½ÅÃø¿¡¼­´Â Æ÷ÇÔµÈ entity¸¦ Àý´ë ij½ÃÇØ¼­´Â ¾È µÈ´Ù. ÇØ´ç ÀÚ¿øÀÌ »ç¿ëÀÚ³ª ¾î¶² ½ÇÇà ÇÁ·Î±×·¥¿¡ ÀÇÇØ ÀÚÁÖ º¯°æµÉ °¡´É¼ºÀÌ ÀÖ´Â °ÍÀ̶ó¸é Expires ³¯Â¥µµ ±×¸¸Å­ ¹Ý¿µµÇ¾î¾ß ÇÑ´Ù.

10.8 From

¿ä±¸ ¸Þ½ÃÁöÀÇ From Çì´õ Çʵ忡´Â ºê¶ó¿ìÀú¸¦ »ç¿ëÇÏ¿© ¿ä±¸ ¸Þ½ÃÁö¸¦ º¸³½ »ç¿ëÀÚÀÇ E-mail ÁÖ¼Ò°¡ µé¾î°£´Ù. ÀÌ ÁÖ¼Ò´Â RFC 822¿¡ mailbox·Î Á¤ÀǵǾî ÀÖ´Â °Í°ú °°ÀÌ µ¿ÀÛ ½Ã½ºÅÛÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀ̾î¾ß ÇÑ´Ù. ´ÙÀ½°ú °°ÀÌ ±¸¼ºµÈ´Ù.

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

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

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

10.12 Pragma

General HeaderÀÇ Pragma Çʵå´Â ¿ä±¸/ÀÀ´äÀÇ ¿¬¼â µ¿ÀÛ¿¡ µû¶ó ¾î´À ¼ö½ÅÃø¿¡ Àû¿ëµÇ´Â º¯¼ö·Î¼­ ±¸Çö¿¡ °ü·ÃµÈ °ÍµéÀ» Æ÷ÇÔÇÏ´Â µ¥ ¾²ÀδÙ. ¸ðµç Pragma º¯¼ö´Â ÇÁ·ÎÅäÄÝÀÇ °üÁ¡¿¡¼­ ¼±ÅÃÀûÀÎ µ¿ÀÛÀ» ÁöÁ¤ÇÑ´Ù.

¾Æ·¡¿Í °°Àº Çü½ÄÀ¸·Î ¾²ÀδÙ.

Progma = "Pragma" ":" 1#pragma-directive pragma-directive = "no-cache" | extension-pragma extension-pragma = token ["=" word]

¸¸¾à "no-cache" º¯¼ö°¡ ¿ä±¸ ¸Þ½ÃÁö¿¡ Á¸ÀçÇÑ´Ù¸é ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼­´Â ÇØ´ç ÀÚ¿øÀÌ Ä³½ÃµÇ¾î ÀÖÀ»Áö¶óµµ ¿ø·¡ À§Ä¡Çϰí ÀÖ´Â ¼­¹ö·Î ¿ä±¸ ¸Þ½ÃÁö¸¦ Àü´ÞÇØ¾ß ÇÑ´Ù. À̰ÍÀº Ŭ¶óÀÌ¾ðÆ®°¡ º¸³»´Â ¿ä±¸¿¡ ´ëÇØ ½Å·ÚÇÒ ¼ö ÀÖ´Â ÀÀ´äÀ» ¹Þ°íÀÚ ÇÒ ¶§ ¾²ÀÏ ¼ö ÀÖÀ¸¸ç, ¶ÇÇÑ Å¬¶óÀÌ¾ðÆ®¿¡°Ô ¹®Á¦¼º Àִ ij½Ã ¹®¼­¸¦ À籸¼ºÇÒ ¼ö ÀÖµµ·Ï ÇÒ ¶§ ¾²ÀÏ ¼ö ÀÖ´Ù.

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

ÀÌ·¯ÇÑ 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 Çʵå´Â »ç¿ëÀÚ°¡ ¿ä±¸ ¸Þ½ÃÁö¸¦ »ý¼º½ÃŰ´Â ºê¶ó¿ìÀú¿¡ ´ëÇÑ Á¤º¸¸¦ ³ªÅ¸³½´Ù. À̰ÍÀº Åë°èÀûÀÎ ¸ñÀû, ÇÁ·ÎÅäÄÝ À§¹è¿¡ ´ëÇÑ ÃßÀû, ƯÁ¤ ºê¶ó¿ìÀúÀÇ ÇѰ踦 ÇÇÇϱâ À§ÇÑ ÀûÀýÇÑ ÀÀ´äÀÇ ¸ñÀûÀ¸·Î ºê¶ó¿ìÀú Á¾·ù ÀÎ½Ä µî°ú °°Àº ¸ñÀûÀ¸·Î ¾²ÀÏ ¼ö ÀÖ´Ù. ÀÌ Á¤º¸°¡ ¹Ýµå½Ã ÇÊ¿äÇÑ °ÍÀº ¾Æ´ÒÁö¶óµµ user agents´Â ¿ä±¸ ¸Þ½ÃÁö¿¡ ÀÌ Á¤º¸¸¦ Æ÷ÇÔÇÏ¿©¾ß ÇÑ´Ù. ÀÌ Çʵ忡´Â ¿©·¯ °³ÀÇ Á¦Ç° ¸íĪÀÌ Æ÷Ç﵃ ¼ö ÀÖÀ¸¸ç Á߿䵵¿¡ µû¶ó ¼ø¼­´ë·Î ³ª¿­ÇÏ¿©¾ß ÇÏ°í ¿ì¼± ¼øÀ§°¡ ³ôÀº °ÍÀ» ¾Õ¿¡´Ù ¸í½ÃÇϵµ·Ï ÇÑ´Ù. ´ÙÀ½°ú °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù.

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

ÀÌÀÇ ¿¹¸¦ ¾Æ·¡¿Í °°ÀÌ º¸ÀÏ ¼ö ÀÖ´Ù.

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

10.16 WWW-Authenticate

»ç¿ëÀÚÀÇ ¿ä±¸ ¸Þ½ÃÁö¿¡ ÁöÁ¤µÇ¾î ÀÖ´Â Á¤º¸°¡ º¸¾ÈÀÌ ÇÊ¿ä·Î ÇÏ´Â °ÍÀ̶ó¸é ¼­¹ö´Â ¼­ºñ½º¸¦ Á¦°øÇØÁÖ±â À§ÇØ »ç¿ëÀÚÀÇ ÀÎÁõÀ» ¿ä±¸ÇÒ °ÍÀÌ´Ù. ±×·¯¹Ç·Î ¼­¹ö´Â WWW-Authenticate Çʵ带 Æ÷ÇÔ½ÃÄÑ ÀÀ´ä ¸Þ½ÃÁö¸¦ ºê¶ó¿ìÀú¿¡°Ô Àü´ÞÇϵµ·Ï ÇÑ´Ù. ÀÌ·¯ÇÑ WWW-Authenticate Çì´õ Çʵå´Â 401 (unauthorized) ÀÀ´ä ¸Þ½ÃÁö¿¡´Â ¹Ýµå½Ã Æ÷ÇԵǾî¾ß ÇÏ´Â °ÍÀÌ´Ù. ´ÙÀ½°ú °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù.

WWW-Authenticate = "WWW-Authenticate" ":" 1#challenge

HTTP ÇÁ·ÎÅäÄÝ¿¡¼­ÀÇ »ç¿ëÀÚ ÀÎÁõ °úÁ¤Àº 11Àå¿¡¼­ ¼³¸íµÇ°í ÀÖ´Ù. Çʵ尡 Çϳª ÀÌ»óÀÇ challenge¸¦ °®°í Àְųª Çϳª ÀÌ»óÀÇ WWW-Authenticate Çì´õ Çʵ尡 ÀÖ´Ù¸é user agents´Â WWW-Authenticate ÇÊµå °ªÀ» ÆÄ½ÌÇÒ ¶§ Ưº°ÇÑ ÁÖÀǸ¦ ±â¿ï¿©¾ß ÇÑ´Ù. ¿Ö³ÄÇϸé challengeÀÇ ³»¿ëÀÌ ","·Î¼­ ±¸ºÐµÇ´Â ÀÏ·ÃÀÇ ÀÎÁõ ÆÄ¶ó¹ÌÅÍ ¸®½ºÆ®¸¦ Æ÷ÇÔÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù.

11. Á¢±Ù ÀÎÁõ (Access Authentication)

HTTP/1.0 ÇÁ·ÎÅäÄÝ¿¡¼­´Â ¼­¹ö°¡ Ŭ¶óÀ̾ðÆ®ÀÇ ¿ä±¸¿¡ ´ëÇØ °Ë»çÇϰí (challenge) Ŭ¶óÀÌ¾ðÆ®°¡ ÀÎÁõ Á¤º¸¸¦ º¸³»´Â ´Ü¼øÇÑ °Ë»ç/ÀÀ´ä ÀÎÁõ ¸ÞÄ«´ÏÁòÀ» (challenge-response authentication mechanism) »ç¿ëÇϰí Àִµ¥, ´ÙÀ½°ú °°Àº Ç¥Çö½ÄÀ¸·Î ³ªÅ¸³¾ ¼ö ÀÖ´Ù.

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

401 (unauthorized) ÀÀ´ä ¸Þ½ÃÁö´Â user agentÀÇ ÀÎÁõ °Ë»ç¸¦ À§ÇØ ¼­¹ö¿¡ ÀÇÇØ »ç¿ëµÇ´Â °ÍÀÌ´Ù. ÀÌ·¯ÇÑ ÀÀ´äÀº Àû¾îµµ ÇϳªÀÇ challenge¸¦ °¡Áø WWW-Authenticate Çì´õ Çʵ带 Æ÷ÇÔÇÏ¿©¾ß Çϸç, À̶§ÀÇ challenge´Â ¿äû¹ÞÀº ÀÚ¿ø¿¡ ´ëÇØ Àû¿ëÇÒ ¼ö ÀÖ´Â °ÍÀ̶ó¾ß ÇÑ´Ù.

realm attribute´Â ´ë¼Ò¹®ÀÚ¸¦ °¡¸®Áö ¾ÊÀ¸¸ç challenge¸¦ Æ÷ÇÔÇÏ´Â ¸ðµç ÀÎÁõ Ãǰèµé¿¡ ´ëÇØ ÇÊ¿äÇÑ °ÍÀÌ´Ù. realm attribute¿¡ ´ëÇÑ realm value´Â ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇϸç Á¢±ÙÇϰí ÀÖ´Â ¼­¹öÀÇ root URL°ú °áÇÕÇÏ¿© Ç¥½ÃµÇ¾î º¸È£ ¹üÀ§¸¦ ¼³Á¤ÇÑ´Ù. ÀÌ·¯ÇÑ realmµéÀº ¼­¹ö¿¡ ÀÖ´Â º¸È£ ÀÚ¿øµé¿¡ ´ëÇØ º¸È£ ¿µ¿ªÀÇ ÁýÇÕÀÇ ÇüÅ·Π³ª´­ ¼ö ÀÖ°Ô ÇØÁÖ¸ç, °¢°¢Àº µ¶ÀÚÀûÀÎ ÀÎÁõ ü°è¿Í ÀÎÁõ µ¥ÀÌŸº£À̽º¸¦ °¡Áú ¼ö ÀÖ´Ù. realm value´Â ¹®ÀÚ¿­·Î¼­ ¼­¹ö¿¡ ÀÇÇØ ÇÒ´çµÇ´Â °ÍÀÌ´Ù.

user agent°¡ ÀÚ±â ÀÚ½ÅÀ» ¼­¹ö¿¡°Ô ÀÎÁõ¹Þ°íÀÚ ÇÑ´Ù¸é ¿ä±¸ ¸Þ½ÃÁö¿Í ÇÔ²² Authorization Çì´õ Çʵ带 Æ÷ÇÔ½ÃÄѼ­ º¸³½´Ù. ÀÌ ÇʵåÀÇ value´Â ¿äûÇÏ´Â ÀÚ¿ø¿¡ ´ëÇÑ user agentÀÇ ÀÎÁõ Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â credentials·Î ±¸¼ºµÈ´Ù. (10.2 ÂüÁ¶) user agent°¡ credentialsÀ» ÀÚµ¿ÀûÀ¸·Î Àû¿ëÇÒ ¼ö ÀÖ´Â ¹üÀ§´Â º¸È£ ¹üÀ§¿¡ ÀÇÇØ °áÁ¤µÈ´Ù. ÀÌÀü ¿ä±¸°¡ ÀÌ¹Ì ÀÎÁ¤µÇ¾ú´Ù¸é, ÀÎÁõ ü°è, ÆÄ¶ó¹ÌÅÍ, ¹× »ç¿ëÀÚ ¼±È£µµ¿¡ ÀÇÇØ °áÁ¤µÇ´Â ÀÏÁ¤ ½Ã°£ µ¿¾È °°Àº credentialsÀº º¸È£ ¹üÀ§ ³»ÀÇ ¸ðµç ¿ä±¸¿¡ ´ëÇØ Àç»ç¿ëµÉ ¼ö ÀÖ´Ù. ¸¸¾à ¼­¹ö°¡ ¿ä±¸ ¸Þ½ÃÁö¿Í ÇÔ²² Àü´ÞµÈ credentialsÀ» Á¢¼öÇÏÁö ¾Ê°íÀÚ ÇÑ´Ù¸é 403 (forbidden) ÀÀ´äÀ» º¸³»¾î¾ß ÇÑ´Ù.

ÇÁ¶ô½Ã ¼­¹ö´Â user agent ÀÎÁõÀ» À§ÇØ WWW-Authentication°ú Authorization Çì´õ¸¦ ¿ø·¡ »óÅ ±×´ë·Î Áß°èÇØ¾ß Çϰí, AuthorizationÀ» Æ÷ÇÔÇϰí ÀÖ´Â ¿ä±¸ ¸Þ½ÃÁö¿¡ ´ëÇÑ ÀÀ´äÀ» Àý´ë ij½ÃÇØ¼­´Â ¾È µÈ´Ù. HTTP/1.0¿¡¼­´Â Ŭ¶óÀÌ¾ðÆ®°¡ ÇÁ¶ô½Ã¿Í ÀÎÁõÇÏ´Â ¼ö´ÜÀº Á¦°øÇÏÁö ¾Ê´Â´Ù.

11.1 ±âº» ÀÎÁõ ü°è (Basic Authentication Scheme)

"Basic" ÀÎÁõ ü°è´Â user agent°¡ °¢ º¸¾È ¿µ¿ª¿¡ ´ëÇØ »ç¿ëÀÚ ¾ÆÀ̵ð¿Í ºñ¹Ð¹øÈ£·Î ÀÚ½ÅÀ» Áõ¸íÇÏ´Â ¸ðµ¨¿¡ ±â¹ÝÇϰí ÀÖ´Ù. ¼­¹ö´Â 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. Âü°íÀÚ·á

[1]
Roy Fielding, "Hypertext Transfer Protocol - HTTP/1.0", RFC 1945, IETF HTTP WG, May 1996.

[2]
W. Richard Stevens, "TCP/IP Illustrated, Volume 1", Addison-Wesley, 1994.


HyperText Transfer Protocol - HTTP/1.1
(Korean Version 1.0)

Abstract:
HTTP´Â HyperText Transfer ProtocolÀÇ ¾àÀÚÀ̸ç, ºÐ»êȯ°æ ¹× °øµ¿ÀÛ¾÷ ȯ°æ¿¡ ÀÌ¿ëÇÒ ÇÏÀÌÆÛ¹Ìµð¾î Á¤º¸½Ã½ºÅÛÀÇ °³¹ßÀ» ¸ñÀûÀ¸·Î ¼³°èµÈ ÀÀ¿ë°èÃþÀÇ ÇÁ·ÎÅäÄÝÀÌ´Ù. À̰ÍÀº ¾à°£ÀÇ È®ÀåÀ» ÅëÇØ ³×ÀÓ ¼­¹ö³ª ºÐ»ê °´Ã¼ °ü¸® ½Ã½ºÅÛ°ú °°Àº ¸¹À» Àϵ鿡 Ȱ¿ëÇÒ ¼ö ÀÖ´Â °´Ã¼ÁöÇâ ÇÁ·ÎÅäÄݷμ­ request/response (i.e., stateless) µ¿ÀÛ¿¡ ±â¹ÝÇϰí ÀÖ´Ù. HTTP ÇÁ·ÎÅäÄÝÀÇ ÇÑ °¡Áö Ư¡Àº µ¥ÀÌŸ Ç¥ÇöÀÇ ÇüÅ ¹× Çù»ó¿¡ °üÇÑ °ÍÀ̸ç Àü¼ÛÇÏ´Â µ¥ÀÌŸ¿¡ µ¶¸³ÀûÀ¸·Î ½Ã½ºÅÛÀ» ±¸¼ºÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. ÀÌ·¸°Ô »ç¿ëµÇ´Â HTTP´Â World-Wide Web¿¡¼­ »ç¿ëµÇ¾î ¿ÔÀ¸¸ç, ÀÌ ¹®¼­ÀÇ ³»¿ëÀº HTTP/1.0 ¹öÀü ´ÙÀ½ ´Ü°èÀÎ HTTP/1.1 ¹öÀü¿¡ °üÇÑ °ÍÀÌ´Ù.[1]

Keywords:
HTTP, Protocol, BNF, Message, Header, Request, Response, Entity, Method, Proxy, Cache, Content Negotiation, Access Authentication

Status:
ÀÌ ¹®¼­´Â ftp://ftp.ietf.org/internet-drafts/draft-ietf-http-v11-spec-07.ps ¹®¼­¿¡ ´ëÇØ ftp://ds.internic.net/rfc/rfc1945.txt ¹®¼­ÀÇ ºñ±³ °üÁ¡¿¡¼­ ¿ä¾à Á¤¸®¸¦ ÇÑ °ÍÀ̸ç, º»¹® ¼Ó¿¡ µé¾îÀÖ´Â ´ëºÎºÐÀÇ ³»¿ëÀÌ ºüÁøÃ¤ ÀÛ¼ºµÈ °ÍÀÌ´Ù. ³»¿ëÀ» ´ëÆø º¸¿ÏÇÑ »õ·Î¿î ¹®¼­´Â Korean Version 2.0¿¡¼­ Á¦°øµÉ ¿¹Á¤ÀÌ´Ù. º» ¹®¼­ÀÎ Korean Version 1.0ÀÌ À§Ä¡ÇÏ´Â °÷Àº http://pec.etri.re.kr/~qkim/HTTP/http11v1.html À̸ç, Korean Version 2.0ÀÌ À§Ä¡ÇÏ´Â °÷Àº http://pec.etri.re.kr/~qkim/HTTP/http11v2.html ÀÌ´Ù. WWW¿¡¼­ »ç¿ëÇÏ´Â °¢Á¾ ÇÁ·ÎÅäÄÝ¿¡ ´ëÇÑ ¹®¼­ Á¤¸®´Â http://pec.etri.re.kr/~qkim/HTTP/¿¡ Á¤¸®µÇ°í ÀÖÀ¸¸ç ¹®¼­ ³»¿ëÀÇ º¯°æ¿¡ ´ëÇÑ ¾Ë¸²±ÛÀÌ ÀÖ´Ù.

1. ¼­·Ð

HTTP/0.9·Î¼­ Ç¥±âµÇ´ø Ãʱâ HTTP ÇÁ·ÎÅäÄÝÀº ÀÎÅͳÝÀ» ÅëÇØ µ¥ÀÌŸ ±×´ë·Î ¼Û¼ö½ÅÇϱâ À§ÇÑ ¸ñÀûÀ¸·Î ¸¸µé¾îÁø ¸Å¿ì ´Ü¼øÇÑ ÇÁÅäÅäÄÝÀÌ´Ù. ±×·¡¼­ ±â´ÉÀÇ Çâ»óÀ» À§ÇØ HTTP/1.0 ÇÁ·ÎÅäÄÝÀ» ¼³°èÇÏ¿© ¸Þ½ÃÁö¸¦ MIME°ú ºñ½ÁÇÑ Çü½ÄÀ¸·Î ±¸¼ºÇÒ ¼ö ÀÖ°Ô Çϰí Àü¼ÛÇÏ´Â µ¥ÀÌŸ¿¡ ´ëÇÑ ¿ÜÇü Á¤º¸¸¦ Àü´ÞÇÏ°í ¿ä±¸/ÀÀ´ä ü°è¿¡ À־ÀÇ Ç¥Çö½ÄÀ» º¸°­ÇÏ¿´´Ù.

±×·¯³ª HTTP/1.0¿¡´Â °èÃþÀû ±¸Á¶ÀÇ ÇÁ¶ô½Ã ¼­¹ö¿Í ij½Ì¿¡ ´ëÇÑ °í·Á°¡ ¾ø°í »ó½Ã ¿¬°á (persistent connection) ¹× °¡»ó È£½ºÆ®¿¡ ´ëÇÑ Çʿ伺¿¡ ´ëÇÑ ¾ð±Þµµ ¾ø´Ù. ´õ¿ì±â Ŭ¶óÀÌ¾ðÆ®¿Í ¼­¹ö »çÀÌ¿¡ °¢°¢ÀÇ ¸ðµç ó¸® ´É·Â¿¡ ´ëÇÑ Çù»ó ¶Ç´Â °áÁ¤¿¡ ´ëÇÑ ¾î¶² ±â´Éµµ Áö¿øµÇÁö ¾ÊÀ¸¹Ç·Î ÇÁ·ÎÅäÄÝ ¹öÀüÀÇ º¯°æ°ú ÇÔ²² ±â´É Çâ»óÀ» µµ¸ðÇÏ°Ô µÇ¾ú´Ù.

ÀÌ¿¡ µû¶ó ±â´É Çâ»óµÇ´Â HTTP/1.0 ÇÁ·ÎÅäÄÝÀ» HTTP/1.1·Î À̸§ ºÙÀ̱â·Î ÇÏ¿´´Ù. HTTP/1.1¿¡¼­´Â Çâ»óµÈ ±â´ÉÀ» ½Å·Ú¼º ÀÖ°Ô ±¸ÇöÇϱâ À§ÇØ º¸´Ù ¾ö¹ÐÇÑ ¿ä±¸»çÇ×µéÀ» Á¤ÀÇÇϰí ÀÖ´Ù.

2. HTTP/1.0 ÇÁ·ÎÅäÄÝÀÇ ¹®Á¦Á¡

HTTP/1.0 ÇÁ·ÎÅäÄÝÀÇ Æ¯Â¡Àº ´Ü¼ø¼º¿¡ ÀÖ´Ù. ±×·¡¼­ ¿¬°áÀ» ¸¸µé°í µ¿ÀÛÇÏ°í ¿¬°áÀ» ÇØÁ¦ÇÏ´Â ´Ü¼øÇÑ °úÁ¤À¸·Î ±¸¼ºµÇ¾î ÀÖÀ¸¸ç, ÇϳªÀÇ URLÀº ÇϳªÀÇ TCP ¿¬°áÀÌ µÇµµ·Ï ¸¸µé¾îÁ® ÀÖ´Ù.

¿¬°áÀÇ ¼³¸³/µ¿ÀÛ/ÇØÁ¦ÀÇ ´Ü¼ø µ¿ÀÛÀÌ °è¼Ó ¹Ýº¹µÊÀ¸·ÎÇØ¼­ ³×Æ®¿öÅ©ÀÇ congestion¿¡ ´ëÇÑ Á¤º¸¸¦ È®º¸ÇÒ ¼ö°¡ ¾ø¾ú´Ù. ¿¬°áÀÌ °è¼Ó Áö¼ÓµÇ¾î ÀÖ´Ù¸é Á¤º¸ ÃàÀû°ú ºÐ¼®À» ÅëÇØ Æ®·¡ÇÈÀÇ È¥ÀâÀ» ÀνÄÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù.

¶ÇÇÑ ÀæÀº ¿¬°á ¼³¸³°ú µ¿½Ã¿¡ ¿©·¯ °³ÀÇ ¿¬°áÀ» ¼³¸³ÇÏ´Â µ¿ÀÛÀ» ÅëÇØ bandwidth°¡ ³·Àº ¸µÅ©¿¡¼­ congestion ¹®Á¦ÀÇ °¡´É¼ºÀ» ³ôÀÌ°í »ç¿ëÀÚ¿¡°Ô´Â ºÒ¸¸Á·½º·± ¼º´ÉÀ» Á¦°øÇØÁÖ°Ô µÈ´Ù.

ij½Ã ¸ðµ¨ÀÇ ¹ÌÈíÇÔµµ ¹®Á¦ÀÌ´Ù. ij½Ì¿¡ °üÇØ ¼³°èÇÑ ¸ðµ¨ÀÌ ÃʱâÀûÀÎ ÇüÅ·Π±¸¼ºµÇ¾ú±â ¶§¹®¿¡ µ¿ÀÛ»óÀÇ ¿À¹öÇìµåµµ ¸¸µé°í ij½ÃµÈ µ¥ÀÌŸ °ü¸®¿¡µµ ¹®Á¦¸¦ °®°í ÀÖ¾ú´ø °ÍÀÌ´Ù.

ÀÌ·¯ÇÑ ¹®Á¦µéÀ» ÇØ°áÇϰí, Ãß°¡ÀûÀÎ °í·Á »çÇ×À» ¹Ý¿µÇÑ HTTP/1.1 ÇÁ·ÎÅäÄÝÀ» ¼³°èÇÏ°Ô µÈ °ÍÀÌ´Ù.

3. HTTP/1.1 ÇÁ·ÎÅäÄÝÀÇ Æ¯Â¡

ÀÌ ¹®¼­¿¡¼­´Â HTTP/1.1ÀÇ Àüü ±Ô°Ý¿¡ ´ëÇÑ »ó¼¼ ¼Ò°³´Â ÇÏÁö ¾Ê°í, HTTP/1.0 ¹öÀü°úÀÇ ºñ±³¿¡ ÀÇÇÑ ÁÖ¿ä Â÷ÀÌÁ¡¸¸ »ìÆìº¸µµ·Ï ÇÑ´Ù. HTTP/1.1¿¡ ´ëÇÑ »ó¼¼ ¼Ò°³´Â ´ÙÀ½ ´Ü°èÀÇ ¹®¼­ Á¤¸® ¶§ ¸¶¹«¸®Çϵµ·Ï ÇÑ´Ù.

3.1 ¿ë¾î Á¤ÀÇ (Terminology)

HTTP/1.1¿¡¼­ »ç¿ëÇϰí ÀÖ´Â ¿ë¾îµéÀº ±âº»ÀûÀ¸·Î HTTP/1.0¿¡¼­ »ç¿ëÇϰí ÀÖ´Â ¿ë¾î Á¤ÀǸ¦ ±×´ë·Î ÀÌ¿ëÇϰí ÀÖÀ¸¸ç, HTTP/1.1 Ãß°¡ ±â´ÉÀ» À§ÇÑ »ó´ç¼ö »õ·Î¿î ¿ë¾î Á¤Àǰ¡ Ãß°¡µÇ¾ú´Ù.

HTTP/1.1ÀÇ Æ¯Â¡ °¡¿îµ¥ Çϳª°¡ content negotiationÀ̶ó°í ÇÏ´Â °ÍÀÌ´Ù. (???Àý ÂüÁ¶) ÀÌ¿Í °ü·ÃµÈ ¿ë¾î Á¤Àǰ¡ Ãß°¡µÇ¾úÀ¸¸ç representation, content negotiation, variant µîÀÌ´Ù.

°èÃþÀûÀÎ ÇÁ¶ô½Ã ¹× ij½Ã ±â´ÉÀÌ HTTP/1.1ÀÇ Æ¯Â¡À̸ç À̸¦ À§ÇÑ cachable, first-hand, explicit expiration time, heuristic expiration time, age, freshness lifetime, fresh, stale, semantically transparent, validator µîÀÇ ¿ë¾î°¡ Ãß°¡µÇ¾ú´Ù.

3.2 ÇÁ·ÎÅäÄÝ ÆÄ¶ó¹ÌÅÍ

ÇÁ·ÎÅäÄÝ ÆÄ¶ó¹ÌÅÍ¿Í °ü·ÃÇØ¼­´Â ´ÙÀ½°ú °°Àº »çÇ×µéÀÌ º¯°æµÇ¾ú´Ù.

3.3 HTTP ¸Þ½ÃÁö

¸Þ½ÃÁö ±¸¼º Çü½ÄÀ» ³ªÅ¸³»±â À§ÇÑ Ç¥Çö½ÄÀÌ HTTP/1.0¿¡ ºñÇØ ´Þ¶óÁ³´Ù. entity-body¶õ À̸§ÀÌ message-body¶õ À̸§À¸·Î ¹Ù²î¾úÀ¸³ª ÀüüÀûÀ¸·Î Ç¥Çö½Ä¸¸ ´Þ¶óÁ³À» »Ó ½ÇÁ¦ ±¸¼º Çü½ÄÀº HTTP/1.0°ú °°´Ù. ±×·¯³ª °¢ Çì´õ ¿¡ Æ÷ÇԵǴ Çì´õ Çʵå´Â ´Ù¼ö Ãß°¡µÇ¾î ÀÖÀ¸¸ç HTTP/1.0°ú´Â ´Þ¸® ±¸¼ºµÇ¾î ÀÖ´Ù.

General Header Field¸¸ ÇÏ´õ¶óµµ ±âÁ¸ÀÇ Data, Pragma¿¡ ´õÇØ Cache-Control, Connection, Transfer-Encoding, Upgrade, Via µîÀÇ Çʵ尡 Ãß°¡µÇ¾î ÀÖ´Ù.

3.4 Request

HTTP/1.0¿¡¼­ÀÇ Request ¸Þ½ÃÁö¿Í ±âº» ±¸¼º Çü½ÄÀº ¶È°°À¸³ª request-haderÀÇ Çì´õ Çʵ尡 ´Ù¼ö Ãß°¡µÇ¾ú°í, »ç¿ëÇÏ´Â methodÀÇ Á¾·ùµµ ¸¹ÀÌ ´Ã¾î³µ´Ù.

method´Â HTTP/1.0¿¡¼­ ¾²ÀÌ´ø °ÍµéÀÌ ´ÙÀ½°ú °°´Ù.

ÀÌ·¯ÇÑ methodµé¿¡ Ãß°¡ÇÏ¿© HTTP/1.1¿¡´Â ´ÙÀ½°ú °°Àº °ÍµéÀÌ ÀÖ´Ù.

OPTIONS
Request-URI¿¡ ÀÇÇØ ÁöÁ¤µÇ´Â ÀÚ¿ø¿¡ ´ëÇÑ ¿ä±¸/ÀÀ´äÀÇ °ü°è¿¡ ÀÖ¾î Åë½Å°ú °ü·ÃµÈ ¼±Åà »çÇ׵鿡 ´ëÇÑ Á¤º¸¸¦ ¿äûÇÒ ¶§ ¾²ÀδÙ. À̸¦ ÅëÇØ Ŭ¶óÀÌ¾ðÆ®´Â ¾î´À °ÍÀ» ¼±ÅÃÇÒÁö °áÁ¤ÇÒ ¼ö ÀÖÀ¸¸ç ¶Ç´Â ÀÚ¿ø°ú °ü·ÃµÈ ÇÊ¿ä»çÇ×µµ °áÁ¤ÇÒ ¼ö ÀÖ´Ù. ±×¸®°í ¼­¹öÀÇ ¼öÇà ´É·Â¿¡ ´ëÇØ¼­µµ ¾Ë¾Æº¼ ¼ö ÀÖ´Ù. ±×·¯³ª ÀÚ¿ø¿¡ ´ëÇÑ ¾î¶² µ¿ÀÛÀ» ¼öÇà½ÃŰ°Å³ª °®°í ¿Â´ÙµçÁö ÇÏ´Â µ¿ÀÛÀº Çã¿ëµÇÁö ¾Ê´Â´Ù. ÇØ´ç ÀÚ¿ø¿¡ Çã¿ëµÇ´Â Á¢±Ù ¹æ¹ýµéÀ» ³ª¿­ÇÏ´Â Allow Çì´õ Çʵ尡 Åë½Å ¼±Åà »çÇ×ÀÇ ¿¹°¡ µÉ °ÍÀÌ´Ù. Content-TypeÀº ¿¹·Î¼­ Àû´çÇÏÁö ¾Ê´Ù.

PUT
¸Þ½ÃÁö¿¡ Æ÷ÇԵǾî ÀÖ´Â µ¥ÀÌŸ¸¦ ÁöÁ¤ÇÑ Request-URI Àå¼Ò¿¡ ±× À̸§À¸·Î ÀúÀåµÇ°Ô ÇÑ´Ù. Request-URI ÀÚ¸®¿¡ °°Àº °ÍÀÌ Á¸ÀçÇϰí ÀÖ´Ù¸é ¸Þ½ÃÁö¿¡ Æ÷ÇԵǾî ÀÖ´Â µ¥ÀÌŸ ¼öÁ¤µÈ ÃÖ±Ù ÀÚ¿øÀ̶ó°í °£ÁÖÇÏ¿©¾ß ÇÑ´Ù. ¸¸¾à¿¡ Á¸ÀçÇÏÁö ¾Ê°í ÀÖ´Ù¸é »õ·Î¿î ÀÚ¿øÀ¸·Î¼­ Request-URI¿¡ ÀÖ´Â URI·Î ÀúÀåµÇ°Ô µÇ¸ç ºê¶ó¿ìÀú¿¡¼­´Â ÀÌ URI·Î ÀÚ¿øÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ°Ô µÈ´Ù. ¹Ù·Î ÀÌ Á¡ÀÌ POST¿ÍÀÇ Â÷ÀÌÁ¡ÀÌ´Ù. POST¿¡¼­´Â ÀÌ URI·Î Ȱ¿ë ¹æ¹ý¿¡ µû¶ó ÀÌ¿ëÇÒ ¼ö ¾øÀ» °¡´É¼ºµµ ÀÖ´Ù.

DELETE
Request-URI¿¡ ÁöÁ¤µÇ¾î ÀÖ´Â ÀÚ¿øÀ» ¼­¹ö¿¡¼­ Áö¿ï ¼ö ÀÖ°Ô ÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù.

TRACE
¿ä±¸ ¸Þ½ÃÁöÀÇ ÃÖÁ¾ ¼ö½Åó±îÁöÀÇ ·çÇÁ¹é °Ë»ç¿ëÀ¸·Î ¾²ÀδÙ. Áï, Ŭ¶óÀÌ¾ðÆ®°¡ º¸³»´Â ¿ä±¸ ¸Þ½ÃÁö°¡ °ÅÃİ¡´Â ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌÀÇ Áß°£ °æ·Î ¹× ÃÖÁ¾ ¼ö½Å ¼­¹ö±îÁö À̸£´Â °æ·Î¸¦ ¾Ë¾Æ³»´Â µ¥¿¡ ¾²ÀδÙ. ÀÌ¿Í ÇÔ²² »ç¿ëµÇ´Â Çì´õ Çʵå´Â Max-Forwards¶ó°í ÇÏ´Â °ÍÀ̸ç, Áß°£¿¡ °ÅÃİ¥ ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌ °æ·ÎÀÇ ÃÖ´ë ¼ýÀÚ¸¦ ÁöÁ¤ÇÏ´Â °ÍÀÌ´Ù.

request-headerÀÇ Çʵ忡´Â HTTP/1.0ÀÇ °ÍÀÌ ´ÙÀ½°ú °°À¸¸ç,

HTTP/1.1¿¡¼­´Â À§ Çʵ忡 ´õÇØ ´ÙÀ½°ú °°Àº °ÍµéÀÌ Ãß°¡µÇ¾ú´Ù.

3.5 Response

HTTP/1.0¿¡¼­ÀÇ Response ¸Þ½ÃÁö¿Í ±âº» ±¸¼º Çü½ÄÀº ¶È°°À¸³ª response-haderÀÇ Çì´õ Çʵ尡 ´Ù¼ö Ãß°¡µÇ¾ú°í, »óÅ ÄÚµåÀÇ Á¾·ùµµ ´Ù¼ö ´Ã¾î³µ´Ù.

response-headerÀÇ Çʵ忡´Â HTTP/1.0ÀÇ °ÍÀÌ ´ÙÀ½°ú °°À¸¸ç,

HTTP/1.1¿¡¼­´Â À§ Çʵ忡 ´õÇØ ´ÙÀ½°ú °°Àº °ÍµéÀÌ Ãß°¡µÇ¾ú´Ù.

3.6 Entity

entity-haderÀÇ Çì´õ Çʵ尡 ´Ù¼ö Ãß°¡µÇ¾ú´Ù. HTTP/1.0ÀÇ °ÍÀÌ ´ÙÀ½°ú °°À¸¸ç,

HTTP/1.1¿¡¼­´Â À§ Çʵ忡 ´õÇØ ´ÙÀ½°ú °°Àº °ÍµéÀÌ Ãß°¡µÇ¾ú´Ù.

3.7 Connections

TCP ¿¬°á °üÁ¡¿¡¼­ µ¥ÀÌŸ ¼Û¼ö½ÅÀÇ È¿À²¼ºÀ» ³ôÀ̱â À§ÇÏ¿© »ó½Ã ¿¬°á (persistent connection) ±â´ÉÀ» HTTP/1.0¿¡¼­ Ãß°¡ÇÏ¿´´Ù. ÀÌ¿¡ µû¶ó HTTP/1.1 ÇÁ·ÎÅäÄÝ¿¡ ±â¹ÝÇÏ´Â ¸ðµç HTTP ¿¬°áÀº »ó½Ã ¿¬°á ±â´É¿¡ ÀÇÇØ ¼­¹ö¿¡ Á¢¼ÓÇÏ°Ô µÈ´Ù. µû¶ó¼­ ¼­¹ö´Â ¼ö¸³ÇÑ ¿¬°á¿¡ ´ëÇØ ÀÏ´Ü »ó½Ã ¿¬°áÀ̶ó°í °£ÁÖÇØ¹ö¸°´Ù.

±×·¯¹Ç·Î ¿¬°áÀÇ ÇØÁ¦¸¦ À§ÇÑ ¼ö´ÜÀ» Á¦°øÇØ¾ß Çϴµ¥ À̰ÍÀÌ Connection Çì´õ Çʵ尡 µÇ¸ç close¶õ ÆÄ¶ó¹ÌÅͰ¡ ¼­¹ö·Î Àü´ÞµÇ¸é ¼³¸³µÈ »ó½Ã ¿¬°áÀº ÇØÁ¦µÇ°Ô µÈ´Ù. ¹Ý´ë·Î ¼­¹ö°¡ ÀÀ´äÀ» ÇÏ°í³­ ÈÄ¿¡ ¿¬°áÀ» ÇØÁ¦ÇϰíÀÚ ÇÑ´Ù¸é Ŭ¶óÀÌ¾ðÆ®·Î Àü¼ÛµÇ´Â ÀÀ´ä ¸Þ½ÃÁö¿¡ Connection Çì´õ Çʵ带 ³Ö¾î¼­ close ÆÄ¶ó¹ÌÅ͸¦ Àü´ÞÇÏ¸é µÈ´Ù.

ÀÌ ±â´É¿¡ µû¶ó Ŭ¶óÀÌ¾ðÆ®´Â 'ÆÄÀÌÇÁ¶óÀÎ(pipeline)'À̶ó ºÒ¸®¿ì´Â ¿¬¼ÓÀûÀ¸·Î ¸î °³ÀÇ ¿ä±¸ ¸Þ½ÃÁö¸¦ °¢°¢¿¡ ´ëÇØ ÀÀ´äÀ» ¹ÞÁö ¾ÊÀº »óÅÂÀÓ¿¡µµ º¸³¾ ¼ö ÀÖ°Ô µÈ´Ù. À̶§ ¼­¹ö´Â ¿ä±¸ ¸Þ½ÃÁö¸¦ ¼ö½ÅÇÑ ¼ø¼­´ë·Î ÀÀ´ä ¸Þ½ÃÁö¸¦ Àü´ÞÇØ¾ß ÇÑ´Ù.

3.8 Access Authentication

HTTP/1.0 ±Ô°Ý¿¡´Â ±âº» ÀÎÁõ ü°è (Basic Access Authentication, BAA)¿¡ ´ëÇÑ ±ÔÁ¤¸¸ ÀÖ¾úÀ¸³ª HTTP/1.1¿¡´Â ÇÁ¶ô½Ã¿Í »ç¿ëÇÏ´Â Proxy-Authentication Çʵå¿Í Proxy-Authorization Çʵ尡 Ãß°¡µÇ¾î ÀÖÀ¸¸ç, ¶ÇÇÑ Digest Access Authentication (DAA) ºÎºÐµµ Ãß°¡µÇ¾î ÀÖ´Ù.[1] (BAA¿Í DAA¶õ ¿ë¾î´Â ¼Õ½¬¿î Ç¥±â¸¦ À§ÇØ ÀÌ ¹®¼­¿¡¼­¸¸ ¾²ÀÌ´Â °ÍÀ̹ǷΠ´Ù¸¥ ¹®¼­ ¼Ó¿¡ Ȥ½Ã ÀÖÀ»Áöµµ ¸ð¸£´Â BAA ¹× DAA¿Í È¥µ¿ÇÏÁö ¾Ê±â ¹Ù¶õ´Ù.)

HTTP/1.0¿¡¼­ »ç¿ëµÇ´ø »ç¿ëÀÚ ÀÎÁõ ¹æ½ÄÀº »ç¿ëÀÚ ¾ÆÀ̵ð¿Í ºñ¹Ð ¹øÈ£°¡ ¾Æ¹«·± ¾Ïȣȭ °úÁ¤¾øÀÌ ³×Æ®¿öÅ©¸¦ ÅëÇØ ¼­¹ö·Î Àü´ÞµÇ´ø °ÍÀ̾ Å»Ãë ¹× °ø°ÝÀÇ °¡´É¼ºÀÌ ÀÖ¾úÀ¸¹Ç·Î, ÀÎÁõÀ» À§ÇÑ Á¤º¸¸¦ º¸´Ù ¾ÈÀüÇÑ ¹æ¹ýÀ¸·Î Àü´ÞÇϱâ À§ÇØ Digest Access Authentication ¹æ½ÄÀ» »ç¿ëÇÑ´Ù.

DAA ¹æ½Äµµ BAA ¹æ½Ä°ú ¸¶Âù°¡Áö·Î ´Ü¼øÇÑ challenge-response ¸ÞÄ«´ÏÁòÀ¸·Î µ¿ÀÛÇÑ´Ù. Basic ¹æ½Ä¿¡¼­¿Í °°ÀÌ Åë½ÅÇÏ´Â ¾ç ÂÊ¿¡¼­ µÑ ´Ù ºñ¹Ð¹øÈ£¸¦ °øÀ¯ÇÑ´Ù´Â Á¡Àº °°´Ù. ±×·¯³ª DAA ¹æ½Ä¿¡¼­´Â nonce value¸¦ »ç¿ëÇϰí ÀÖÀ¸¸ç, ÀÀ´ä ¸Þ½ÃÁö ¼Ó¿¡ MD5 checksum ¹æ½Ä¿¡ ÀÇÇØ ÀÎÄÚµùµÈ »ç¿ëÀÚ ¾ÆÀ̵ð, ºñ¹Ð¹øÈ£, ÁÖ¾îÁø nonce value, HTTP method, request-URI µîÀÌ µé¾î°¡Áö¸¸, ºñ¹Ð¹øÈ£´Â Àý´ë clear textÀÇ ÇüÅ·ΠÀü´ÞµÇÁö ¾Ê´Â´Ù. ÀÌ °úÁ¤¿¡¼­ ¼­¹ö¿¡°Ô checksumÀ̳ª digest¸¦ »ý¼ºÇÏ´Â µ¥ ¾²ÀÌ´Â ¾Ë°í¸®ÁòÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ°Ô ÇÏ´Â ¼±ÅÃÀû Çì´õ°¡ ÀÖ´Ù. ¿©±â¼­´Â MD5 ¾Ë°í¸®ÁòÀÌ ±âº»ÀûÀ¸·Î ¼³Á¤µÇ¾î ÀÖÀ¸¸ç 128-bits MD5 digest°¡ 32°³ÀÇ ASCII ¹®Àڷμ­ Ç¥ÇöµÈ´Ù.

µû¶ó¼­ MD5 ¾Ë°í¸®Áò¿¡¼­ ¾Ë·ÁÁø ¹®Á¦Á¡µéÀÌ ±×´ë·Î DAA ¹æ½Ä¿¡¼­µµ ³ªÅ¸³­´Ù. ÇÏÁö¸¸ DAA´Â BAA¸¦ ´ëÄ¡Çϱâ À§ÇØ ¸¸µé¾îÁø °ÍÀ̸ç, ¼­¹ö Ãø¸é¿¡¼­ÀÇ ºñ¹Ð¹øÈ£ ½Ã½ºÅÛÀÌ °øÅëÀûÀ¸·Î °Þ°í ÀÖ´Â ¹®Á¦Á¡À̱⵵ ÇÏ´Ù. ÀÌ ÇÁ·ÎÅäÄÝÀº kerberos ¸¸Å­ ¾ÈÀüÇÏÁö ¸øÇϰí, client-side private-key ¹æ½Ä¿¡ ºñÇØ¼­µµ ¾ÈÀüÇÏÁö ¸øÇϱä ÇÏÁö¸¸, ¾ø´Â °Íº¸´Ù´Â ³´°í, ¶ÇÇÑ telnet, ftp¿¡¼­ ¾²ÀÌ´Â ¹æ½ÄÀ̳ª BAA ¹æ½Äº¸´Ù´Â ´õ ÁÁÀº ¹æ¹ýÀÌ´Ù.

±×·¯¹Ç·Î À̰ÍÀÌ º¸¾ÈÀ» À§ÇÑ ¿Ïº®ÇÑ ÇØ°áÃ¥ÀÌ µÉ ¼ö´Â ¾øÀ¸¸ç, ¶ÇÇÑ ¸Þ½ÃÁö ¼ÓÀÇ ½ÇÁ¦ µ¥ÀÌŸ´Â ¾Ïȣȭ µÇÁöµµ ¾Ê°í Àü´ÞµÈ´Ù. DAA¸¦ ÅëÇØ ´Þ¼ºÇϰíÀÚ Çß´ø °ÍÀº BAA ¹æ½ÄÀÌ °¡Áø °¡Àå ½É°¢ÇÑ ¹®Á¦Á¡À» ÇØ°áÇϰíÀÚ ÇÏ´Â ´Ü¼øÇÑ ¸ñÀû¿¡ Àֱ⠶§¹®¿¡ DAA¸¦ ÅëÇØ ¿Ïº®ÇÑ º¸¾ÈÀÌ ÀÌ·ç¾îÁø´Ù°í »ý°¢Çؼ­´Â ¾È µÈ´Ù.

´ëºÎºÐÀÇ ´Ù¸¥ ÀÎÁõ ÇÁ·ÎÅäÄÝ¿¡¼­ º¸´õ¶óµµ °ø°Ý¿¡ ´ëÇÑ À§ÇèÀº ÇÁ·ÎÅäÄÝ ÀÚü¿¡ ÀÖ´Â °ÍÀÌ ¾Æ´Ï¶ó À̰ÍÀ» »ç¿ëÇÏ´Â µ¥ À־ÀÇ º¸¾È Á¤Ã¥À̳ª ÀýÂ÷¿¡ ÀÇÇØ Á¿ìµÈ´Ù. Digest Access AuthenticationÀ» »ç¿ëÇÏ´õ¶óµµ ÀÌÀÇ º¸¾È °­µµ´Â ±¸Çö ¹æ½Ä¿¡ ´Þ·Á ÀÖ°Ô µÈ´Ù.

ÀÌ·¯ÇÑ DAA ¹æ½ÄÀ» À§ÇØ WWW-Authenticate Çì´õ Çʵå¿Í Authorization Çì´õ Çʵ带 ¼öÁ¤ÇÏ¿´´Ù. ¿©±â¿¡´Ù Authentication-info¶ó°í ÇÏ´Â »õ·Î¿î Çì´õ Çʵå Çϳª°¡ DAA¸¦ À§ÇØ Ãß°¡µÇ¾ú´Ù.[2]

3.9 Content Negotiation

´ëºÎºÐÀÇ ÀÀ´ä ¸Þ½ÃÁö¿¡´Â ¿äûµÈ ´ë»ó ÀÚ¿øÀÌ entity·Î¼­ Æ÷ÇԵǾî Àִµ¥ »ç¿ëÀÚ°¡ ÀνÄÇÒ ¼ö ÀÖ´Â Á¤º¸·Î Ç¥ÇöÇϱâ À§ÇØ ÀûÀýÇÑ º¯È¯ °úÁ¤À» °ÅÄ¥ ¼ö ÀÖ´Ù. À̶§ »ç¿ëÀÚ´Â ¿äûÇÑ ¿ä±¸ ¸Þ½ÃÁöÀÇ ÁöÁ¤ »çÇ׿¡ °¡Àå 'ÀûÀýÇÑ' ÇüÅ·Π¹Þ¾Æº¸°íÀÚ ÇÒ °ÍÀÌ´Ù.

¿¹¸¦ µé¾î, gzipÀ¸·Î ¾ÐÃàµÇ¾î ÀÖ´Â ÀÚ¿øÀ» Ŭ¶óÀÌ¾ðÆ®°¡ °®°í ¿Í¼­ ¾ÐÃàÀ» Ç®°í¼­ ÀúÀåÇÏ°Ô ÇÒ ¼öµµ ÀÖ°í ÀûÀýÇÑ viewer·Î º¸¿©ÁÙ ¼öµµ ÀÖÀ¸¸ç ¿©·¯°¡Áö viewerµé °¡¿îµ¥ ¼±ÅÃÇÏ°Ô ÇÒ ¼öµµ ÀÖ´Ù. ¿©±â¼­ °¡Àå ÀûÀýÇÏ´Ù´Â °ÍÀº ¼±È£µµ ¹®Á¦ ¶§¹®¿¡ ¸ðµç »ç¿ëÀڵ鿡°Ô ¶È°°ÀÌ Àû¿ëµÇ´Â °ÍÀº ¾Æ´Ï´Ù. ¶ÇÇÑ ¸ðµç ºê¶ó¿ìÀú°¡ ¸ðµç Á¾·ùÀÇ µ¥ÀÌŸ ÇüŸ¦ ¸ðµÎ ó¸®ÇÒ ¼ö ÀÖ´Â °Íµµ ¾Æ´Ï´Ù.

HTTP/1.1¿¡¼­´Â ÇÑ °¡Áö ´ë»ó ÀÚ¿ø¿¡ ´ëÇØ ¸î °¡Áö ÇüÅÂÀÇ ¼±Åà »ç¾çÀ» Àü´ÞÇÑ´Ù. ÀÌ °¢°¢ÀÇ ¼±Åà Á¤º¸¸¦ 'variant'¶ó°í ÇÑ´Ù. ¿¹¸¦ µé¾î ¾î¶² ¹®¼­¿¡ ´ëÇØ ´ÙÀ½°ú °°ÀÌ ¼¼ °¡Áö ¼±Åà Á¶°ÇÀ» Á¦½ÃÇÒ ¼ö ÀÖ´Ù.

  1. HTML, Korean
  2. HTML, English
  3. Postscript, Korean
  4. Postscript, English

content negotiationÀ̶õ, ÇØ´ç ¹®¼­¸¦ °®°í ¿À°íÀÚ ÇÒ ¶§ »ç¿ëÀÚÀÇ ¼±È£µµ ÁöÁ¤ »çÇ×°ú Ŭ¶óÀ̾ðÆ®ÀÇ ¼öÇà ´É·Â¿¡ µû¶ó¼­ °¡Àå ÃÖ»óÀ¸·Î ÇÕÄ¡µÇ´Â Á¶°ÇÀÇ ¹®¼­¸¦ ¼±ÅÃÇÏ¿© °¡Á®¿Í¼­ »ç¿ëÀÚ¿¡°Ô º¸¿©ÁÙ ¼ö ÀÖµµ·Ï ÇÏ´Â °úÁ¤À» ¸»ÇÑ´Ù.[3]

±×·¯¹Ç·Î »ç¿ëÀÚ°¡ ¹Ù¶ó´Â ÇüÅ·ΠÁ¦°øÇϱâ À§ÇØ content negotiationÀ̶ó°í ÇÏ´Â ¸î °¡Áö ¸ÞÄ«´ÏÁòÀ» HTTP/1.1¿¡¼­´Â Á¦°øÇÑ´Ù. ´ÙÀ½°ú °°Àº ¸ÞÄ«´ÏÁòÀÌ Á¦¾ÈµÇ¾î ÀÖ´Ù.[1]

Server-driven Negotiation
À̰ÍÀº ¼­¹ö¿¡ ÀÖ´Â ¾Ë°í¸®Áò¿¡ ÀÇÇØ ¿©·¯ °¡Áö ¼±ÅÃ¾Èµé °¡¿îµ¥ ÃÖ»óÀÇ °ÍÀÌ °áÁ¤µÇµµ·Ï ÇÑ °ÍÀÌ´Ù. ÀÌÀÇ ¼±ÅÃÀº ¼­¹ö ÀÀ´ä¿¡ Çã¿ëµÇ´Â °Íµé°ú Ŭ¶óÀ̾ðÆ®ÀÇ ¿ä±¸ ¸Þ½ÃÁö¿¡ Æ÷ÇԵǾî Àִ ƯÁ¤ ÁöÁ¤ »çÇ׿¡ ÀÇÇØ °áÁ¤µÇ°Å³ª, ¶Ç´Â ¿ä±¸ ¸Þ½ÃÁö¿¡ Æ÷ÇԵǾî ÀÖ´Â ´Ù¸¥ Á¤º¸µéÀ» ÀÌ¿ëÇÏ¿© ¼­¹ö°¡ °áÁ¤ÇÏ´Â °ÍÀÌ´Ù.

À̸¦ À§ÇØ Å¬¶óÀÌ¾ðÆ®´Â Accept, Accept-Language, Accept-Encoding µîÀÇ Çì´õ Çʵ带 ¿ä±¸ ¸Þ½ÃÁö¿¡ Æ÷ÇÔ½ÃÄѼ­ ¼­¹ö¿¡°Ô º¸³½´Ù. ¼­¹ö¸¦ À̵é Á¤º¸¸¦ º¸°í¼­ °áÁ¤ÇÏ´Â °ÍÀÌ´Ù.[1]

Agent-driven Negotiation
ÃÖ»óÀÇ ¼±Åÿ¡ ´ëÇÑ °áÁ¤À» ¼­¹ö·ÎºÎÅÍ ÃÖÃÊ ÀÀ´äÀ» ¹Þ°í ³­ ÈÄ¿¡ Ŭ¶óÀÌ¾ðÆ®°¡ ÇÏ´Â ¹æ½ÄÀÌ´Ù. ÀÀ´ä ¸Þ½ÃÁöÀÇ Alternates Çì´õ Çʵ忡 ÀÖ´Â Á¤º¸³ª ÃÖÃÊ ÀÀ´äÀÇ entity-body Á¤º¸¸¦ º¸°í¼­ Ŭ¶óÀÌ¾ðÆ®°¡ °áÁ¤ÇÑ´Ù.[1]

Transparent Nogotiation
À̰ÍÀº À§ µÎ ¹æ½ÄÀ» °áÇÕÇÑ °ÍÀÌ´Ù. Çù»óÀÇ ºÐ»êÀÌ °¡´ÉÇÑ ÀÕÁ¡À» °®°í ÀÖÀ¸¸ç µÎ ¹æ½ÄÀÇ ÀåÁ¡µéÀÌ °áÇÕµÊÀ¸·Î¼­ °¡Àå ÁÖ¸ñ¹Þ°í ÀÖ´Â ¹æ½ÄÀÌ´Ù.[1]

HTTP/1.1 ¹®¼­¿Í´Â º°µµ·Î °ü¸®µÇ°í ÀÖÀ¸¸ç, ¾ÈÁ¤ÀûÀÎ »óÅ·ΠÁ¤¸®µÇ¸é HTTP/1.1 ¹®¼­¿¡ µé¾î°¡°Ô µÉ °ÍÀÌ´Ù.[3]

3.10 Caching in HTTP

HTTP/1.0 ±Ô°Ý¿¡¼­µµ HTTP ÇÁ·ÎÅäÄÝ µ¿ÀÛ »óÀÇ µ¥ÀÌŸ ij½Ì¿¡ ´ëÇÏ¿© ´Ù·ç°í ÀÖ´Ù. HTTP/1.1¿¡¼­´Â ÀÌ ±â´ÉÀÌ º¸´Ù Àß µ¿ÀÛÇÏ°Ô Çϱâ À§ÇÑ ¸¹Àº ¿ä¼ÒµéÀÌ Ãß°¡µÇ¾ú´Âµ¥, ±× ¸ñÀûÀº ¸¹Àº °æ¿ì¿¡ ÀÖ¾î µ¥ÀÌŸ ¿äûÀ» À§ÇÑ ¿ä±¸ ¸Þ½ÃÁöÀÇ ¼ö¸¦ ÁÙÀ̱â À§ÇÔÀÌ°í ¶Ç ´Ù¸¥ °æ¿ìµé¿¡ ÀÖ¾î ¼­¹ö°¡ º¸³»´Â ÀÀ´ä ¸Þ½ÃÁöÀÇ ¼ö¸¦ ÁÙÀ̱â À§ÇÔÀÌ´Ù.

¿ä±¸ ¸Þ½ÃÁöÀÇ ¼ö¸¦ ÁÙÀÌ°Ô µÇ¸é ³×Æ®¿öÅ©ÀÇ round-tripÀÇ È½¼ö°¡ ÁÙ¾îµå´Âµ¥ À̸¦ À§ÇØ expiration ¸ÞÄ«´ÏÁòÀ» »ç¿ëÇÑ´Ù. ¸¸¾à ÀÀ´ä ¸Þ½ÃÁöÀÇ ¼ö°¡ ÁÙ¾îµé°Ô µÇ¸é ³×Æ®¿öÅ©ÀÇ bandwidth ¿ë·®À» º¸Á¸ÇÒ ¼ö ÀÖ°Ô µÇ¸ç À̸¦ À§ÇØ validation ¸ÞÄ«´ÏÁòÀ» »ç¿ëÇÑ´Ù.

ExpirationÀ̶õ ¼­¹ö°¡ ¿äû¹ÞÀº ÀÚ¿øÀ» º¸³¾ ¶§ ¸íÈ®ÇÑ À¯È¿±â°£À» Á¤Çؼ­ º¸³»´Â µ¿ÀÛÀ» ¸»ÇÑ´Ù. ÀÌ ³¯ÀÚ°¡ Áö³­ ÀÚ¿øÀÇ À¯È¿¼ºÀº º¸ÀåÇÏÁö ¸øÇϹǷΠ¼­¹ö·ÎºÎÅÍ »õ·Ó°Ô ¹Þ¾Æ¿Í¾ß Çϸç, À¯È¿±â°£ ³»ÀÇ ÀÚ¿øÀ̶ó¸é ¿ä±¸ ¸Þ½ÃÁö¸¦ º¸³»Áö ¾Ê´õ¶óµµ ij½ÃµÇ¾î ÀÖ´Â ÀÚ¿øÀ» Á¦°øÇÒ ¼ö ÀÖ°Ô µÇ´Â °ÍÀÌ´Ù.

ValidationÀ̶õ ij½ÃµÇ¾î ÀÚ¿ø¿¡ ´ëÇÑ À¯È¿¼ºÀ» È®ÀÎÇÏ´Â °ÍÀÌ´Ù. Ŭ¶óÀ̾ðÆ®ÀÇ ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î¼­ »ç¿ëÇÒ ¼ö Àִ ij½Ã µ¥ÀÌŸ°¡ ÀÖ´Ù¸é ¸ÕÀú ¼­¹ö¿Í ÇØ´ç µ¥ÀÌŸ¸¦ »ç¿ëÇÒ ¼ö ÀÖ´ÂÁö À¯È¿¼º °Ë»ç¸¦ ÇØ¾ß ÇÑ´Ù.

3.11 Çì´õ Çʵå Á¤ÀÇ

¾Õ¿¡¼­ ¾ð±ÞÇß´ø ¸¹Àº Çì´õ ÇʵåµéÀÌ HTTP/1.1¿¡¼­ Ãß°¡µÇ¾ú´Ù. »ó¼¼ÇÑ ±â´É ¼³¸íÀº ´ÙÀ½¿¡ °³Á¤µÉ ¹®¼­¿¡¼­ ´Ù·çµµ·Ï Çϰí, ¿©±â¼­´Â ÁÖ¸ñµÇ´Â Ư¡Àû Çʵ常 ¾ð±ÞÇϵµ·Ï ÇÑ´Ù.

3.11.1 Host

ÀÌ·¸°Ô Ãß°¡µÈ Çʵåµé °¡¿îµ¥ ÇϳªÀÇ È£½ºÆ® ÄÄÇ»ÅÍ¿¡ ¿©·¯ °³ÀÇ ¼­¹ö¸¦ ±¸¼ºÇÒ ¼ö ÀÖ´Â Multi-Homed ±â´ÉÀ» ÇÁ·ÎÅäÄÝ Â÷¿ø¿¡¼­ ±¸ÇöÇϵµ·Ï ÇÏ´Â °ÍÀÌ ÀÖ´Ù. HTTP/1.0¿¡¼­´Â ¼­¹ö ÇÁ·Î±×·¥ÀÇ ±¸Çö»ó °¡´ÉÇß´ø ±â´ÉÀ̸ç ÀÌ °æ¿ì¿¡ ÇϳªÀÇ È£½ºÆ® ÄÄÇ»ÅÍ¿¡ Ãß°¡ÇϰíÀÚ ÇÏ´Â ¼­¹ö ȨÀÇ °¹¼ö¸¸Å­ IP ÁÖ¼Ò¸¦ ÁöÁ¤Çß¾î¾ß Çß´Ù. µû¶ó¼­ È£½ºÆ® ÄÄÇ»ÅÍ´Â ÇÑ ´ëÀÏÁö¶óµµ ÇÒ´çµÈ IP °¹¼ö¸¸Å­ÀÇ ¼­¹ö ȨÀ» ±¸¼ºÇÒ ¼ö ÀÖ¾ú´Ù.

±×·¯³ª HTTP/1.0¿¡¼­´Â ÇϳªÀÇ È£½ºÆ®¿¡ ÇϳªÀÇ IP ÁÖ¼Ò¸¸ °¡Áö°íµµ ÀÌ·± ±â´ÉÀÌ °¡´ÉÇϵµ·Ï µÇ¾î ÀÖ´Ù. ´Ù¸¸ DNS ½Ã½ºÅÛ¿¡ µî·ÏµÇ´Â ¿©·¯ °³ÀÇ À̸§ ÁÖ¼Ò´Â °°Àº IP ÁÖ¼Ò·Î µî·ÏµÇ¾î¾ß ÇÑ´Ù. Áï, ´Ù¾çÇÑ µµ¸ÞÀÎÀÇ ´Ù¾çÇÑ À̸§ ÁÖ¼Ò¶ó ÇÒÁö¶óµµ ¸ðµÎ °°Àº IP ÁÖ¼Ò·Î µî·ÏµÇ¾î¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù.

ÀÌ·± ±â´ÉÀ» ÇÏ´Â °ÍÀÌ Host¶ó°í ÇÏ´Â Çì´õ ÇʵåÀÌ´Ù. ¿¹¸¦ µé¾î,

http://pec.etri.re.kr/~qkim/HTTP/

À§¿Í °°Àº URLÀÌ ¿ä±¸ ¸Þ½ÃÁö¿¡ Æ÷Ç﵃ ¶§ ¾Æ·¡¿Í °°Àº Çü½ÄÀ¸·Î ±¸¼ºµÈ´Ù.

GET /~qkim/HTTP/ HTTP/1.1 Host: pec.etri.re.kr

±×·¯¹Ç·Î °°Àº IP¸¦ »ç¿ëÇÏ´Â °°Àº È£½ºÆ®¶ó ÇÒÁö¶óµµ Æ÷ÇԵǾî ÀÖ´Â Host Á¤º¸¸¦ ÅëÇØ ¾î´À ȨÀ» °¡¸®Å°´ÂÁö ¾Ë ¼ö ÀÖ°Ô µÇ´Â °ÍÀÌ´Ù.

3.11.2 Range

¸ðµç HTTP entities´Â HTTP ¸Þ½ÃÁö ³»¿¡ ÀÏ·ÃÀÇ ¹ÙÀÌÆ®¿­·Î¼­ Æ÷ÇԵȴÙ. µû¶ó¼­ ÀÌ °¡¿îµ¥ ÀÏÁ¤ ºÎºÐÀÇ ¹ÙÀÌÆ®¸¸ ¿ä±¸ÇÏ°í ¼­ºñ½º¹Þ´Â °ÍÀº ¾ÆÁÖ Æí¸®ÇÑ ±â´ÉÀÌ´Ù. À̸¦ À§ÇØ ¿øÇÏ´Â ¹ÙÀÌÆ® ¿µ¿ªÀ» Ç¥½ÃÇÏ¿© °¡Á®¿Ã ¼ö ÀÖ°Ô Çϸç, Ãß°¡µÈ Çì´õ Çʵå´Â RangeÀÌ´Ù.

3.11.3 Upgrade

General Çì´õ¿¡ ¼ÓÇÏ´Â Çì´õ ÇʵåÀÌ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ÀÚ½ÅÀÌ Áö¿øÇÒ ¼ö ÀÖ´Â Ãß°¡ÀûÀÎ ÇÁ·ÎÅäÄÝÀÌ ¹«¾ùÀÎÁö, ¸¸¾à ¼­¹ö°¡ ÇÁ·ÎÅäÄÝ º¯È¯À» ÇÒ ¼ö ÀÖ´Ù¸é Ŭ¶óÀÌ¾ðÆ®´Â ¾î¶² ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇϰíÀÚ ÇÏ´ÂÁö Upgrade Çì´õ Çʵ带 ÅëÇØ ¼­¹ö¿¡°Ô ¾Ë·Á ÁÙ ¼ö ÀÖ´Ù.

¸¸¾à ¼­¹ö°¡ ÇÁ·ÎÅäÄÝ º¯È¯À» ÇÒ ¼ö ÀÖ´Ù¸é, ¼­¹ö´Â ¹Ýµå½Ã 101 (Switching Protocols) ÀÀ´ä ¸Þ½ÃÁö ¼Ó¿¡ Upgrade Çʵ带 ¹Ýµå½Ã Æ÷ÇÔ½ÃÄÑ¾ß ÇÑ´Ù. ÀÌÀÇ Çü½ÄÀº ¾Æ·¡¿Í °°´Ù.

Upgrade = "Upgrade" ":" 1#product

ÀÌÀÇ ¿¹¸¦ µéÀÚ¸é ¾Æ·¡¿Í °°´Ù.

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

ÀÌ·¯ÇÑ Çì´õ Çʵ带 ÅëÇØ HTTP/1.1 ÇÁ·ÎÅäÄÝ¿¡¼­ °³Á¤µÈ »õ·Î¿î HTTP ÇÁ·ÎÅäÄÝ·ÎÀÇ º¯È¯À̳ª, ¶Ç´Â ´Ù¸¥ Á¾·ùÀÇ ÇÁ·ÎÅäÄÝ·ÎÀÇ º¯È¯ÀÌ ¼Õ½±°Ô °¡´ÉÇÏ°Ô µÈ´Ù.

À̶§ Upgrade Çì´õ Çʵå´Â Ŭ¶óÀÌ¾ðÆ®¿Í Ã³À½ ³ªÅ¸³ª´Â Áß°£ ÇÁ¶ô½Ã³ª °ÔÀÌÆ®¿þÀÌ »çÀÌ¿¡¼­¿Í °°ÀÌ Áß°£ ¿¬°á¿¡¸¸ Àû¿ëµÇ±â ¶§¹®¿¡ ¸Þ½ÃÁö°¡ ¿À°¡´Â Àüü ¿¬°á¿¡ ´ëÇØ¼­ Àû¿ëÇϱâ À§Çؼ­´Â Upgrade Çì´õ°¡ Çʵ尡 Á¸ÀçÇÏ´Â ¸ðµç ¸Þ½ÃÁö¿¡ ´ëÇØ Connection Çì´õ Çʵ嵵 Á¸ÀçÇÏ¿©¾ß ÇÑ´Ù.

4. To the Future

HTTP/1.1 ´ÙÀ½ ¹öÀü¿¡¼­ ³íÀÇµÉ °ÍµéÀÌ °Å·ÐµÇ°í Àִµ¥, ´ÙÀ½°ú °°Àº °ÍµéÀÌ´Ù.

Hit Count
ij½ÃµÇ¾î ÀÖ´Â µ¥ÀÌŸ¿¡ ´ëÇØ hit ratio¸¦ ÆÄ¾ÇÇÒ ¼ö ÀÖ°Ô ÇÏ¿© ij½Ã °ü¸®ÀÇ È¿À²¼ºÀ» ³ôÀ̰íÀÚ ÇÏ´Â °ÍÀÌ´Ù.

Compressed Protocol
sticky header¸¦ »ç¿ëÇÏ´Â °ÍÀε¥, ¹«¾ùÀ» ¸ñÇ¥·Î ÇÏ´Â °ÍÀÎÁö ¾ÆÁ÷ ÆÄ¾ÇµÇÁö ¾Ê¾Ò´Ù.(1996. 11. 7. ÇöÀç)

Multiplexing
multiplexing ±â¹ýÀ» ÀÌ¿ëÇÏ¿© ¿©·¯ °³ÀÇ TCP ¿¬°áÀ» ¸¸µéÁö ¾Ê´õ¶óµµ ÇØ´ç HTTP ¸Þ½ÃÁöµéÀ» °¡Á®¿Ã ¼ö ÀÖµµ·Ï ÇÏÀÚ´Â °ÍÀÌ´Ù.

PEP
HTTP ÇÁ·ÎÅäÄÝ¿¡ »ç¿ëÀÚ°¡ Á÷Á¢ ¼³°èÇÑ ÇÁ·ÎÅäÄÝÀ» Ãß°¡ÇÒ ¼ö ÀÖ°Ô ÇÏ´Â °ÍÀÌ´Ù.

5. Out of Scope of HTTP/1.1:
HTTP State Management Mechanism

[4]

HTTP ÇÁ·ÎÅäÄÝ »óÀÇ »óÅ °ü¸®´Â Ŭ¶óÀÌ¾ðÆ®¿Í ¼­¹ö »çÀÌ¿¡ ¿À°¡´Â ¿ä±¸ ¹× ÀÀ´ä ¸Þ½ÃÁö¿¡¼­ ¿À°¡´Â »óÅ Á¤º¸¸¦ ÀϰüÀûÀ¸·Î ´Ù·ç±â À§ÇÔÀÌ´Ù. HTTP´Â stateless·Î¼­ ¿¬¼ÓÀûÀ¸·Î º¸³»´Â ¿ä±¸ ¸Þ½ÃÁöµé »çÀÌ¿¡ ¾Æ¹«·± °ü·Ã¼ºÀ» ºÎ¿©ÇÒ ¼ö°¡ ¾ø´Ù. ±×·¯¹Ç·Î °°Àº º¸¾È ¿µ¿ª ¼Ó¿¡ ÀÖ´Â ÀÚ¿øµéÀ» ¿¬¼ÓÀûÀ¸·Î ¿äûÇϰíÀÚ ÇÑ´Ù¸é ¸Å¹ø »ç¿ëÀÚ ÀÎÁõÀÇ °úÁ¤À» °ÅÃÄ¾ß ÇÒ °ÍÀÌ´Ù. À̰ÍÀÌ ¸¹ÀÌ È°¿ëµÇ°í ÀÖÀ½¿¡µµ ºÒ±¸Çϰí HTTP/1.0À̳ª HTTP/1.1 ±Ô°Ý µÎ °÷ ¸ðµÎ¿¡ ¾ÆÁ÷ Æ÷ÇԵǾî ÀÖÁö ¾ÊÀ¸¸ç º°µµÀÇ µå·¡ÇÁÆ® ¹®¼­·Î¼­ Á¸ÀçÇÑ´Ù.

¿©±â¼­´Â µ¿ÀÛ °³³ä¿¡ ´ëÇÑ °³·«¸¸ ¾ð±ÞÇϱâ·Î ÇÑ´Ù.

5.1 State & Sessions

¿¹¸¦ µéÀÚ¸é, ¼ÒºñÀÚ°¡ »óÁ¡¿¡ °¡¼­ ÇÊ¿äÇÑ ¿©·¯ ¹°°ÇµéÀ» Áý¾îµå´Â µ¿ÀÛ°ú Àå¹Ù±¸´Ï¿¡ ´ã´Â µ¿ÀÛÀº ¿©·¯ ¹øÀÇ ¿ä±¸/ÀÀ´ä »óȲ°ú ¿Ïº®ÇÏ°Ô ÀÏÄ¡ÇÏ¸ç °¢°¢ÀÇ ¹°°Ç ¼±Åðú ´ã´Â °ÍµéÀº ¼­·Î »ó°ü°ü°è°¡ ¾ø´Ù. ÇÏÁö¸¸ ¼ÒºñÀÚ°¡ ÇÊ¿äÇÑ ¹°°ÇÀ» ±¸ÀÔÇϰíÀÚÇÏ´Â ÇÑ °¡Áö ¸ñÀû ÇÏ¿¡ ¿òÁ÷À̰í ÀÖ´Â °ÍÀ̹ǷΠÀ̰ÍÀÌ ¼¼¼ÇÀÇ Àǹ̰¡ µÈ´Ù. Àú³á ¹ÝÂù°Å¸® ±¸ÀÔÀÌ ¹Ù·Î ÇÑ °¡Áö ¼¼¼ÇÀÇ ÀǹÌÀÎ °ÍÀÌ´Ù.

ÄíŰÀÇ ±³È¯¿¡ ÀÇÇØ »ý¼ºµÇ´Â ¼¼¼ÇÀº ´ÙÀ½°ú °°Àº Ư¼ºÀ» °¡Áø´Ù.

  1. °¢ ¼¼¼ÇÀº ½ÃÀÛ°ú ³¡ÀÌ Á¸ÀçÇÑ´Ù.
  2. °¢ ¼¼¼ÇÀº ºñ±³Àû ªÀº ½Ã°£ µ¿¾È¸¸ Á¸ÀçÇÑ´Ù.
  3. Ŭ¶óÀÌ¾ðÆ® ¶Ç´Â ¼­¹ö ¾î´À ÂÊÀÌ¶óµµ ¼¼¼ÇÀ» ÇØÁ¦ÇÒ ¼ö ÀÖ´Ù.
  4. ¼¼¼ÇÀ̶õ »óÅ Á¤º¸ÀÇ ±³È¯À̶õ Àǹ̸¦ ÇÔÃàÇϰí ÀÖ´Ù.

¾Æ·¡¿¡ ¼­¹ö¿Í Ŭ¶óÀÌ¾ðÆ® »çÀÌÀÇ »óÅ Á¤º¸ ±³È¯¿¡ ´ëÇÑ ¹æ¹ý¿¡ ´ëÇØ ¼³¸íÇϵµ·Ï ÇÑ´Ù.

5.2 ¼­¹öÀÇ ¿ªÇÒ

5.2.1 ÀϹÝÀû µ¿ÀÛ

¼­¹ö´Â ¼¼¼ÇÀ» »ý¼º½ÃŰ´Â ¿ªÇÒÀ» ÇÑ´Ù. À̸¦ À§ÇØ ¼­¹ö´Â ÀÀ´ä ¸Þ½ÃÁö¿¡ Set-Cookie¶ó°í ÇÏ´Â Ãß°¡ÀûÀÎ Çì´õ Çʵ带 º¸³»µµ·Ï ÇÑ´Ù.

Ŭ¶óÀÌ¾ðÆ®´Â ¼¼¼ÇÀ» Áö¼Ó½ÃŰÀÚ °áÁ¤ÇÒ °æ¿ì¿¡ ¼­¹ö¸¦ ÇâÇØ ¿ä±¸ ¸Þ½ÃÁö¿¡ Cookie Çì´õ Çʵ带 º¸³»µµ·Ï ÇÑ´Ù. ¼­¹ö´Â ÀÌ Á¤º¸¸¦ ¹«½ÃÇÒ ¼öµµ ÀÖ°í ¼¼¼ÇÀÇ ÇöÀç »óŸ¦ °áÁ¤Çϱâ À§ÇØ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. ¼­¹ö´Â Ŭ¶óÀÌ¾ðÆ®¿¡°Ô °°Àº Á¤º¸ ¶Ç´Â ´Ù¸¥ Á¤º¸¸¦ Set-Cookie Çì´õ Çʵ带 ÅëÇØ º¸³¾ ¼öµµ ÀÖ°í, ¶ÇÈç ÀüÇô ¾È º¸³¾ ¼öµµ ÀÖ´Ù. ¼­¹ö°¡ ¼¼¼ÇÀ» ÇØÁ¦Çϱâ À§Çؼ­´Â Max-Age=0¶õ Á¤º¸¸¦ Set-Cookie Çì´õ Çʵ忡 ½Ç¾î¼­ Ŭ¶óÀÌ¾ðÆ®¿¡°Ô º¸³»¸é µÈ´Ù.

À̶§ ¼­¹ö´Â ÇϳªÀÇ ÀÀ´ä ¸Þ½ÃÁö¿¡ ¿©·¯ °³ÀÇ Set-Cookie Çì´õ Çʵ带 Æ÷ÇÔ½Ãų ¼öµµ ÀÖ´Ù. ±×·¯¹Ç·Î Áß°£ °ÔÀÌÆ®¿þÀÌ¿¡¼­´Â ÀÌ·± ¿©·¯ °³ÀÇ Çì´õ Çʵ带 ÇϳªÀÇ Çʵå·Î ÇÏ¿© º¸³¾ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.

Set-Cookie Çì´õ Çʵå´Â ´ÙÀ½°ú °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù.

set-cookie = "Set-Cookie:" cookies cookies = 1#cookie cookie = NAME "=" VALUE *(";" cookie-av) NAME = attr attr = token VALUE = value value = word cookie-av = "Comment" "=" value | "Domain" "=" value | "Max-Age" "=" value | "Path" "=" value | "Secure" | "Version" "=" 1*DIGIT

5.2.2 ij½Ì °ü¸®

¼­¹ö´Â Ŭ¶óÀÌ¾ðÆ®¿¡°Ô Àü´ÞÇÑ ÀÚ¿ø°ú Set-Cookie Çì´õ¿¡ ´ëÇÑ Ä³½Ì ¹®Á¦¸¦ ÇØ°áÇÏ¿©¾ß ÇÑ´Ù. ŸÀο¡°Ô º¸¿©¼­´Â ¾È µÇ´Â ¹®¼­³ª ´Ù¸¥ »ç¶÷µé°ú °øÀ¯Çؼ­´Â ¾È µÇ´Â Set-Cookie Á¤º¸°¡ ij½Ã·Î¼­ ³²¾ÆÀ־´Â ¾È µÇ±â ¶§¹®ÀÌ´Ù. ¸¸¾à ´Ù¸¥ »ç¶÷µé°ú °øÀ¯Çصµ µÇ´Â Set-Cookie Çì´õ¶ó¸é ij½ÃµÇ°Ô ÇÒ ¼öµµ ÀÖ´Ù.

ÀÌ·¯ÇÑ µ¿ÀÛÀ» À§ÇØ ¼­¹ö´Â ÀÀ´ä ¸Þ½ÃÁöÀÇ Çì´õ¿¡ Á¶°Ç¿¡ µû¶ó¼­ Ãß°¡ÀûÀÎ Çì´õ Çʵ带 ¼±ÅÃÀûÀ¸·Î º¸³»¾î¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î, Set-Cookie¸¦ ij½ÃµÇÁö ¾Êµµ·Ï ÇϰíÀÚ ÇÑ´Ù¸é ´ÙÀ½°ú °°Àº Çì´õ Çʵ带 º¸³»¾ß ÇÑ´Ù.

Cache-control: no-cache="set-cookie"

¸¸¾à °³ÀÎÀû Á¤º¸¶ó¼­ ÇØ´ç ÀÚ¿øÀ» ´Ù¸¥ »ç¶÷µé°ú °øÀ¯ÇÏÁö ¾Ê°Ô²û ÇÒ·Á¸é ´ÙÀ½°ú °°Àº Çì´õ Çʵ带 º¸³»¼­ °øÀ¯ ij½Ã ¿µ¿ª¿¡ ij½ÃµÇÁö ¾Êµµ·Ï ÇØ¾ß ÇÑ´Ù.

Cache-control: private

5.3 Ŭ¶óÀÌ¾ðÆ® ¿ªÇÒ (User Agent Role)

5.3.1 Set-Cookie Àû¿ë

Ŭ¶óÀÌ¾ðÆ®¿¡¼­´Â °¢±â ´Ù¸¥ ¼­¹ö·ÎºÎÅÍ Àü´ÞµÇ´Â Set-Cookie ÀÀ´äÀ» ÅëÇØ »óÅ Á¤º¸¸¦ º°µµ·Î °ü¸®ÇÏ¿©¾ß ÇÑ´Ù. ±×·¯¹Ç·Î Set-Cookie ¼Ó¿¡ ÀÖ´Â ÁöÁ¤ »çÇ×µéÀ» ÀûÀýÇÏ°Ô ÀνÄÇÏ¿© Àû¿ëÇÏ¿©¾ß ÇÑ´Ù.

5.3.2 Cookie °ÅºÎ

¸î °¡Áö ºÒÀÏÄ¡ »óȲÀÌ ¹ß»ýÇÏ¸é º¸¾ÈÀ̳ª »ç»ýȰ Ä§ÇØÀÇ ¹®Á¦·Î Ŭ¶óÀÌ¾ðÆ®´Â Äí۸¦ °ÅºÎÇÒ ¼öµµ ÀÖ´Ù.

5.3.3 Cookie °ü¸®

Ŭ¶óÀÌ¾ðÆ®°¡ ÇöÀç Á¸ÀçÇÏ´Â ÄíŰ¿Í °°Àº À̸§À» °®°í¼­ ÀÌÀÇ DomainÀ̳ª Path°¡ ¿ÏÀüÈ÷ ÀÏÄ¡ÇÒ ¶§ »õ·Î µµÂøÇÑ Äí۰¡ ±âÁ¸ÀÇ °ÍÀ» ´ëÄ¡ÇÏ°Ô µÈ´Ù. ÇÏÁö¸¸ »õ·Î µµÂøÇÑ Set-Cookie°¡ Max-AgeÀÇ °ªÀ» 0À¸·Î °¡Áú ¶§ ±âÁ¸ÀÇ °ÍÀ̳ª ÇöÀçÀÇ °ÍÀ̳ª µÑ ´Ù »èÁ¦Çعö·Á¾ß ÇÑ´Ù. ÀÌ·± Äí۰¡ µµÂøÇÏÁö ¾Ê´Â´Ù¸é ½Ã½ºÅÛ ÀÚ¿øÀÌ Çã¿ëÇÏ´Â ÇÑ Äí۵éÀº ÃàÀûµÈ´Ù.

±×·¯³ª Ŭ¶óÀÌ¾ðÆ®°¡ Äí۸¦ ÀúÀåÇÒ ¼ö ÀÖ´Â ÇѰ谡 ÀÖÀ¸¹Ç·Î ¿À·¡µÈ Äí۸¦ Áö¿ö¾ß Çϴµ¥, À̶§ least-recently-used ¾Ë°í¸®ÁòÀ» »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.

¸¸¾à Set-Cookie Çì´õ¿¡ Comment¸¦ Æ÷ÇÔÇϰí ÀÖ´Ù¸é, Ŭ¶óÀÌ¾ðÆ®´Â ÀÌ Á¤º¸¸¦ »ç¶÷ÀÌ ÀÐÀ» ¼ö ÀÖ´Â Á¤º¸ÀÇ ÇüÅ·ΠÄíŰ¿Í ÇÔ²² ÀúÀåÇÏ¿©¾ß ÇÑ´Ù.

5.3.4 ¼­¹ö·ÎÀÇ ÄíŰ Àü´Þ

Ŭ¶óÀÌ¾ðÆ®°¡ Àü¼ÛÇÏ´Â ¿ä±¸ ¸Þ½ÃÁö¿¡ ´ëÇØ Àû¿ëÇÒ Äí۸¦ °®°í ÀÖÀ» ¶§ ¼­¹ö¿¡°Ô ÄíŰ ¿ä±¸ Çì´õ¸¦ ´ÙÀ½¿¡ µû¶ó¼­ º¸³¾ ¼ö°¡ ÀÖ´Ù.

¿©±â¼­ CookieÀÇ ±¸¼º Çü½ÄÀº ´ÙÀ½°ú °°´Ù.

cookie = "Cookie:" cookie-version 1*((";" | ",") cookie-value) cookie-value = NAME "=" VALUE [";" path] [";" domain] cookie-sersion = "$Version" "=" value NAME = attr attr = token VALUE = value value = word path = "$Path" "=" value domain = "$Domain" "=" value

6. Âü°íÀÚ·á

[1]
Roy Fielding, "Hypertext Transfer Protocol - HTTP/1.1", Internet Draft (Text / PostScript), IETF HTTP WG, August 1996.

[2]
John Franks and others, "An Extension to HTTP: Digest Access Authentication", Internet Draft, IETF HTTP WG, September 1996.

[3]
Koen Holtman and Andrew Mutz, "Transparent Content Negotiation in HTTP", Internet Draft, IETF HTTP WG, September 1996.

[4]
David M. Kristol and Lou Montulli, "HTTP State Management Mechanism", Internet Draft (Text / PostScript), IETF HTTP WG, July 1996.


Protocol Extension Protocol (PEP)
(Korean Version 1.0)

Abstract:
PEPÀ̶õ HTTP Ŭ¶óÀ̾ðÆ®, ¼­¹ö, ¹× ÇÁ¶ô½Ã¿¡°Ô HTTP ÇÁ·ÎÅäÄÝÀÇ »ç¿ëÀÚ µ¶ÀÚÀûÀÎ È®ÀåÀ» °¡´ÉÇÏ°Ô ÇØÁÖ´Â ½Ã½ºÅÛÀÌ´Ù. Áö±Ý±îÁö HTTP ÇÁ·Î±×·¥µéÀº Ãß°¡ÀûÀÎ Çì´õ Çʵ带 »ç¿ëÇØ¼­ µ¶ÀÚÀûÀÎ ±â´É¿¡ ´ëÇÑ È®ÀåµÈ HTTP ÇÁ·ÎÅäÄÝ µ¿ÀÛÀ» °¡´ÉÇÏ°Ô ÇÒ ¼ö ÀÖ¾ú´Ù. ±×·¯³ª ÀÌ·± ¹æ½ÄÀÇ È®Àå¿¡´Â µ¿ÀÛ ¹üÀ§³ª µ¿ÀÛ ¼ø¼­ µî¿¡ ´ëÇÑ Á¦ÇÑÀÌ Á¸ÀçÇϱ⠶§¹®¿¡ PEPÀ» ÀÌ¿ëÇÏ¿© ÇÁ·ÎÅäÄÝ µ¿ÀÛÀÇ È®ÀåÀÌ °¡´ÉÇÒ »Ó¸¸ ¾Æ´Ï¶ó È®ÀåµÈ µ¿ÀÛ¿¡ ´ëÇÑ Àû¿ë ¹üÀ§, µ¿ÀÛÀÇ °­µµ, µ¿ÀÛ ¼ø¼­ µîÀ» Ç¥ÇöÇÒ ¼ö ÀÖ°Ô ÇϰíÀÚ ÇÏ´Â °ÍÀÌ´Ù.[1]

Keywords:
HTTP, Protocol, Message, Header, Request, Response, Entity, Protocol-Request, Protocol-Info, Protocol-Query

Status:
ÀÌ ¹®¼­´Â http://www.w3.org/pub/WWW/TR/WD-http-pep-960820.html ¹®¼­¿¡ ´ëÇØ °³³äÀû ¿ä¾à Á¤¸®¸¦ ÇÑ °ÍÀ̸ç, º»¹®¿¡ µé¾îÀÖ´Â »ó´ç¼ö ³»¿ëÀÌ ºüÁøÃ¤ ÀÛ¼ºµÈ °ÍÀÌ´Ù. ³»¿ëÀ» ´ëÆø º¸¿ÏÇÑ »õ·Î¿î ¹®¼­´Â Korean Version 2.0¿¡¼­ Á¦°øµÉ ¿¹Á¤ÀÌ´Ù. º» ¹®¼­ÀÎ Korean Version 1.0ÀÌ À§Ä¡ÇÏ´Â °÷Àº http://pec.etri.re.kr/~qkim/HTTP/pepv1.html À̸ç, Korean Version 2.0ÀÌ À§Ä¡ÇÏ´Â °÷Àº http://pec.etri.re.kr/~qkim/HTTP/pepv2.html ÀÌ´Ù. WWW¿¡¼­ »ç¿ëÇÏ´Â °¢Á¾ ÇÁ·ÎÅäÄÝ¿¡ ´ëÇÑ ¹®¼­ Á¤¸®´Â http://pec.etri.re.kr/~qkim/HTTP/¿¡ Á¤¸®µÇ°í ÀÖÀ¸¸ç ¹®¼­ ³»¿ëÀÇ º¯°æ¿¡ ´ëÇÑ ¾Ë¸²±ÛÀÌ ÀÖ´Ù.

1. ¼­·Ð

HTTP ¸Þ½ÃÁö´Â Ãß°¡ÀûÀÎ Çì´õ Çʵ峪 ³»¿ë Çü½ÄÀÇ Ç¥ÇöÀ» ÅëÇØ È®ÀåÀÌ °¡´ÉÇÏ´Ù. Áö±Ý±îÁö ÀÌ·± ¹æ½ÄÀ¸·Î ÇÁ·ÎÅäÄÝ ±â´ÉÀÇ °³¼±ÀÌ ÀÌ·ç¾îÁ® ¿Ô±âµµ ÇÏ´Ù. ±×·¯³ª ÀÌ·¯ÇÑ ¹æ½ÄÀº, ÇÑ ½ÖÀÇ Å¬¶óÀÌ¾ðÆ®¿Í ¼­¹ö »çÀÌ¿¡¼­¸¸ ÀÌ·ç¾îÁú ¾î¶² ±â´É È®Àå¿¡¼­ ºÎÅÍ ÀüüÀûÀ¸·Î ¾²ÀÏ ¼ö ÀÖ´Â ±â´É È®Àå¿¡ À̸£±â±îÁö ´Ù¾çÇÑ ¿ä±¸¿Í Çʿ信 ÀÇÇØ ¸¸µé¾îÁú ¼ö ÀÖ´Â ±â´É È®Àå¿¡´Â ¾î·Á¿òÀÌ ÀÖ´Â ¹æ½ÄÀÌ´Ù. ÀÌ·¯ÇÑ HTTP ÇÁ·ÎÅäÄÝ¿¡ ´ëÇÑ ÀÓÀÇÀûÀÎ ±â´É È®ÀåÀ» À§Çؼ­´Â ´ÙÀ½°ú °°Àº ¹®Á¦Á¡µéÀÌ Á¸ÀçÇÑ´Ù.

Naming
´Ù¸¥ Ŭ¶óÀ̾ðÆ®/¼­¹ö¿ÍÀÇ »óÈ£ ¿¬µ¿¼ºÀ» º¸ÀåÇϱâ À§Çؼ­´Â Çì´õ À̸§, ÀÎÄÚµù Á¾·ù, ÀÀ´ä ÄÚµå µîÀ» ÀÓÀÇÀûÀ¸·Î ¼±Á¤ÇÒ ¼ö´Â ¾ø´Â ÀÏÀÌ´Ù. Ç×»ó ±¹Á¦ÀûÀÎ °øµ¿ ³ë·ÂÀÌ ¼ö¹ÝµÇ¾î¾ß ÇÒ ÀÏÀÌ´Ù.

Importance
¾î¶² È®Àå Çì´õ¸¦ ¹«½ÃÇßÀ» ¶§ À̸¦ ¾Ë¸± ¼ö ÀÖ´Â ¹æ¹ýÀÌ ¾ø´Ù. °æ°í ¸Þ½ÃÁö¸¦ º¸³¾ ¼öµµ ÀÖ°í, ¿À·ù ¸Þ½ÃÁö¸¦ º¸³¾ ¼öµµ Àִµ¥, ¾î¶»°Ô ÇÒ °ÍÀÎÁö?

Scoping
´©°¡ È®ÀåµÈ Çì´õ ±â´ÉÀ» »ç¿ëÇÒ °ÍÀÎÁö ¹üÀ§ ÁöÁ¤À» ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ ¾ø´Ù. ÇÁ¶ô½Ã°¡ ÇÒ °ÍÀÎÁö, Ŭ¶óÀÌ¾ðÆ® ¶Ç´Â ¼­¹ö°¡ ÇÒ °ÍÀÎÁö. Connection Çì´õ Çʵ尡 ºÎºÐÀûÀÎ ÇØ°áÃ¥ÀÌ µÉ ¼ö´Â ÀÖÀ¸³ª, Çì´õÀÇ Á߿䵵¸¦ Àü´ÞÇÒ ¹æ¹ýÀÌ ¾øÀ¸¹Ç·Î ±Ùº»ÀûÀÎ ÇØ°áÃ¥ÀÌ µÉ ¼ö´Â ¾ø´Ù.

Ordering
È®ÀåµÈ ±â´ÉµéÀÌ ÀÖÀ» ¶§ ¾î¶² ¼ø¼­·Î ¸ÕÀú ¼öÇà½ÃÄÑ¾ß ÇÒÁö ¾Ë¸± ¼ö ÀÖ´Â ¹æ¹ýÀÌ ¾ø´Ù. ÀüüÀûÀÎ ±â´É È®ÀåÀ» À§ÇØ °³°³ÀÇ È®Àå ±â´Éµé¿¡ ´ëÇÑ ¼öÇà ¼ø¼­ °áÁ¤Àº ¸Å¿ì Áß¿äÇÑ ¿ä¼ÒÀÏ ¼ö ÀÖ´Ù.

Initiation
¾î´À ±â´É¿¡ ´ëÇØ ÇÑ °÷¿¡¼­ ´Ù¸¥ °÷À¸·Î Áö·ÉÀ» ³»¸± ¼ö ÀÖ´Â ¹æ¹ýÀÌ ¾ø´Ù. È®ÀåµÈ ¾î´À ±â´É¿¡ ´ëÇØ ¾î¶² agent°¡ ´Ù¸¥ agent¿¡°Ô µ¿ÀÛÀ» ½ÃÀÛÇϰԲû ½ÃµµÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù.

Advertising
È®ÀåµÈ ±â´Éµé¿¡ ´ëÇÑ »ó¼¼ÇÑ °ü·Ã »çÇ×µéÀ» ¾Ë·ÁÁÙ ¼ö ÀÖ´Â ¹æ¹ýÀÌ ¾ø´Ù.

Inquiring
¾î¶² È®ÀåµÈ ±â´ÉÀÇ È°¿ëÀ» ¿äûÇϱ⿡ ¾Õ¼­ ÀÌ ±â´ÉÀÌ Áö¿øµÇ´ÂÁö¿¡ ´ëÇØ ¹°¾îº¼ ¼ö ÀÖ´Â ¼ö´ÜÀÌ ¾ø´Ù. À̰ÍÀº °ü·ÃµÈ È®Àå ±â´Éµé °¡¿îµ¥¼­ÀÇ ¼±Åÿ¡ ÀÖ¾î ¸Å¿ì Áß¿äÇÑ »çÇ×ÀÌ´Ù.

ÀÌ·¯ÇÑ ¹®Á¦Á¡µé¿¡ ´ëÇÑ ÇØ°áÃ¥À» Á¦½ÃÇϱâ À§ÇÑ ½Ãµµ·Î¼­ ¸î °³ÀÇ Çì´õ À̸§°ú content-typeÀ¸·Î¼­ PEP (Protocol Extension Protocol)ÀÇ °³³äÀ» Á¦¾ÈÇÏ°Ô µÇ¾ú´Ù. À̰ÍÀ» ÀÌ¿ëÇÔÀ¸·Î½á HTTP ÇÁ·Î±×·¥µéÀº ¾Ë·ÁÁø È®Àå ±â´ÉµéÀÌµç ¾Ë·ÁÁöÁö ¾ÊÀº È®Àå ±â´ÉµéÀ̵ç ÀûÀýÇÏ°Ô µ¿ÀÛÇÒ ¼ö ÀÖÀ¸¸ç, ¾çÂÊ¿¡ °¡´ÉÇÑ ÇÁ·ÎÅäÄÝ È®Àå ±â´ÉÀ» ¼±ÅÃÇÒ ¼ö ÀÖ°í, ƯÁ¤ÇÑ ¼öÇà ´É·Â¿¡ ´ëÇØ »ó´ë¹æ¿¡¼­ ¹°¾îº¼ ¼öµµ ÀÖ°Ô µÈ´Ù.

À̸¦ À§ÇØ ´ÙÀ½°ú °°Àº ³× °¡Áö Çì´õ Çʵ带 »ç¿ëÇÑ´Ù.

À§¿¡ ÀÖ´Â Protocol Çì´õ¸¦ ÀÌ¿ëÇÏ¿© È®Àå ±â´ÉÀÇ À̸§, Àû¿ë ¹üÀ§, Á߿䵵, ¶Ç´Â °ü·ÃÇÑ µ¥ÀÌŸ Çì´õµéÀ» ³ªÅ¸³¾ ¼ö ÀÖ°í, Protocol-Request Çì´õ Çʵ带 ÀÌ¿ëÇÏ¿© »ó´ë¹æ¿¡°Ô ƯÁ¤ È®Àå ±â´ÉÀ» »ç¿ëÇÏ°Ô ¿äûÇÒ ¼ö ÀÖÀ¸¸ç, Protocol-Query Çì´õ Çʵ带 ÀÌ¿ëÇÏ¿© »ó´ë¹æ¿¡°Ô ƯÁ¤ È®Àå ±â´ÉÀÌ Áö¿øµÇ´ÂÁö¿¡ ´ëÇØ ¹°¾îº¼ ¼ö ÀÖ°í, Protocol-Info Çì´õ Çʵ带 ÀÌ¿ëÇÏ¿© ¾î¶² »çÇ×µéÀÌ Áö¿øµÇ´ÂÁö¿¡ ´ëÇÑ Á¤º¸¸¦ ¾Ë·ÁÁÙ ¼ö ÀÖ°Ô µÈ´Ù.

2. PEP ¸ðµ¨

HTTP ÇÁ·ÎÅäÄÝÀÇ µ¿ÀÛÀº ´ÙÀ½ÀÇ ³× °¡Áö °úÁ¤¿¡ ÀÇÇØ ÀÌ·ç¾îÁø´Ù.

+------------+ Àü¼Û [Request] ¼ö½Å +------------+ | | -----------------------------> | | | Ŭ¶óÀÌ¾ðÆ® | | ¼­¹ö | | | <----------------------------- | | +------------+ ¼ö½Å [Response] Àü¼Û +------------+

  1. HTTP ¿ä±¸ ¸Þ½ÃÁöÀÇ Àü¼Û
  2. HTTP ¿ä±¸ ¸Þ½ÃÁöÀÇ ¼ö½Å
  3. HTTP ÀÀ´ä ¸Þ½ÃÁöÀÇ Àü¼Û
  4. HTTP ÀÀ´ä ¸Þ½ÃÁöÀÇ ¼ö½Å

ÀÌ·¯ÇÑ µ¿ÀÛ °úÁ¤ ¼Ó¿¡¼­ Ŭ¶óÀÌ¾ðÆ®³ª ¼­¹ö °¢°¢Àº ProtocolÀ̳ª Protocol-Request ¸Þ½ÃÁö¸¦ Àü´ÞÇϰí, Protocol-Info·Î¼­ °ü·Ã Á¤º¸¸¦ ÀÀ´äÀ¸·Î º¸³»°í, Protocol-Query¸¦ ÅëÇØ »ó´ë¹æ¿¡°Ô ¹°¾îº¸´Â µ¿ÀÛÀ» ÃëÇϱ⵵ ÇÑ´Ù.

ÀÌ·¯ÇÑ ÇÁ·ÎÅäÄÝ È®Àå µ¿ÀÛÀº ¾î¶² ¼­¹ö³ª ¾î¶² ¿¬°á¿¡ ´ëÇØ Àû¿ëµÇ´Â °ÍÀÌ ¾Æ´Ï¶ó ¾î¶² ÀÚ¿ø¿¡ ´ëÇØ Àû¿ëµÇ´Â °ÍÀÌ´Ù. Áï, HTTP ¸Þ½ÃÁöÀÇ Request-URI¿¡ ¸í½ÃµÇ¾î ÀÖ´Â ÀÚ¿ø¿¡ ´ëÇØ Àû¿ëÇÏ´Â »çÇ×ÀÌ´Ù. À̶§ È®Àå ±â´É¿¡ ´ëÇÑ ÆÄ¶ó¹ÌÅÍ Çù»ó µ¿ÀÛµµ °¡´ÉÇÏ´Ù.

3. PEPÀÇ »ç¿ë¹ý

3.1 PEP È®Àå Çì´õÀÇ Ç¥Çö½Ä

PEP ÇÁ·ÎÅäÄÝÀÇ µ¿ÀÛ¿¡ ¹Ýµå½Ã µé¾î°¡¾ß ÇÏ´Â Çì´õ´Â Protocol°ú Protocol-Request µÎ °¡ÁöÀ̸ç, ¼±ÅÃÀûÀ¸·Î »ç¿ë °¡´ÉÇÑ °ÍÀÌ Protocol-Query¿Í Protocol-Info µÎ °¡ÁöÀ̰í, ³× °¡Áö ¸ðµÎ General Çì´õ¿¡ µé¾î°¡´Â ÇʵåµéÀÌ´Ù. °¢°¢ÀÇ Ç¥Çö½ÄÀº ¾Æ·¡¿Í °°´Ù.

Protocol = "Protocol" ":" 1#bag Protocol-Request = "Protocol-Request" ":" 1#bag Protocol-Query = "Protocol-Query" ":" 1#bag Protocol-Info = "Protocol-Info" ":" 1#bag bag = "{" bagname 1*LWS *bagitem "}" bagname = token | URI bagitem = bag | token | quoted-string word = token | quoted-string token = 1*<any CHAR except CTLs or tspecials> tspecials = "(" | ")" | "<" | ">" | "@" | "," | ";" | ":" | "\" | <"> | "/" | "[" | "]" | "?" | "=" | "{" | "}" | SP | HT quoted-string = (<"> *(qdtext) <">) qdtext = <any CHAR except <"> and CTLs but inclung LWS>

¿©±â¼­ bagÀº ¾Æ·¡¿Í °°Àº ¸î °¡Áö º¯¼öµéÀ» °¡Áø´Ù.

{<protocol-identifier>    {scope 
(origin | conn)}  
                        {str (opt | req | ref)} 
                        {headers *<token>}
                        {params ...} 
                        {for *<uri>}
                        {via <protocol-identifier>}}

protocol-identifier
¾Ë·ÁÁ® ÀÖ´Â ÇÁ·ÎÅäÄÝ È®Àå URI ¶Ç´Â IANA µî·Ï ÅäÅ«

scope
scope´Â conn ¶Ç´Â origin µÑ ÁßÀÇ ÇϳªÀε¥, originÀÌ ±âº» ¼³Á¤µÈ´Ù. À̰ÍÀº ¾î´À agent°¡ ÀÌ Çì´õ¸¦ ó¸®ÇØ¾ß ÇÒ °ÍÀÎÁö ÁöÁ¤ÇÑ´Ù. connÀ̶ó¸é Áß°£ÀÇ ¼ö½ÅÃøÀÌ ´ã´çÇÏ°Ô µÇ°Ô, originÀ̶ó¸é Ŭ¶óÀÌ¾ðÆ® ¶Ç´Â ÃÖÁ¾ ¼­¹ö°¡ ´ã´çÇÑ´Ù.

str
strength´Â req, ref, ±×¸®°í opt ÀÌ ¼¼ °¡Áö °¡¿îµ¥ ÇϳªÀ̸ç, opt°¡ ±âº» ¼³Á¤µÈ´Ù. Protocol Çì´õ´Â req¿Í opt¸¸ Çã¿ëÇϰí, Protocol-Request¿Í Protocol-Info Çì´õ´Â ¼¼ °¡Áö ¸ðµÎ Çã¿ëÇϸç, Protocol-Query Çì´õ´Â opt¸¸ Çã¿ëÇÑ´Ù.

headers
°ü·ÃµÈ ¸Þ½ÃÁö Çì´õÀÇ ¸ñ·ÏÀ» ³ª¿­Çϸç, ±âº» ¼³Á¤Àº ¾Æ¹« °Íµµ ¾ø´Â °ÍÀÌ´Ù. ¸¸¾à ¾î´À Çì´õ ÅäÅ«ÀÌ '*'·Î ³¡³ª¸é À̰Ͱú ÀÏÄ¡µÇ´Â ¸ðµç ¸Þ½ÃÁö¿¡ Çì´õ¿¡ ´ëÇØ Àû¿ëµÇ¾î¾ß ÇÑ´Ù. À̶§ ownershipÀÌ ¾Ö¸ÅÇÏ°Ô µÇÁö ¾Êµµ·Ï Çϱâ À§ÇØ °¢ È®Àå Çì´õµéÀº ÀڽŰú °ü·ÃµÈ ¸ðµç Çì´õµéÀ» ³ª¿­ÇÏ¿©¾ß ÇÑ´Ù.

params
ÇÁ·ÎÅäÄÝ ±Ô°Ý¿¡ µû¶ó È®Àå ±â´É¿¡ ´ëÇØ ¼³Á¤ÇÏ´Â ÆÄ¶ó¹ÌÅ͵éÀÌ ³ª¿­µÈ´Ù. ±âº» ¼³Á¤µÇ´Â °ÍÀº ¾Æ¹« °Íµµ ¾ø´Â °ÍÀÌ´Ù.

for
Protocol-Request°¡ Á¢ÃËÇÏ´Â relative URIs ¶Ç´Â absolute URIsÀÌ ¸ñ·ÏÀÌ µé¾î°£´Ù. for¿¡ ¾Æ¹« °Íµµ ¾øÀ» ¶§¿¡ ±âº»ÀûÀ¸·Î Á¢ÃËÇÏ°Ô (binding on) µÇ´Â ´ë»óÀº request-URI ¶Ç´Â Content-Location ÀÀ´ä Çì´õÀÌ´Ù.

via
Protocol-Query ¶Ç´Â Protocol-Request¿Í °°Àº È®Àå¿¡ ´ëÇØ ÀÀ´äÇÒ ¶§ agent´Â via¸¦ ÀÌ¿ëÇÏ¿© ¶Ç ´Ù¸¥ È®ÀåÀ» ½ÃµµÇÒ ¼ö ÀÖ´Ù. À̶§ÀÇ È®ÀåÀº °°Àº ¸Þ½ÃÁö ³»ÀÇ ´Ù¸¥ ºÎºÐ¿¡¼­ »ç¿ëµÉ ¼ö ÀÖ´Ù. À̰ÍÀº Protocol°ú Protocol-Info Çì´õ¿¡¸¸ Çã¿ëµÇ´Â °ÍÀÌ´Ù.

3.2 PEP ÇÁ·ÎÅäÄÝÀÇ Çù»ó ³»¿ë ¿¹

ÀÌ»ó°ú °°Àº °ÍÀ» ÅëÇØ PEPÀ» ÀÌ¿ëÇÏ¿© ´ÙÀ½°ú °°Àº Çù»ó ³»¿ëÀ» Àü´ÞÇÒ ¼ö ÀÖ´Ù.

3.3 Protocol-Query

ÀÌ¿Í °°Àº Çù»ó ¶Ç´Â ÁÖ°í ¹Þ´Â ¸Þ½ÃÁöÀÇ °úÁ¤¿¡¼­ ù ¹øÂ°·Î ÀϾ ¼ö ÀÖ´Â °ÍÀº »ó´ë¹æÀÌ ÀÏ´Ü ¾î¶² È®Àå ±â´ÉÀ» Á¦°øÇÏ´ÂÁö ¾Ê´ÂÁö ¹°¾îº¸´Â ÀÏÀÏ °ÍÀÌ´Ù. Protocol-Query Çì´õ Çʵå´Â ¾î´À ÇÑ ÂÊÀÌ ´Ù¸¥ ÇÑ ÂÊ¿¡°Ô ¾î´À ƯÁ¤ ÇÁ·ÎÅäÄÝ È®ÀåÀ» Áö¿øÇÏ´ÂÁö ¹°¾îº¼ ¼ö ÀÖ°Ô Çϰí, ÀÌ¿¡ ´ëÇÑ ÀÀ´äÀº Protocol-Info ÀÀ´ä Çì´õ Çʵå·Î µ¹¾Æ¿À°Ô µÈ´Ù.

query Çì´õ´Â opt·Î ±âº» ¼³Á¤µÇ´Â Àû¿ë ¹üÀ§¸¸ ¸í½ÃÇϵµ·Ï ÇÑ´Ù. ¿Ö³ÄÇϸé query´Â Ç×»ó ´õ ÀÌ»óÀÇ Á¤º¸¸¦ ¼±ÅÃÀûÀ¸·Î ¿äûÇϱâ À§ÇØ ¹°¾îº¸±â ¶§¹®ÀÌ´Ù. ÇÏÁö¸¸, query¸¦ Áö¿øÇÏ´Â °ÍÀº ¼±ÅÃÀûÀÎ °ÍÀ̱⠶§¹®¿¡ ´äÀ» ¿ä±¸ÇÒ ¼öµµ ¾ø°í °ÅÀýÇÒ ¼öµµ ¾ø´Ù.

3.3.1 Ŭ¶óÀ̾ðÆ®: HTTP ¿ä±¸ ¸Þ½ÃÁöÀÇ Àü¼Û

¸¸¾à Ŭ¶óÀÌ¾ðÆ®°¡ ¾î´À ÇÁ·ÎÅäÄÝ È®ÀåÀÌ Æ¯Á¤ URI ÀÚ¿ø¿¡ ´ëÇØ Áö¿øµÉ °ÍÀ̶ó°í »ý°¢ÇÑ´Ù¸é, ÇØ´ç URI¿¡ ´ëÇØ¼­ (for ¸ñ·Ï¿¡ ¾Æ¹« °Íµµ ¾øÀ½) ¶Ç´Â ¼­¹ö Àüü¿¡ ´ëÇØ¼­ ({for /*}) È®Àå ±â´ÉÀÌ Áö¿øµÇ´ÂÁö È®ÀÎÇϱâ À§ÇØ Protocol-Query Çì´õ¸¦ ¿ä±¸ ¸Þ½ÃÁö¿¡ Æ÷ÇÔ½ÃÄѼ­ º¸³½´Ù.

À̶§ Ŭ¶óÀÌ¾ðÆ®´Â ´Ù¸¥ HTTP ¸Þ½ÃÁö¿¡ Protocol-Query Çì´õ¸¦ ÷ºÎÇÏ¿© º¸³»±â À§ÇØ Àá½Ã ±â´Ù¸± ¼öµµ ÀÖ°í, query Çì´õ Çʵ带 OPTIONS method¸¦ °¡Áø ¿ä±¸ ¸Þ½ÃÁö¿¡ Æ÷ÇÔ½ÃÄѼ­ º¸³¾ ¼öµµ ÀÖ´Ù.

3.3.2 ¼­¹ö: HTTP ¿ä±¸ ¸Þ½ÃÁöÀÇ ¼ö½Å

query¸¦ ¼ö½ÅÇÏ´Â Áï½Ã agent´Â È®Àå ±â´ÉÀÌ Áö¿øµÇ´ÂÁö È®ÀÎÀ» Çϰí, ÁöÁ¤µÇ¾î ÀÖ´Â ¼³Á¤ »çÇ×µéÀÌ ÇØ´ç URI¿¡ ¸ðµÎ¿¡ ´ëÇØ ¼ö¿ëÇÒ ¼ö ÀÖ´ÂÁö °ÅÀýÇØ¾ß ÇÒ °ÍÀÎÁö¿¡ ´ëÇÑ ÀÀ´äÀ» º¸³»¾î¾ß Çϴµ¥, ÃÖÁ¾ °á°ú¸¦ ÀÀ´äÀ¸·Î º¸³»±â À§ÇØ ÁغñÇÑ´Ù.

3.3.3 ¼­¹ö: HTTP ÀÀ´ä ¸Þ½ÃÁöÀÇ Àü¼Û

¼­¹ö´Â ÀÀ´ä ¸Þ½ÃÁö¸¦ º¸³¾ »Ó¸¸ ¾Æ´Ï¶ó ÀÀ´ä¿¡ À־ÀÇ ÀÚ½ÅÀÇ Áú¹®(queries)µµ ÇÔ²² º¸³¾ ¼ö ÀÖ´Ù.

3.3.4 Ŭ¶óÀ̾ðÆ®: HTTP ÀÀ´ä ¸Þ½ÃÁöÀÇ ¼ö½Å

Ŭ¶óÀÌ¾ðÆ®¿¡°Ô Àü´ÞµÇ´Â ÀÀ´äÀº Protocol-Info Çì´õÀÇ ÇüÅ·ΠµÇ¾î ÀÖ´Ù. ¼­¹ö°¡ ÀÚ½ÅÀÇ queries¸¦ Æ÷ÇÔ½ÃÄ×À» ¼öµµ ÀÖÀ¸¹Ç·Î Ŭ¶óÀÌ¾ðÆ®´Â °á°ú¸¦ º¸³»ÁÖ¾î¾ß Çϸç, queryÀÇ Àû¿ë ¹üÀ§¿Í ÀÏÄ¡ÇÏ´Â URI¿¡ ´ëÇØ ¸¸µç HTTP ¿ä±¸ ¸Þ½ÃÁö ¼Ó¿¡ Æ÷ÇÔ½ÃÄÑ º¸³½´Ù. ÀÌ·¯ÇÑ µ¿ÀÛÀ» ÅëÇØ ºÎ¼öÀûÀÎ È¿°ú·Î¼­ Ŭ¶óÀÌ¾ðÆ®´Â ¼­¹ö¿¡°Ô call backÀ» °¡´ÉÇÏ°Ô ÇÒ ¼öµµ ÀÖ´Ù.

3.4 Protocol-Info

Çù»ó °úÁ¤¿¡ À־ÀÇ µÎ ¹øÂ° ´Ü°è·Î¼­ ÇÑ ÂÊÀº ÁÖ¾îÁø È®Àå ÇÁ·ÎÅäÄÝ¿¡ ´ëÇØ ÀϹæÀûÀÎ °ÍÀÌµç ¾Õ¼­ query¿¡ ´ëÇÑ ÀÀ´äÀ̵ç {¿ä±¸ÇÑ´Ù | Çã¿ëÇÑ´Ù | ±ÝÁöÇÑ´Ù}´Â °ÍÀ» ¹àÈú ¼ö ÀÖ´Ù. Protocol-Info Çì´õ´Â ¾î´À agent°¡ ´Ù¸¥ agent¿¡°Ô ƯÁ¤ È®Àå ÇÁ·ÎÅäÄÝÀÌ Áö¿øµÇ´ÂÁö ¾È µÇ´ÂÁö ¾Ë·ÁÁÙ ¼ö ÀÖ°Ô ÇÑ´Ù. Protocol-Info´Â Protocol-Query¿¡ ´ëÇØ ¹Ýµå½Ã ¼ö¹ÝµÇ´Â Çì´õ ÇʵåÀÌ´Ù. À̸¦ ÅëÇØ ÀÏÄ¡µÇ´Â ¸ðµç URIµé¿¡ ´ëÇØ ÇØ´ç ÇÁ·ÎÅäÄÝÀÌ ÇÊ¿äÇÑÁö Çã¿ëµÇ´ÂÁö ±ÝÁöµÇ¾î ÀÖ´ÂÁö ¾Ë·ÁÁÙ ¼ö ÀÖ´Ù.

3.4.1 Ŭ¶óÀ̾ðÆ®: HTTP ¿ä±¸ ¸Þ½ÃÁöÀÇ Àü¼Û

À̰ÍÀº Ŭ¶óÀÌ¾ðÆ®°¡ Protocol-Info¸¦ º¸³»´Â »óȲÀÌ´Ù.

Ŭ¶óÀÌ¾ðÆ®´Â ¾Õ¼­ ¼­¹öÀÇ query ¿ä±¸¿¡ ´ëÇØ Protocol-Info¸¦ º¸³¾ ¼ö ÀÖ°í, ¶Ç´Â ¾Ë¸®°íÀÚ ÇÏ´Â »çÇ×À» ÀϹæÀûÀ¸·Î ½Ç¾î¼­ º¸³¾ ¼öµµ ÀÖ´Ù.

3.4.2 ¼­¹ö: HTTP ¿ä±¸ ¸Þ½ÃÁöÀÇ ¼ö½Å

À̰ÍÀº Protocol-Info Çì´õ¸¦ °¡Áø ¿ä±¸ ¸Þ½ÃÁö¸¦ ¼­¹ö°¡ ¼ö½ÅÇÑ »óȲÀÌ´Ù.

¼­¹ö´Â µµÂøÇÑ Protocol-Info·ÎºÎÅÍ Å¬¶óÀ̾ðÆ®ÀÇ ¼öÇà ´É·Â°ú °°Àº ÀûÀýÇÑ Á¤º¸µéÀ» È®º¸ÇØ µÎ¾î¾ß ÇÑ´Ù. ÀÌ Á¤º¸´Â 3.5.3Àý°ú 3.6.3Àý¿¡¼­ Áß¿äÇÏ°Ô È°¿ëµÈ´Ù.

3.4.3 ¼­¹ö: HTTP ÀÀ´ä ¸Þ½ÃÁöÀÇ Àü¼Û

Ŭ¶óÀÌ¾ðÆ®°¡ ¾Õ¼­ÀÇ ¿ä±¸ ¸Þ½ÃÁö¿¡¼­ ¿äûÇß´Ù¸é ¼­¹ö´Â Protocol-Info Çì´õ Çʵ带 Æ÷ÇÔ½ÃÄÑ ÀÀ´äÇÏ¿©¾ß Çϰí, ¶Ç´Â ¼­¹ö°¡ ÀϹæÀûÀ¸·Î Á¤º¸¸¦ ¾Ë¸± ¼öµµ ÀÖ´Ù.

3.4.4 Ŭ¶óÀ̾ðÆ®: HTTP ÀÀ´ä ¸Þ½ÃÁöÀÇ ¼ö½Å

Ŭ¶óÀÌ¾ðÆ®´Â ¼­¹öÀÇ ¼öÇà ´É·Â°ú °°Àº ÀûÀýÇÑ Á¤º¸µéÀ» È®º¸ÇØ µÎ¾î¾ß ÇÑ´Ù. ÀÌ Á¤º¸´Â 3.5.1Àý°ú 3.6.1Àý¿¡¼­ Áß¿äÇÏ°Ô ¾²ÀδÙ.

3.5 Protocol-Request

Çù»ó °úÁ¤¿¡ À־ÀÇ ¼¼ ¹øÂ° ´Ü°è·Î¼­ »ó´ë¹æ¿¡°Ô ¾î¶² È®Àå ÇÁ·ÎÅäÄÝÀÇ »ç¿ëÀ» ½ÃÀÛÇϵµ·Ï Á÷Á¢ÀûÀ¸·Î ½Ãų ¼öµµ ÀÖ°í ±ÝÁö½Ã۰Եµ ÇÒ ¼ö ÀÖ´Ù. Protocol-RequestÀº ¾î´À agent°¡ ´Ù¸¥ agent¿¡°Ô ƯÁ¤ È®Àå ±â´ÉÀ» ½ÃÀÛÇÏ°Ô ¸¸µé ¼ö ÀÖµµ·Ï Çϰí, ±× ÀÀ´äÀ¸·Î Protocol ¹Þ¾Æ¾ß ÇÑ´Ù.

3.5.1 Ŭ¶óÀ̾ðÆ®: HTTP ¿ä±¸ ¸Þ½ÃÁöÀÇ Àü¼Û

Ŭ¶óÀÌ¾ðÆ®°¡ ¼­¹ö¿¡°Ô ¾î´À ƯÁ¤ È®Àå ±â´ÉÀ» ½ÃÀÛÇÏ°Ô ÇϰíÀÚ ÇÑ´Ù¸é ÇØ´ç È®Àå ±â´ÉÀÌ µ¿ÀÛÇÒ °ÍÀÎÁö °Ë»çÇϱâ À§ÇØ ÀúÀåµÇ¾î ÀÖ´Â Protocol-Info Á¤º¸¸¦ »ìÆìº»´Ù. Protocol-Request´Â ¿øÇÏ´Â ÇÁ·ÎÅäÄÝÀ» ¸í½ÃÇϱâ À§ÇØ »ç¿ëµÇ´Â °ÍÀÌ¸ç ¼ö½ÅÃøÀÌ ¼±ÅÃÇÒ ¼ö ÀÖ°Ô²û ÆÄ¶ó¹ÌÅÍ °ªÀÇ ¹üÀ§¸¦ Àü´ÞÇÑ´Ù.

3.5.2 ¼­¹ö: HTTP ¿ä±¸ ¸Þ½ÃÁöÀÇ ¼ö½Å

¼­¹ö´Â ¼ö½ÅÇÑ È®Àå ÇÁ·ÎÅäÄÝ ¿ä±¸°¡ ÀûÀýÇÑÁö °Ë»ç¸¦ ÇØ¾ß ÇÑ´Ù. ¸¸¾à ¼º°øÀûÀ̶ó¸é ¼­¹ö´Â ¸í½ÃµÈ È®Àå ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇϱ⠽ÃÀÛÇØ¾ß ÇÑ´Ù. ¸¸¾à ½ÇÆÐ¶ó¸é Protocol-Request Çì´õ¿¡ {str ref}¸¦ ½Ç¾î¼­ Ŭ¶óÀÌ¾ðÆ®¿¡°Ô º¸³½´Ù. óÀ½¿¡ ¼ö½ÅÇß´ø request Çì´õ°¡ {str req} ÆÄ¶ó¹ÌÅ͸¦ °®°í ÀÖ¾ú´Ù¸é ÇØ´ç request µ¿ÀÛÀÌ ½ÇÆÐÇßÀ½À» ³ªÅ¸³½´Ù.

3.5.3 ¼­¹ö: HTTP ÀÀ´ä ¸Þ½ÃÁöÀÇ Àü¼Û

¼­¹ö´Â ¸í½ÃµÈ ÇÁ·ÎÅäÄÝÀÇ »ç¿ëÀ» ½ÃÀÛÇϵçÁö ±ÝÁöÇϵçÁö ÇÔÀ¸·Î½á È®Àå ÇÁ·ÎÅäÄÝ¿¡ ´ëÇÑ ¿ä±¸/¼ö¿ë/±ÝÁö µîÀÇ ÀÀ´äÀ» º¸³»¾î¾ß ÇÑ´Ù. ÀÌ¿¡ µû¶ó ¼­¹ö´Â Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ¾î´À URI¿¡ Á¢±ÙÇÒ ¶§ È®Àå ÇÁ·ÎÅäÄÝÀ» ½ÃÇàÇϵµ·Ï ÀÚ½ÅÀÇ ¿ä±¸ ¸Þ½ÃÁö¸¦ º¸³¾ ¼ö ÀÖ´Ù.

3.5.4 Ŭ¶óÀ̾ðÆ®: HTTP ÀÀ´ä ¸Þ½ÃÁöÀÇ ¼ö½Å

Ŭ¶óÀÌ¾ðÆ®´Â ¼­¹öÀÇ °¢ Protocol-Request¸¦ Á¡°ËÇØ º¸¾Æ¾ß Çϴµ¥, ¸¸¾à À¯È¿ÇÑ °ÍÀ̶ó ÆÇ´ÜµÇ¸é ¼­¹ö Protocol-Request for ¸ñ·Ï°ú ÀÏÄ¡ÇÏ´Â ¸ðµç URI¿¡ Á¢±ÙÇÒ ¶§ ¸í½ÃµÈ È®Àå ÇÁ·ÎÅäÄÝÀ» »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÁغñÇÏ¿©¾ß ÇÑ´Ù.

3.6 Protocol

Çù»ó °úÁ¤¿¡ ÀÖ¾î ¸¶Áö¸· ÀýÂ÷·Î¼­ ¾î¶² È®Àå ÇÁ·ÎÅäÄÝÀÌ °ð¹Ù·Î »ç¿ëµÉ ¼ö ÀÖ´Ù. ProtocolÀº ¾î´À agent¿¡°Ô ƯÁ¤ È®Àå ÇÁ·ÎÅäÄÝÀÌ ÇöÀçÀÇ ¸Þ½ÃÁö¿¡ ¾²À̰í ÀÖ´ÂÁö ¾Ë·ÁÁÙ ¼ö ÀÖ´Â ¼ö´ÜÀ» Á¦°øÇÑ´Ù. ÀÀ´ä ¸Þ½ÃÁö¿¡¼­´Â ÀÌ È®ÀåÀ» °è¼Ó »ç¿ëÇÒ ¼ö ÀÖ´Ù.

3.6.1 Ŭ¶óÀ̾ðÆ®: HTTP ¿ä±¸ ¸Þ½ÃÁöÀÇ ¼Û½Å

Ŭ¶óÀÌ¾ðÆ®¿¡¼­´Â ÇöÀçÀÇ ¿ä±¸ ¸Þ½ÃÁö¿¡ ´ëÇØ ¾î´À È®Àå ÇÁ·ÎÅäÄÝÀ» Àû¿ëÇØ¾ß ÇÒÁö °áÁ¤ÇÏ¿©¾ß ÇÑ´Ù. Àû¿ëÇÒ ¼ö ÀÖ´Â °¢°¢¿¡ ´ëÇØ º°µµÀÇ Protocol-Request·Î ÀÀ´äÇÏ¿©¾ß Çϰí, À̷νá Ŭ¶óÀÌ¾ðÆ®´Â ¼­¹ö°¡ ÇØ´ç request-URI¿¡ ÀÌ¹Ì »ç¿ëÇϰí ÀÖ´Â È®Àå ÇÁ·ÎÅäÄÝÀ» °è¼Ó »ç¿ëÇÒ ¼ö Àְųª, ¶Ç´Â ´Ù¸¥ È®Àå ÇÁ·ÎÅäÄÝµé ½ÃÀÛÇÒ ¼ö ÀÖ°Ô ÇÒ ¼ö ÀÖ´Ù. °¢ È®Àå ÇÁ·ÎÅäÄÝÀÌ Àû¿ëµÇ±â ¶§¹®¿¡ Ãß°¡µÈ Çì´õµéÀº Protocol ·ÎºÎÅÍ ¼ø¼­´ë·Î Ȱ¿ëµÉ ¼ö ÀÖ°Ô µÈ´Ù.

3.6.2 ¼­¹ö: HTTP ¿ä±¸ ¸Þ½ÃÁöÀÇ ¼ö½Å

¼­¹ö´Â °¢ È®Àå ÇÁ·ÎÅäÄÝ¿¡ ´ëÇØ Protocol Çì´õ¿¡ ³ª¿­µÇ¾î ÀÖ´Â ¼ø¼­¿¡ µû¶ó¼­ Á¡°ËÇØ º¸¾Æ¾ß ÇÑ´Ù. ¼­¹ö°¡ °¢ ÇÁ·ÎÅäÄÝÀ» Á¡°ËÇϱ⠶§¹®¿¡ ¼­¹ö´Â Àá½Ã Áß´ÜÇÏ¿© HTTP ¿À·ù »óÅ Äڵ带 º¸³¾ ¼öµµ ÀÖ´Ù.

3.6.3 ¼­¹ö: HTTP ÀÀ´ä ¸Þ½ÃÁöÀÇ ¼Û½Å

¼­¹ö´Â Ŭ¶óÀÌ¾ðÆ®°¡ ¿äûÇÑ ÇÁ·ÎÅäÄÝµé °¡¿îµ¥ ÀûÀýÇÑ °ÍÀº ¼±ÅÃÇÏ¿©¾ß ÇÑ´Ù. ¹®Á¦°¡ »ý±â¸é ¿À·ù »óÅ Äڵ带 º¸³½´Ù.

3.6.4 Ŭ¶óÀ̾ðÆ®: HTTP ÀÀ´ä ¸Þ½ÃÁöÀÇ ¼ö½Å

Ŭ¶óÀÌ¾ðÆ®´Â °¢ ÇÁ·ÎÅäÄÝ¿¡ ´ëÇØ Protocol Çì´õ¿¡ ³ª¿­µÇ¾î ÀÖ´Â ¼ø¼­¿¡ µû¶ó¼­ Á¡°ËÇØ º¸¾Æ¾ß ÇÑ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â °¢ È®Àå ÇÁ·ÎÅäÄÝÀ» Á¡°ËÇϱ⠶§¹®¿¡ ¿©·¯°¡Áö ÀÌÀ¯·Î ÇØ¼­ ½ÇÆÐÇÒ ¼öµµ ÀÖ´Ù. À̶§ º¹±¸ ¹æ¹ýÀÇ Çϳª·Î¼­ ±ÝÁöÇÏ´Â È®Àå ÇÁ·ÎÅäÄÝÀ» Protocol-Request Çì´õ¿¡ ½Ç¾î¼­ º¸³¾ ¼ö ÀÖ´Ù. È®Àå ÇÁ·ÎÅäÄÝÀ» ÅëÇØ »ý±â´Â ¿À·ù¸¦ »ç¿ëÀÚ¿¡°Ô ¾Ë·ÁÁְųª log·Î¼­ ÀúÀåÇØ¾ß ÇÑ´Ù.

4. Âü°íÀÚ·á

[1]
Rohit Khare, "HTTP/1.2 Extension Protocol (PEP)", W3C Working Draft 20-Aug-96, W3 Consortium/MIT, August 1996.


HTTP Next Generation

Abstract:
HTTP´Â HyperText Transfer ProtocolÀÇ ¾àÀÚÀ̸ç WWW¿¡¼­ÀÇ ÇÏÀÌÆÛÅØ½ºÆ® ¹®¼­ÀÇ Àü¼ÛÀ» À§ÇØ ¾²ÀÌ´Â ÇÁ·ÎÅäÄÝÀ̶õ ¶æÀÌ´Ù. ±×·¯³ª ±Û¶æ¿¡¼­ º¸ÀÌ´Â HyperText ¹®¼­¸¸ÀÌ ¾Æ´Ï¶ó À½¼º, È­»ó, µ¥ÀÌŸ µî°ú °°ÀÌ MIME¿¡ ÀÇÇØ Á¤ÀǵǴ ¸ðµç ¹®¼­ Çü½ÄÀ» Àü¼ÛÇÒ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ °¡´É¼ºÀº ±×¸¸Å­ »ç¿ëÀÚÀÇ º¹Àâ ´Ù¾çÇÑ ¿ä±¸¸¦ ¼ö¿ëÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù´Â ¶æÀ» ÇÔÃàÇϰí ÀÖÀ¸¸ç, ÀÎÅͳݿ¡ Á¸ÀçÇÏ´Â °¢Á¾ ¼­ºñ½ºµéÀ» Çϳª·Î ÅëÇÕÇÏ¿© ¼­ºñ½ºÇÒ ¼ö ÀÖ´Ù´Â ¶æµµ °®°í ÀÖ´Ù. ÀÌ¿¡ µû¶ó HTTP ÇÁ·ÎÅäÄÝÀº ÇöÀç HTTP/1.0ÀÇ Á¦ÇÑÀû ¼­ºñ½º ¿µ¿ªÀ» ³Ñ¾î º¸´Ù È®ÀåµÇ°í ´Ù¾çÇÑ »ç¿ëÀÚÀÇ ¿ä±¸¸¦ ÃæÁ·½Ãų ¼ö ÀÖµµ·Ï °³¹ßµÇ°í ÀÖ´Ù. HTTP Next Generation¿¡¼­´Â ÇÁ·ÎÅäÄÝÀÇ °³¹ß µ¿ÇâÀ» »ìÆìº¸°íÀÚ Çϸç, À̸¦ ÅëÇØ ¾ÕÀ¸·Î °¡´ÉÇÏ°Ô µÉ ÀÎÅͳÝÀÇ Á¾ÇÕÀû ¼­ºñ½º µµ±¸·Î¼­ÀÇ WWWÀ» Àü¸ÁÇØº¸°íÀÚ ÇÑ´Ù.

Keywords:
HTTP, Session, TCP, Connection, Authentication, Charging

Status:
ÀÌ ¹®¼­´Â HTTP-NG °ü·Ã ¹®¼­ÀÇ ³»¿ëÀ» ¿ä¾à Á¤¸®ÇÑ °ÍÀ̸ç, ÇØ´ç ¹®¼­µéÀº ¹ØÀÇ Âü°í ¹®Çå¿¡ Á¤¸®µÇ¾î ÀÖ´Ù. ÀÌ ¹®¼­ÀÇ ³»¿ëÀ» ´ëÆø º¸¿ÏÇÑ »õ·Î¿î ¹®¼­ÀÇ ÀÛ¼º °èȹÀº ¾øÀ¸¸ç, ¸¸¾à º¸¿ÏÇÏ¿© »õ·Ó°Ô ÀÛ¼ºÇÏ°Ô µÈ´Ù¸é ¾Æ·¡ÀÇ Àå¼Ò¿¡ °øÁöµÉ °ÍÀ̹ǷΠÂüÁ¶Çϱ⠹ٶõ´Ù. WWW¿¡¼­ »ç¿ëÇÏ´Â °¢Á¾ ÇÁ·ÎÅäÄÝ¿¡ ´ëÇÑ ¹®¼­ Á¤¸®´Â http://pec.etri.re.kr/~qkim/HTTP/¿¡ Á¤¸®µÇ°í ÀÖÀ¸¸ç ¹®¼­ ³»¿ëÀÇ º¯°æ¿¡ ´ëÇÑ ¾Ë¸²±ÛÀÌ ÀÖ´Ù. (1995. 11. 2. Kim, Yong-Woon)

1. ¼­·Ð

1.1 HTTP ÇÁ·ÎÅäÄÝÀÇ µ¿ÀÛ

½ÇÁ¦ÀûÀÎ Á¤º¸½Ã½ºÅÛ¿¡¼­´Â °Ë»ö, Á¤º¸ °»½Å, ¹× ÁÖ¼® µî°ú °°Àº °£´ÜÇÑ ÀÛ¾÷º¸´Ù´Â º¸´Ù ´Ù¾çÇÑ ±â´ÉÀ» ÇÊ¿ä·Î Çϰí ÀÖ´Ù. ¶ÇÇÑ ºÐ»ê ȯ°æ, °øµ¿ÀÛ¾÷ ȯ°æ, ÇÏÀÌÆÛ¹Ìµð¾î Á¤º¸½Ã½ºÅÛ µîÀÇ »óȲ¿¡¼­ ÇÊ¿ä·Î ÇÏ´Â ¼Óµµ¿Í °£Æí¼ºÀ» Á¦°øÇϱâ À§ÇÑ ÇÁ·ÎÅäÄÝÀÌ ÇÊ¿äÇÏ°Ô µÇ¾ú°í À̸¦ ¸ñÀûÀ¸·Î HTTP ÇÁ·ÎÅäÄÝÀÌ ¼³°èµÇ¾ú´Ù.

HTTP ÇÁ·ÎÅäÄÝÀº ¿ä±¸/ÀÀ´ä (Request/Response) ¹æ½ÄÀ» ÀÌ¿ëÇÏ¿© µ¿ÀÛÇϰí ÀÖ´Ù. Áï, ¿øÇÏ´Â ÇÁ·ÎÅäÄÝ ±â´É(¿¹: GET, DELETE, POST, HEAD, etc.)¿¡ ´ëÇØ ¼­ºñ½º ¿ä±¸¸¦ ÇÏ¸é µ¥ÀÌŸ Åë½ÅÀ» À§ÇÑ TCP ¿¬°áÀÌ ¸¸µé¾îÁö°í ¼­¹ö°¡ ÀÀ´äÀ» º¸³»¾î µ¥ÀÌŸ Àü¼ÛÀ» ³¡³»¸é ÀÚµ¿ÀûÀ¸·Î ¿¬°áÀÌ ²÷¾îÁö°Ô µÇ´Â °ÍÀÌ´Ù.

FTP ÇÁ·ÎÅäÄÝÀÇ °æ¿ì ÇϳªÀÇ È­ÀÏÀ» ¼Û½Å ¶Ç´Â ¼ö½ÅÇÏ°í ³­ ´ÙÀ½¿¡µµ ±× ¿¬°áÀº ²÷¾îÁöÁö ¾Ê¾Æ ¶Ç ´Ù¸¥ ¿ä±¸¸¦ ÇÒ ¼ö ÀÖÁö¸¸, HTTP ÇÁ·ÎÅäÄÝÀÇ °æ¿ì¿¡´Â ´Ù½Ã ¿¬°áÀ» ¸¸µé¾î ¿ä±¸ÇØ¾ß ÇÏ´Â ¹æ½ÄÀÌ´Ù.[Simon5]

1.1.1 Requests

HTTPÀÇ Request Çü½ÄÀº ¾ÆÁÖ °£´ÜÇÏ´Ù. ù ¹øÂ° Á٠óÀ½¿¡ ¾î¶² ±â´ÉÀ» ÀÌ¿ëÇÏ·Á´ÂÁö ÁöÁ¤À» ÇÑ´Ù. °¡Àå ÀϹÝÀûÀ¸·Î ¾²À̰í ÀÖ´Â °ÍÀÌ GET ÀÌ´Ù. À̰ÍÀº ºê¶ó¿ìÀú°¡ ¼­¹ö¿¡°Ô ¹®¼­¸¦ º¸³»´Þ¶ó°í ¿äûÇÏ´Â °ÍÀÌ´Ù. ±× ´ÙÀ½¿¡´Â È­ÀÏ À̸§Ã³·³ ´ë»óÀÌ µÇ´Â °ÍÀ» ÁöÁ¤Çϰí ÇöÀç ¾²À̰í ÀÖ´Â HTTP ÇÁ·ÎÅäÄÝÀÇ ¹öÀüÀ» ÁöÁ¤ÇÑ´Ù. ÀÌ ´ÙÀ½¿¡´Â ÀÏ·ÃÀÇ ÁöÁ¤ »çÇ×µéÀ» µ¡ºÙÀÏ ¼ö°¡ ÀÖÀºµ¥, ¿¹¸¦ µé¾î ºê¶ó¿ìÀúÀÇ Á¾·ù³ª ºê¶ó¿ìÀú°¡ ´Ù·ê ¼ö ÀÖ´Â µ¥ÀÌŸ Çü½Ä µîÀÌ´Ù. ¾Æ·¡¿Í °°Àº ¿¹¸¦ º¼ ¼ö ÀÖ´Ù.

Request Example
GET  /index.html  HTTP/1.0
Accept: text/plain
Accept: text/html
Accept: */*
User-Agent: Netscape 1.2

1.1.2 Responses

HTTP¿¡¼­ÀÇ ÀÀ´ä Çü½Äµµ ¾ÆÁÖ °£´ÜÇÏ°Ô ±¸¼ºµÇ¾î ÀÖ´Ù. ¼­¹ö¿¡¼­ ¾²À̰í ÀÖ´Â ÇÁ·ÎÅäÄÝ ¹öÀü, Request¿¡ ´ëÇÑ ½ÇÇà °á°ú, Àü´ÞÇØÁÙ µ¥ÀÌŸÀÇ Çü½Ä, µ¥ÀÌŸ ±æÀÌ µî°ú °°Àº Ãß°¡ÀûÀÎ Á¤º¸°¡ Àü´ÞµÇ°í, ÀÌ·¯ÇÑ Çì´õ Á¤º¸ÀÇ ³¡À» ³ªÅ¸³»´Â ºóÁÙÀÌ µé¾î°¡°í, µÚÀÌ¾î ½ÇÁ¦ µ¥ÀÌŸ°¡ Àü´ÞµÈ´Ù. µ¥ÀÌŸ Àü´ÞÀÌ ³¡³ª¸é ¼­¹ö´Â ¿¬°áÀ» ²÷´Â´Ù. ¾Æ·¡¿Í °°Àº ¿¹¸¦ º¼ ¼ö ÀÖ´Ù.

Response Example
HTTP/1.0 200 OK
Server: MDMA/0.1
MIME-version: 1.0
Content-type: text/html
Last-Modified: Thu Jul 7 00:25:33 1994
Content-Length: 2003
Right here waiting for you...

1.2 HTTP ÇÁ·ÎÅäÄÝÀÇ ¹®Á¦Á¡

ÀÌ·¯ÇÑ ¿ä±¸/ÀÀ´ä ¹æ½ÄÀº ³ª¸§´ë·Î Àå´ÜÁ¡À» °®°í ÀÖ´Ù. URL (Uniform Resource Locator)À» ÀÌ¿ëÇÑ ÇÏÀÌÆÛ¸µÅ©·Î ±¸¼ºµÇ¾î ÀÖ´Â HTML ¹®¼­¿¡¼­´Â °¢Á¾ ÇÁ·ÎÅäÄݰú È£½ºÆ® À̸§À» ÁöÁ¤ÇÏ¿© ¹®¼­ ¿äûÀ» À§ÇÑ ¿¬°áÀ» ¸¸µé¾î µ¥ÀÌŸ¸¦ °®°í ¿Ã ¼ö ÀÖ´Ù. FTPÀÇ °æ¿ì¿¡¼­Ã³·³ ÇϳªÀÇ È£½ºÆ®¿¡ ¿À·¡ ¿¬°áÀ» ¸Î°í¼­ ¿©·¯ °¡Áö ¹®¼­µéÀ» °®°í ¿À´Â °ÍÀÌ ¾Æ´Ï¶ó ÇÏÀÌÆÛÅØ½ºÆ® ¹®¼­¿¡ ÀÖ´Â ÇÏÀÌÆÛ¸µÅ©¸¦ ÅëÇØ ÀüÇô ´Ù¸¥ È£½ºÆ®¿¡ Á¢¼ÓÇÏ¿© ¹®¼­¸¦ ¿äûÇÒ ¼ö Àֱ⠶§¹®¿¡ ¿¬°áÀÌ Áö¼ÓÀûÀ¸·Î À¯ÁöµÇ´Â ¹æ½Äº¸´Ù´Â ¿ä±¸/ÀÀ´äÀÇ ¹æ½ÄÀ¸·Î µ¿ÀÛÇÏ´Â °ÍÀÌ º¸´Ù È¿À²ÀûÀÌ°Ô µÈ´Ù.

ÇÏÁö¸¸ ¸¹Àº °æ¿ì¿¡ °®°í ¿À´Â µ¥ÀÌŸ´Â °°Àº Àå¼Ò¿¡ ÀÖ´Â °ÍÀÌ´Ù. µû¶ó¼­ °°Àº È£½ºÆ®¿¡¼­ ¿©·¯°¡Áö ¹®¼­¸¦ °®°í ¿Ã·Á°í ÇÑ´Ù¸é °¢°¢ÀÇ ¹®¼­¸¶´Ù º°µµÀÇ TCP ¿¬°áÀ» ¸¸µé°í ÀÌ °úÁ¤¿¡¼­ Ãß°¡ÀûÀÎ ºÎ´ãÀÌ »ý±â°Ô µÈ´Ù. FTPÀÇ °æ¿ì¿¡´Â ÇÑ ¹ø ¸Î¾îÁø ¿¬°áÀ» ÅëÇØ¼­ ¿©·¯ ¹ø ¹®¼­ ¿äûÀ» ÇÏ¸é µÇÁö¸¸ HTTP ÇÁ·ÎÅäÄÝ¿¡¼­´Â ¹®¼­¸¶´Ù °¢°¢ÀÇ ¿¬°áÀ» ¸¸µé¾î¾ß ÇÏ´Â Ãß°¡ÀûÀÎ ºÎ´ãÀÌ ¹ß»ýÇÏ´Â °ÍÀÌ´Ù. µû¶ó¼­ °°Àº Àå¼Ò¿¡¼­ ¸¹Àº ¹®¼­¸¦ °®°í ¿Ã·Á°í ÇÒ ¶§ HTTP ÇÁ·ÎÅäÄÝÀº ¼º´É»óÀÇ ÀúÇϸ¦ ¹ß»ý½Ã۰í ÀÖ´Â °ÍÀÌ´Ù.

1.3 HTTP Next Generation

ÀÌ·¯ÇÑ ¹®Á¦Á¡À» ÇØ°áÇϰí, On-Line ¼îÇΰú °°Àº »ó¾÷ÀûÀÎ ÀÀ¿ëµéÀ» ¿°µÎ¿¡ µÐ ±â´ÉµéÀ» º¸¿ÏÇÏ¿© »õ·Î¿î ÇÁ·ÎÅäÄÝÀ» ¼³°èÇϰíÀÚ Çϰí ÀÖ´Ù. À̰ÍÀº µÎ °¡Áö ¹æ½ÄÀ¸·Î ÁøÇàµÇ°í Àִµ¥ ÇöÀçÀÇ ÇÁ·ÎÅäÄÝÀ» º¸¿ÏÇÏ´Â ¹æ¹ýÀÌ ÇϳªÀÌ°í ¾Æ¿¹ »õ·Î¿î ÇÁ·ÎÅäÄÝÀ» ¼³°èÇØ¼­ ±âÁ¸ÀÇ HTTP ÇÁ·ÎÅäÄÝÀ» ´ëüÇÏ´Â ¹æ¹ýÀÌ ³ª¸ÓÁö ÇÑ °¡ÁöÀÌ´Ù. HTTP-NG¶õ ¸íĪÀº ±âÁ¸ÀÇ HTTP ÇÁ·ÎÅäÄÝÀ» ´ëüÇÏ´Â »õ·Î¿î ÇÁ·ÎÅäÄÝÀ» ¼³°èÇϰíÀÚ ÇÏ´Â °ÍÀÌ´Ù.[Simon1][Simon2]

2. HTTP-NG Activities

2.1 °³¿ä

HTTP´Â ÀÎÅͳݿ¡¼­ °¡Àå ºü¸£°Ô ¼ºÀåÇϰí ÀÖ´Â ÇÁ·ÎÅäÄÝÀÌ´Ù. ±¸ÇöÇϱ⵵ ¼Õ½¬¿ì¸ç Áö±Ý ÀÌ ¼ø°£¿¡µµ ¾öû³­ ¾çÀÇ µ¥ÀÌŸ°¡ ÀÌ ÇÁ·ÎÅäÄÝ¿¡ ÀÇÇØ Àü¼ÛµÇ°í ÀÖ´Ù. ÀÌ·¸°Ô Àß µ¿ÀÛÇϰí ÀÖÀ½¿¡µµ HTTP¸¦ ´ëüÇÏ´Â »õ·Î¿î ÇÁ·ÎÅäÄÝÀ» ¼³°èÇϰíÀÚ ÇÏ´Â °ÍÀº ¾Õ¼­ ¸»ÇÑ ¼º´É»óÀÇ ¹®Á¦¿Í »ç¿ëÀÚ È®ÀÎ ¹× »ç¿ë·á ¡¼ö µî°ú °°Àº ¼ö´ÜÀ¸·Î »ó¾÷Àû ÀÀ¿ëÀÇ ¸ñÀûÀ» ´Þ¼ºÇϱâ À§Çؼ­ÀÌ´Ù.[Simon1]

±âÁ¸ÀÇ ÇÁ·ÎÅäÄÝ¿¡´Ù °¢Á¾ ±â´ÉµéÀ» Ãß°¡ÇÏ°í °³¼±ÇÏ¿© Ȱ¿ëÇÏ´Â ¹æ¹ýµµ ÀÖÀ¸³ª ÇÊ¿äÇÑ ¿ä°ÇµéÀÌ ÇÁ·ÎÅäÄÝ µ¿ÀÛÀÇ ±âº» ¸ðµ¨°ú °ü·ÃÇÑ °ÍÀ̱⠶§¹®¿¡ À̸¦ ¹Ù²ÙÁö ¾Ê°í¼­´Â ¹®Á¦¸¦ ´õ º¹ÀâÇÏ°í ¾î·Æ°Ô ¸¸µç´Ù. ÀÌ¿¡ µû¶ó ´Ù¸¥ µ¿ÀÛ ¸ðµ¨À» »ç¿ëÇÏ¿© »õ·Î¿î ÇÁ·ÎÅäÄÝÀ» ¼³°èÇϰíÀÚ ÇÏ´Â °ÍÀÌ´Ù.[Simon2]

2.2 »ç¿ëÀÚ ¿ä±¸»çÇ×

»õ·Î¿î ÇÁ·ÎÅäÄÝÀ» °³¹ßÇϰíÀÚ ÇÒ ¶§ °ËÅäÇÒ ¼ö ÀÖ´Â ¿ä±¸»çÇ×µéÀº ¼¼ °¡Áö ´ë»ó¿¡ ´ëÇÑ °ÍÀ¸·Î ³ª´©¾îº¼ ¼ö ÀÖ´Ù. Áï, ´ÙÀ½°ú °°´Ù.

¼­ºñ½º »ç¿ëÀÚ
»ç¿ëÀÚµéÀº À¥¼­ºñ½º¸¦ ÀÌ¿ëÇϸ鼭 ¹®¼­¸¦ °®°í ¿À´Â µ¥ °É¸®´Â ½Ã°£ ¾øÀÌ Áï½Ã ¹Þ¾Æº¸°íÀÚ ÇÑ´Ù.

¼­ºñ½º Á¦°øÀÚ
°¡´ÉÇÑÇÑ ¸¹Àº »ç¿ëÀÚ¸¦ È®º¸ÇÏ°í µî·ÏµÈ »ç¿ëÀÚ¿¡°Ô¸¸ Á¢±ÙÀ» Çã¿ëÇϸç À̸¦ ÅëÇØ »ó¾÷ÀûÀÎ ¼º°øÀ» Ãß±¸ÇϰíÀÚ ÇÑ´Ù.

¼ÒÇÁÆ®¿þ¾î °³¹ßÀÚ
±¸ÇöÇϱⰡ ½±°í °³¹ß ÀÛ¾÷ÀÌ ÆíÇØ¾ß ÇÑ´Ù.

°¢ ´ë»óµéÀÌ °®´Â ÀÌ·± ¿ä±¸»çÇ×µéÀ» ÃæÁ·½ÃŰ´Â ÇÁ·ÎÅäÄÝÀÌ °³¹ßµÇ¾î¾ß ÇÑ´Ù. À̸¦ À§ÇØ ÇÊ¿äÇÑ »çÇ×µé°ú ÇöÀçÀÇ TCP/IP ÇÁ·ÎÅäÄÝ»óÀÇ ¹®Á¦Á¡µéÀ» ³ª¿­ÇØ º¸µµ·Ï ÇÑ´Ù.

Simplicity
HTTP-NG´Â ±¸ÇöÇϱⰡ ½¬¿î ÇÁ·ÎÅäÄÝÀ̾î¾ß ÇÑ´Ù.

Performance
Àü¼¼°è¿¡ °ÉÄ£ ³×Æ®¿öÅ© »ó¿¡¼­ µ¥ÀÌŸ ¼Û¼ö½ÅÀÌ È¿À²ÀûÀ̾î¾ß ÇÑ´Ù.

Asynchronicity
¾Õ¼­ ¿äûÇß´ø ¼­ºñ½º ¿ä±¸¿¡ »ó°ü¾øÀÌ ¾ðÁ¦µçÁö ¿øÇÏ´Â ¼­ºñ½º ¿ä±¸¸¦ ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. Áï, ¾Õ¼­ ¿ä±¸ÇÑ ¼­ºñ½º¿¡ ÀÇÇØ ÇöÀçÀÇ ¼­ºñ½º ¿ä±¸°¡ Á¦Çѹ޾Ƽ­´Â ¾È µÈ´Ù. ¶ÇÇÑ ÇϳªÀÇ ¿¬°á »ó¿¡¼­ µ¿½Ã¿¡ ¿©·¯ °³ÀÇ µ¥ÀÌŸ¸¦ ¼ö½ÅÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.

Security
º¸¾ÈÀ» À§ÇØ ¾Ïȣȭ µÇ¾î ÀÖ´Â µ¥ÀÌŸ¸¦ Àü¼ÛÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. À̸¦ À§ÇØ ÇÑ °¡Áö ¸ÞÄ«´ÏÁò¸¸ Á¦°øµÇ¸é ¾È µÈ´Ù.

Authentication
»ç¿ëÀÚ¿¡ ´ëÇÑ ÀÎÁõÀÌ °¡´ÉÇØ¾ß ÇÑ´Ù.

Charging
»ç¿ë·®¿¡ ºñ·ÊÇÏ´Â °ú±ÝÀ» ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. À̸¦ À§ÇØ ÇÑ °¡Áö ¹æ¹ý¸¸ Á¦°øÇؼ­´Â ¾È µÈ´Ù.

Intermediate Servers
ij½Ã¿Í ¹Ì·¯ÀÇ ±â´ÉÀ» À§ÇØ Áß°£ °ÔÀÌÆ®¿þÀÌ ¿ªÇÒÀ» ÇÒ ¼ö ÀÖ¾î¾ß Çϸç, ¼­¹ö¿Í ¼­¹ö »çÀÌÀÇ µ¿ÀÛµµ °¡´ÉÇØ¾ß ÇÑ´Ù.

Mandatory Displays
ÀúÀÛ±Ç »çÇ×À̳ª ÀúÀÚ¿¡ °üÇÑ °Í ó·³ ¹Ýµå½Ã Ç¥½ÃµÇ¾î¾ß ÇÒ »çÇ׿¡ ´ëÇØ Áö¿øÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.

Logging Information
Áß°£ °ÔÀÌÆ®¿þÀÌ ¿ªÇÒÀ» ÇÏ´Â ¼­¹ö¿Í ¿ø·¡ È£½ºÆ® ¼­¹ö »çÀÌ¿¡¼­ logging informationÀÌ °ü¸®µÇ¾î¾ß ÇÑ´Ù.

Network Requirements
TCP¿Í °°Àº Àü¼Û ÇÁ·ÎÅäÄÝ¿¡ »ó°ü¾øÀÌ µ¥ÀÌŸ Àü¼ÛÀÌ °¡´ÉÇØ¾ß ÇÑ´Ù. ´Ù½Ã ¸»Çؼ­ TCP°¡ ¾Æ´Ñ ´Ù¸¥ ¼ö¼Û°èÃþ ÇÁ·ÎÅäÄÝ¿¡µµ Àû¿ëÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù´Â °ÍÀÌ´Ù. ±×·¯³ª ÇöÀçÀÇ ÀÀ¿ëµéÀº ÀüºÎ TCP ÇÁ·ÎÅäÄÝ À§¿¡¼­ ÀÌ·ç¾îÁö°í ÀÖÀ¸¹Ç·Î TCP »óȲ¿¡¼­µµ Àß µ¿ÀÛÇØ¾ß ÇÑ´Ù.

TCP and Internet
HTTP ÇÁ·ÎÅäÄÝÀº °á±¹ TCP ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇÒ ¼ö¹Û¿¡ ¾øÀ¸¹Ç·Î HTTP ÇÁ·ÎÅäÄÝ ¼º´ÉÀÇ »ó´ç ºÎºÐÀº TCP ÇÁ·ÎÅäÄÝ¿¡ ÀÇÇØ ¿µÇâÀ» ¹Þ´Â´Ù. µû¶ó¼­ ÇÁ·ÎÅäÄÝÀÇ ¼³°è¿¡¼­´Â TCP ÇÁ·ÎÅäÄÝÀÇ Æ¯¼ºÀ» Àß ÆÄ¾ÇÇØ¾ß ÇÑ´Ù.

Connection Setup Costs
TCP ¿¬°áÀ» ¸ÎÀ¸¸é¼­ RTT(Round Trip Time) ¸¸Å­ÀÇ Áö¿¬ÀÌ »ý±ä´Ù.

Slow Start limits transfer rates during start up.
ÇϳªÀÇ µ¥ÀÌŸ ÆÐŶ ¼Ó¿¡ ¿ä±¸ÇÏ´Â Á¤º¸¸¦ ÀüºÎ ÁöÁ¤ÇÒ ¼ö ¾ø´Ù¸é ¸î °³ÀÇ µ¥ÀÌŸ ÆÐŶÀ¸·Î ³ª´µ¾îÁ® ¿ä±¸Á¤º¸°¡ Àü´ÞµÉ °ÍÀ̰í slow start ¾Ë°í¸®Áò¿¡ ÀÇÇØ Ãß°¡ÀûÀÎ RTT Áö¿¬ÀÌ ¹ß»ýÇÏ°Ô µÈ´Ù.

Congestion information is not shared between connections.
ºê¶ó¿ìÀú¿Í ¼­¹ö »çÀÌ¿¡ ¿©·¯ °³ÀÇ µ¥ÀÌŸ Àü¼Û ¿¬°áÀÌ ¸¸µé¾îÁ® ÀÖÀ» ¶§ °¢°¢ÀÇ ¿¬°á »çÀÌ¿¡ ¾Æ¹«·± Á¤º¸ ±³È¯ÀÌ ¾ø±â ¶§¹®¿¡ Àü¼Û»óÀÇ ¹®Á¦°¡ »ý±â´õ¶óµµ ´ëóÇÒ ¹æµµ°¡ ¾ø´Ù. ÀÌ¿¡ µû¶ó ¼º´É»óÀÇ ¹®Á¦¸¦ ´õ Å©°Ô ÇÑ´Ù.

2.3 ÇÁ·ÎÅäÄÝ ¸ðµ¨

HTTP ÇÁ·ÎÅäÄÝÀÌ µ¿ÀÛÇÏ´Â ¹æ½ÄÀº ¾Æ·¡ ±×¸² 1°ú °°ÀÌ, ºê¶ó¿ìÀúÀÇ °¢ ¿ä±¸µé¸¶´Ù ¸Å¹ø »õ·Î¿î ¿¬°áÀ» ¸¸µé¾î¼­ µ¥ÀÌŸ¸¦ °¡Á®¿À°í ÀÖ´Ù. µû¶ó¼­ ´Ù¼¸ °¡ÁöÀÇ ¹®¼­ È­ÀÏÀ» °¡Á®¿À±â À§Çؼ­´Â ´Ù¼¸ °³ÀÇ ¿¬°áÀ» ¸¸µé¾î¼­ °®°í ¿À°Ô µÈ´Ù.[Simon2]


[±×¸² 1] HTTP ÇÁ·ÎÅäÄÝÀÇ µ¿ÀÛ ¸ðµ¨

ÀÌ¿¡ ºñÇØ, HTTP-NG ÇÁ·ÎÅäÄÝ ±¸Á¶¿¡¼­´Â ´Ù¸¥ ¸ðµ¨À» »ç¿ëÇϰí ÀÖ´Ù. ´ÙÀ½ ±×¸² 2¿Í °°ÀÌ °¢ ¹®¼­ ¿ä±¸¿¡ ´ëÇØ º°µµÀÇ ¿¬°áÀ» ¸¸µé±â º¸´Ù´Â ¿©·¯ °³ÀÇ ¹®¼­ ¿ä±¸¿¡ ´ëÇØ ÇϳªÀÇ ¿¬°á¸¸ ¸¸µéµµ·Ï ÇÑ´Ù. ÀÌ ÇϳªÀÇ TCP ¿¬°á ¼Ó¿¡¼­ '¼¼¼Ç(session)'À̶ó°í ºÒ¸®¿ì´Â ¿©·¯ °³ÀÇ °¡»óÀû ¿¬°áÀ» ¸¸µéµµ·Ï ÇÑ´Ù. ÀÌ °¡¿îµ¥ Çϳª´Â ¼¼¼Ç ¿¬°á¿¡¼­ Á¦¾î Á¤º¸¸¦ ÁÖ°í ¹Þ±â À§ÇØ ¾²ÀδÙ. ³ª¸ÓÁö ¼¼¼Ç ¿¬°á¼±¿¡ ½ÇÁ¦ µ¥ÀÌŸ°¡ Àü´ÞµÈ´Ù.


[±×¸² 2] HTTP-NG ÇÁ·ÎÅäÄÝÀÇ µ¿ÀÛ ¸ðµ¨

2.4 HTTP-NG ÇÁ·ÎÅäÄÝÀÇ µ¿ÀÛ

HTTP-NG¿¡¼­ÀÇ ¿ä±¸/ÀÀ´äÀº '¸Þ½ÃÁö' ´ÜÀ§·Î 󸮵Ǹç, GET ¿ä±¸¸¦ ÅëÇØ ¹®¼­¸¦ ¿ä±¸ÇÏ´Â °æ¿ì¿¡ ¿øÇÏ´Â ¹®¼­ ¸ñ·ÏÀ» ÁöÁ¤ÇÏ¿© ¿ä±¸Çϰí, °¢°¢ÀÇ ¹®¼­µéÀº ¼¼¼Ç ¿¬°áÀ» ÅëÇØ µ¿½Ã¿¡ Àü´ÞµÈ´Ù. µ¥ÀÌŸ¸¦ ¼ö½ÅÇϰí ÀÖ´Â µ¿¾È¿¡µµ ±â´Ù¸± ÇÊ¿ä¾øÀÌ ¹®¼­ ¿äûÀ» ÇÒ ¼ö ÀÖÀ¸¸ç, ÇϳªÀÇ µ¥ÀÌŸ ½ºÆ®¸² ¼Ó¿¡ ¿©·¯ °³ÀÇ ¹®¼­°¡ »çÀÌ»çÀÌ¿¡ ³¢¾î ÀÖÀ» ¼ö ÀÖ´Ù. µû¶ó¼­ Áß°£ °ÔÀÌÆ®¿þÀÌ ¿ªÇÒÀ» ÇÒ ¶§µµ ¼­·Î ´Ù¸¥ ºê¶ó¿ìÀú°¡ °°Àº ¼­¹ö¿¡ ´ëÇØ ¿ä±¸¸¦ ÇÒ ¶§ È¿À²ÀûÀ¸·Î µ¿ÀÛÇÒ ¼ö ÀÖ´Â ¼ö´ÜÀÌ µÈ´Ù.

HTTP ÇÁ·ÎÅäÄÝÀ» ÅëÇØ ¼Û¼ö½ÅµÇ´Â µ¥ÀÌŸ´Â ÅØ½ºÆ® Á¤º¸ ±×´ë·Î¿©¼­ »ç¶÷µéÀÌ ÀÌÇØÇϱ⠽¬¿î ÇüÅÂÀ̳ª ´Ù¾çÇÑ µ¥ÀÌŸ Çü½ÄÀÌ º¹ÇÕÀûÀ¸·Î ¾²ÀÏ ¶§´Â º¹ÀâÇÑ ±¸Á¶·Î Ç¥ÇöµÇ¾î¾ß ÇÏ°í ´Ù·ç±â°¡ ¾î·Á¿öÁø´Ù.

ÀÌ¿¡ µû¶ó HTTP-NG¿¡¼­´Â Àü´ÞµÇ´Â ¹®¼­ Á¤º¸µéÀ» ASN.1 (Abstract Syntax Notation)°ú PER (Packed Encoding Rules) Çü½ÄÀ¸·Î ÀÎÄÚµùÇÏ¿© Àü´ÞµÇµµ·Ï ÇÑ´Ù. ÀÌ¹Ì ÀÌ ¹æ½ÄÀ¸·Î µ¿ÀÛÇÏ´Â È¿À²ÀûÀÎ µµ±¸°¡ Àֱ⠶§¹®ÀÌ´Ù.

2.4.1 Request/Response Ordering

HTTP-NG ¸Þ½ÃÁö´Â µ¿ÀÛ ·¹º§¿¡ ´ëÇÑ Çù»ó °á°ú¿¡ µû¶ó ±³È¯µÈ´Ù.[Simon4]

Synchronous Level
´ÙÀ½ µ¿ÀÛÀÌ ÀϾ±â ÀÌÀü¿¡ ÇöÀç µ¿ÀÛÀÌ ¿Ï·áµÇ¾î¾ß Çϸç, ¸ðµç µ¿ÀÛÀº µµÂøµÇ´Â ¿ä±¸ÀÇ ¼ø¼­´ë·Î ÀÌ·ç¾îÁ®¾ß ÇÑ´Ù.

Out-of-Order Level
¼­¹ö´Â ¾î¶² ¼ø¼­´ë·Î ¸Þ½ÃÁö ÀÀ´äÀ» ÇØµµ °¡´ÉÇÏ´Ù. ±×·¯³ª ´ÙÀ½ µ¿ÀÛÀÌ ½ÃÀ۵DZâ Àü¿¡ ÇöÀç µ¿ÀÛÀº ¿Ï·áµÇ¾î¾ß ÇÑ´Ù.

Interleaved Level
¼­¹ö´Â ¾î¶² ¼ø¼­´ë·Î ¸Þ½ÃÁö ÀÀ´äÀ» ÇØµµ °¡´ÉÇϸç, ÇöÀçÀÇ ÀÀ´äÇÏ´Â °ÍÀÌ ¿Ï·áµÇÁö ¾Ê¾Ò´õ¶óµµ »õ·Î¿î ÀÀ´ä ¸Þ½ÃÁö¸¦ º¸³¾ ¼ö ÀÖ´Ù.

Predictive Level
interleaved level·Î µ¿ÀÛÇϸ鼭µµ ¿¹»óµÇ´Â ¿ä±¸¿¡ ´ëÇØ¼­´Â ¿ä±¸°¡ µé¾î¿ÀÁö ¾Ê´õ¶óµµ ¹Ì¸® ÀÀ´äÀ» º¸³¾ ¼ö ÀÖ´Ù.

2.4.2 Initializing the Connection

TCP ¿¬°áÀÌ ÀÏ´Ü ¼³¸³µÇ°í ³ª¸é ¼¼¼Ç ¿¬°áÀ» À§ÇØ ÀÏ´Ü ¸ÕÀú ÃʱâÈ­¸¦ ½ÃÄÑ¾ß ÇÑ´Ù. ºê¶ó¿ìÀú´Â Çã¿ë °¡´ÉÇÑ methods (Method´Â ºê¶ó¿ìÀú°¡ ¼­¹ö¿¡°Ô ÁöÁ¤ÇÏ´Â ¹®¼­ µ¥ÀÌŸ¸¦ ¾î¶»°Ô ó¸®ÇØ ´Þ¶ó°í ÁöÁ¤ÇÏ´Â °ÍÀ» ¸»ÇÑ´Ù. ¿¹¸¦ µé¾î GETÀ̶õ method¸¦ »ç¿ëÇÑ´Ù¸é ¼­¹ö°¡ °®°í ÀÖ´Â ¹®¼­ µ¥ÀÌŸ¸¦ º¸³» ´Þ¶ó´Â ¶æÀ̰í, DELETE¶õ method¸¦ »ç¿ëÇϸé ÁöÁ¤ÇÏ´Â ¹®¼­¸¦ ¼­¹ö¿¡¼­ Áö¿ö´Þ¶ó´Â ¶æÀÌ´Ù. ÀÌó·³ ¸î °¡Áö Á¾·ùÀÇ method¸¦ »ç¿ëÇÏ¿© ¾î¶² ¼­¹ö µ¿ÀÛÀ» ¸í·ÉÇÒ °ÍÀÎÁö Á¤ÀÇÇÑ´Ù. ÀÌ·± methodsÀÇ Á¾·ù·Î´Â GET, POST, DELETE, HEAD µî°ú °°Àº °ÍÀÌ ÀÖ´Ù.)¿Í µ¿ÀÛ ·¹º§À» ÁöÁ¤ÇÏ´Â ÃʱâÈ­ ¿ä±¸¸¦ º¸³»°í, ¼­¹ö´Â Çã¿ë °¡´ÉÇÑ methods¿Í »ç¿ëÇÒ µ¿ÀÛ ·¹º§À» ÁöÁ¤ÇÏ´Â ÃʱâÈ­ ÀÀ´äÀ» ÇÑ´Ù. À̶§ ºê¶ó¿ìÀú´Â ÀÌ ÀÀ´äÀ» ¹ÞÁö ¾Ê°í¼­µµ ¼­¹ö¿¡°Ô ¿ä±¸¸¦ º¸³¾ ¼ö ÀÖ´Ù. ¸¸¾à ¼­¹ö°¡ ó¸®ÇÒ ¼ö ¾ø´Â ¿ä±¸ »çÇ×À̶ó¸é ¼­¹ö´Â ¿À·ù ÀÀ´äÀ» º¸³½´Ù.

ÀÌ·¯ÇÑ ÃʱâÈ­ ¿ä±¸¿Í ÀÀ´äÀº ¹Ýµå½Ã ¿¬°áÀÌ ¼³¸³µÇ°í ÃÖÃÊ·Î Àü´ÞµÇ¾î¾ß ÇÑ´Ù. ¸¸¾à Çù»óÀÌ °¡´ÉÇÏ´Ù¸é ÃʱâÈ­ ¿ä±¸¸¦ º¸³»°í ³ª¼­ Áï½Ã Çù»ó ¿ä±¸¸¦ º¸³¾ ¼ö ÀÖ´Ù. [Simon4]

2.4.3 Normal Message Exchange

ÃʱâÈ­ µ¿ÀÛÀÌ ³¡³ª°í ³­ ´ÙÀ½¿¡´Â ½ÇÁ¦ÀûÀÎ µ¥ÀÌŸ ¼Û¼ö½ÅÀ» À§ÇÑ ¿ä±¸¿Í ÀÀ´äÀ» ÁÖ°í ¹ÞÀ» ¼ö ÀÖ´Ù. ¼­¹ö´Â ºê¶ó¿ìÀú°¡ Çã¿ë °¡´ÉÇÏ´Ù°í ÁöÁ¤ÇÑ °Í À̿ܿ¡ ´Ù¸¥ ¾î¶² ¸Þ½ÃÁöµµ º¸³»¾î¼­´Â ¾È µÈ´Ù.

µ¥ÀÌŸ¸¦ ÁÖ°í ¹Þ´Â °¡¿îµ¥ ºê¶ó¿ìÀú´Â ¾ðÁ¦µçÁö µ¿ÀÛ ·¹º§°ú method¸¦ ¹Ù²Ù±â À§ÇØ ÃʱâÈ­ ¿ä±¸¸¦ ´Ù½Ã ÇÒ ¼ö ÀÖ´Ù. ¼­¹ö´Â »õ·Ó°Ô ¼ö½ÅÇÑ ÃʱâÈ­ ¿ä±¸¿¡ ´ëÇØ, ÀÌÀü¿¡ ¼ö½ÅÇÑ ¸ðµç ¿ä±¸ »çÇ×µéÀ» ó¸®ÇÏ°í ³­ ´ÙÀ½¿¡ ÃʱâÈ­ ÀÀ´äÀ» ÇØ¾ß ÇÑ´Ù. [Simon4]

2.4.4 Error Responses

¿À·ù°¡ ¹ß»ýÇÏ°Ô µÇ¸é ¿À·ù¸¦ ¾Ë¸®´Â ÀÀ´äÀÌ Àü´ÞµÈ´Ù. ¿À·ù°¡ ¹ß»ýÇÑ ÀÌÀ¯¿¡ ´ëÇØ ¹Ì¸® ÁöÁ¤µÇ¾î ÀÖ´Â ¼ýÀÚ ¹øÈ£·Î ¾Ë·ÁÁÖ°í, Ãß°¡ÀûÀ¸·Î ¾Ë·ÁÁÙ ¼ö ÀÖ´Â ¿À·ù ¸Þ½ÃÁö³ª Á¤º¸µµ Æ÷Ç﵃ ¼ö ÀÖ´Ù. [Simon4]

2.4.5 Request Cancellation

ÀÌ¹Ì º¸³Â´ø ¿ä±¸ »çÇ×Àº ¾ðÁ¦µçÁö Ãë¼Ò°¡ °¡´ÉÇÏ´Ù. ¾ÆÁ÷ ¿Ï·áµÇÁö ¾Ê´Â µ¿ÀÛ¿¡ ´ëÇÑ 'Ãë¼Ò¿ä±¸'¸¦ ¼­¹ö°¡ ¼ö½ÅÇÏ¸é ¼öÇàÇϰí ÀÖ´ø ÀÛ¾÷À» Áß´ÜÇÑ´Ù.

¸¸¾à ºê¶ó¿ìÀú°¡ ¿øÇÏÁö ¾Ê¾Ò´ø µ¥ÀÌŸ¸¦ Æ÷ÇÔÇϰųª ¿øÇÏÁö ¾Ê¾Ò´ø ÀÀ´ä ¸Þ½ÃÁö°¡ µµÂøÇϸé -- ÀÌ¹Ì Çß´ø ¿ä±¸ »çÇ×À» Ãë¼ÒÇßÁö¸¸ ÀÀ´äÀÌ µµÂøÇßÀ» °æ¿ìµµ Æ÷ÇÔÇÏ¿© -- ¼ö½ÅÇÏ°Ô µÈ´Ù¸é, Ãë¼Ò¿ä±¸¸¦ ¼­¹ö¿¡°Ô º¸³»µµ·Ï ÇÑ´Ù. À̸¦ ÅëÇØ º¸´Ù ³ªÀº ¿¹Ãø ¾Ë°í¸®ÁòÀÌ µ¿ÀÛÇÒ ¼ö ÀÖ°Ô²û ÇÑ´Ù.

'Ãë¼Ò¿ä±¸'(Cancel Request)¿Í ÇÔ²² '´ë±â¿ä±¸'(Suspend Request)µµ °¡´ÉÇÏ´Ù. À̰ÍÀº ¼­¹ö°¡ Àü¼Û Àç°³¸¦ ¿äûÇϰųª ºê¶ó¿ìÀú°¡ ´ë±â¿ä±¸¸¦ Ãë¼ÒÇϱâ Àü±îÁö µ¥ÀÌŸ Àü¼ÛÀ» ÀϽÃÀûÀ¸·Î ÁߴܽÃŰ°í ´ë±â »óÅ·ΠµÎ°Ô²û ÇÏ´Â °ÍÀÌ´Ù. [Simon4]

2.4.6 Connection Shutdown

ºê¶ó¿ìÀú´Â ¿¬°áÀ» ¾ðÁ¦µçÁö ²÷À» ¼ö ÀÖÀ¸¸ç ¼­¹öµµ ¾ðÁ¦µçÁö ¿¬°áÀ» ²÷À» ¼ö ÀÖ´Ù. ÀûÀýÇÏ°Ô 'ÇØÁ¦¿ä±¸'(Shutdown Request)¸¦ º¸³»¾î ÇØÁ¦ÇÒ ¼ö ÀÖ´Ù.[Simon4]

2.5 Negotiation

ºê¶ó¿ìÀú°¡ ¼­¹ö¿¡°Ô ¿©·¯ °¡Áö ¹®¼­ Àü¼ÛÀ» ¿ä±¸ÇÏ´Â °ÍÀÌ ÀϹÝÀûÀÎ °æ¿ìÀÌÁö¸¸, ¹Ý´ë·Î ¿©·¯ ºê¶ó¿ìÀú¿¡°Ô °æ°í ¸Þ½ÃÁö¸¦ Àü´ÞÇÒ ¶§¿Í °°Àº °æ¿ìµµ ÀÖ´Ù. ¶Ç´Â ºñ¿ë ÁöºÒÀ» ´©°¡ ´ã´çÇÒ °ÍÀÎÁö ¼­¹ö´Â ¿©·¯ »ó´ë¿¡ ´ëÇØ Çù»óÀ» ÇØ¾ßÇÒ °æ¿ìµµ ÀÖ´Ù. ÀÌ¿Í ÇÔ²², HTTP-NG´Â ¹®¼­ÀÇ Á¾·ù¿¡ Á¦ÇÑÀ» µÎ°í ÀÖÁö ¾Ê°í º¸¾È ¹× ÁöºÒ ¹æ½ÄÀÇ Á¦Çѵµ µÎ°í ÀÖÁö ¾ÊÀ¸¹Ç·Î ºê¶ó¿ìÀú¿Í ¼­¹ö »çÀÌ¿¡ ¾î¶² ¹æ½ÄÀ» »ç¿ëÇÒ °ÍÀÎÁö Çù»óÀÌ ÀÖ¾î¾ß ÇÑ´Ù.

HTTPÀÇ °æ¿ì¿¡´Â ºê¶ó¿ìÀú°¡ Çã¿ë °¡´ÉÇÑ °ÍµéÀ» ÁÖ·ç·è ³ª¿­ÇÏ¿© ¼­¹ö°¡ ¼±ÅÃÇÏ´Â ¹æ½ÄÀ¸·Î ÀÌ·ç¾îÁø´Ù. À̰°Àº ¹æ½Ä¿¡¼­´Â Àü´ÞÇÏ´Â ¿ä±¸ µ¥ÀÌŸ Å©±â°¡ Ä¿Áö°í ±×¸¸Å­ ¼Û¼ö½Å¿¡ ½Ã°£ÀÌ °É¸®°í ó¸® ½Ã°£À» Áõ°¡½ÃŰ´Â ¼º´É»óÀÇ ¹®Á¦Á¡À» ÀÏÀ¸Å²´Ù. ÀÌ·¯ÇÑ Á¤º¸°¡ ºê¶ó¿ìÀú ¿ä±¸ ÆÐŶÀÇ 95% ºÎºÐÀ» Â÷ÁöÇÑ´Ù.

HTTP-NG¿¡¼­´Â ÀϹÝÀûÀ¸·Î °¡Àå ¸¹ÀÌ ¾²ÀÌ´Â µ¥ÀÌŸ Çü½ÄµéÀ» ¸ñ·ÏÀ¸·Î ¸¸µé¾î ©¸·ÇÑ ºñÆ®¸Ê Çü½ÄÀ¸·Î ÀÎÄÚµùÀ» ÇÑ´Ù. ¼­¹ö¿Í ºê¶ó¿ìÀú´Â ÀÌ Á¤º¸¿Í ÇÔ²² ÀÚ½ÅÀÌ Çã¿ë °¡´ÉÇÑ °ÍµéÀ» ÁöÁ¤ÇÏ´Â ¹æ½ÄÀ¸·Î Çù»óÀÇ °úÁ¤À» °ÅÄ£´Ù. À̸¦ À§ÇØ Ãß°¡ÀûÀÎ ¼ýÀÚ Çü½ÄÀÇ ÆÄ¶ó¹ÌÅͰ¡ Ãß°¡µÇ¾î¾ß ÇÑ´Ù. security schemes, authentication information, payment mechanisms µî¿¡ ´ëÇÑ Çù»óµµ °°Àº ¹æ½ÄÀ¸·Î ÀÌ·ç¾îÁø´Ù.[Simon2][Simon4]

2.6 Security

Áö±Ý±îÁö Á¦¾ÈµÇ¾î ÀÖ´Â º¸¾È ¹æ½ÄµéÀº ºÎÁö±â¼ö·Î Á¸ÀçÇϱ⠶§¹®¿¡ HTTP-NG¿¡¼­´Â Àû¿ëÇÒ ¼ö ÀÖ´Â ¿©·¯ °¡Áö º¸¾È ¿ä¼ÒµéÀ» °áÇÕÇÏ¿© general security frameworkÀ» ¸¸µé°í ÀÖ´Ù. ¿©±â¼­ ü°èÀûÀÎ ¼±Åà »ç¾ÈµéÀ» Á¦½ÃÇϰí À̸¦ ¼±ÅÃÇÔÀ¸·Î½á ÀÌ¿ëÇϰíÀÚ ÇÏ´Â º¸¾È ¹æ½ÄÀ» ¼Õ½±°Ô ¼±ÅÃÇϰԲû Çϰí ÀÖ´Ù. À̸¦ ÅëÇØ °¢ HTTP-NG ¸Þ½ÃÁö¸¶´Ù ´Ù¸¥ º¸¾È ¹æ½ÄÀ» »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. HTTP-NG¿¡¼­´Â Áß°£ °ÔÀÌÆ®¿þÀÌ ¿ªÇÒÀ» ÇÏ´Â ¼­¹ö¿¡¼­µµ ÀÌ·± º¸¾È ¹æ½ÄÀ» Áö¿øÇϹǷΠµ¥ÀÌŸ ³»¿ë¿¡ ´ëÇØ ¼Õ´ëÁö ¾Ê°í ¾Ïȣȭ µÇ¾î ÀÖ´Â µ¥ÀÌŸ¸¦ ±×´ë·Î Áß°èÇØ ÁÙ ¼ö ÀÖµµ·Ï Çϰí ÀÖ´Ù.[Simon2]

2.7 Charging and Payment

HTTP-NG´Â ºê¶ó¿ìÀúÀÇ ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ¸·Î ¼­¹ö°¡ ´ë±Ý ÁöºÒ ¿äûÀ» ÇÒ ¼ö ÀÖ°Ô²û Çϰí ÀÖ´Ù. À̸¦ À§ÇØ ÀûÀýÇÑ ÁöºÒ ¹æ½Ä°ú »ç¿ëÀÚ ÀÎÁõ ¹æ½Ä µî¿¡ ´ëÇÑ »óÈ£°£ Çù»óÀ» ÇÏ¿©¾ß ÇÑ´Ù. ¶ÇÇÑ ¼­¹ö´Â °¡°Ý Á¤º¸µµ ÇÔ²² Á¦°øÇÏ¿©¾ß ÇÑ´Ù.[Simon2]

2.8 Mandatory Display & Copyright Control

ºê¶ó¿ìÀú°¡ ¿ä±¸ÇÑ Á¤º¸¿¡ ´ëÇØ »ç¿ëÀÚ¿¡°Ô º¸¿©ÁÙ ¶§ ÀúÀÛ±Ç »çÇ×°ú °°ÀÌ ÀÚµ¿ÀûÀ¸·Î º¸¿©ÁÖ°Ô²û Çϱâ À§ÇØ Ãß°¡ÀûÀÎ ±â´ÉÀ» ÀÌ¿ëÇÒ ¼öµµ ÀÖ´Ù.[Simon2]

2.9 Transition from HTTP 1.0

HTTP 1.0 ÇÁ·ÎÅäÄÝ¿¡¼­ HTTP-NG ÇÁ·ÎÅäÄÝ·Î ¿Å°Ü°¡±â À§ÇÑ ¹æ¹ýÀ¸·Î µÎ °¡Áö¸¦ Ȱ¿ëÇÒ ¼ö ÀÖ´Ù. ÇÑ °¡Áö ¹æ¹ýÀº HTTP 1.0°ú HTTP-NG¸¦ ÇÔ²² ±¸ÇöÇÏ¿© °¢°¢ÀÇ ºê¶ó¿ìÀú ¿ä±¸¿¡ µû¶ó ÀÀÇÏ´Â Dual Stack approachÀÌ´Ù. ´Ù¸¥ ÇÑ °¡Áö ¹æ¹ýÀº Proxy Server·Î¼­ Ȱ¿ëÇÏ´Â ¹æ¹ýÀÌ´Ù.[Simon2]

µÎ °¡Áö¸¦ ÇÔ²² ±¸ÇöÇÏ´Â Dual Stack ¹æ½Ä¿¡¼­´Â HTTP-NG¸¸ »ç¿ëÇÏ´Â ¸¸Å­ÀÇ ¼º´É Çâ»óÀ» ±â´ëÇÒ ¼ö ¾ø´Ù. ±×·¯³ª Proxy Server ¹æ½Ä¿¡¼­´Â ij½ÃµÇ´Â Á¤º¸°¡ Ç×»ó HTTP-NG ÇÁ·ÎÅäÄÝÀ» ÀÌ¿ëÇϹǷΠ»ó´çÇÑ Á¤µµÀÇ ¼º´É Çâ»óÀ» ±â´ëÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ Proxy Server´Â °°Àº ¿¬°á ¼Ó¿¡¼­ ¿©·¯ °³ÀÇ HTTP 1.0 ¿¬°áÀ» µ¿½Ã¿¡ ó¸®ÇÒ ¼ö ÀÖ´Ù.

3. Session Control Protocol (SCP)ÀÇ µ¿ÀÛ

3.1 ¸ñÀû

FTP, GOPHER, HTTP µî°ú °°ÀÌ ÀÎÅͳݿ¡¼­ Æø³Ð°Ô »ç¿ëµÇ°í ÀÖ´Â ÀÀ¿ëµéÀº ¹®¼­¸¦ ¿äûÇÒ ¶§¸¶´Ù ¸Å¹ø »õ·Î¿î ¿¬°áÀ» ¸¸µé¾î¼­ °¡Á®¿Â´Ù. Åë»ó ºê¶ó¿ìÀú´Â ¸î °³ÀÇ ¹®¼­¸¦ °°Àº ¼­¹ö¿¡¼­ °¡Á®¿À¹Ç·Î ÀÌ·¯ÇÑ ¹®¼­ ¼Û¼ö½Å ¹æ½ÄÀº ºñÈ¿À²ÀûÀÎ °ÍÀÓ¿¡ Ʋ¸²¾ø´Ù. ±×·¡¼­ ÇϳªÀÇ TCP ¿¬°á¿¡´Ù ¿©·¯ °³ÀÇ conversations, Áï session ¿¬°áÀ» µÎ¾î º¸´Ù È¿À²ÀûÀ¸·Î µ¥ÀÌŸ ¼Û¼ö½Å 󸮸¦ ÇϰíÀÚ ÇÑ´Ù.[Simon3]

3.2 ¼³°è ¸ñÇ¥

Unconfirmed service without negotiation
SCP´Â sessionÀÇ ¼³¸³ ÀýÂ÷¿Í ÇÔ²² »ç¿ëÀÚ µ¥ÀÌŸ¸¦ Àü¼ÛÇÒ ¼ö ÀÖÀ¸¸ç, ¼ö½ÅÃø¿¡¼­´Â session ¼³¸³¿¡ ´ëÇÑ È®ÀÎÀ» ÇØÁÖÁö´Â ¾ÊÀ¸¸ç ¹®Á¦°¡ ¹ß»ýÇϸé session ¿¬°áÀ» °ÅÀýÇÑ´Ù. ÀÌ ¹æ½ÄÀÌ ÇÁ·ÎÅäÄÝ ¼³°è¸¦ °£´ÜÇÏ°Ô ¸¸µé°í session ¿¬°áÀÌ ¼³¸³µÇ¾ú´Ù´Â È®ÀÎÀ» º¸³»´Â µ¥¿¡ µé¾î°¡´Â Ãß°¡ÀûÀÎ ½Ã°£ Áö¿¬À» ¾ø¾Ù ¼ö ÀÖ°Ô²û ÇÑ´Ù.

Low Overhead
¿©·¯ °³ÀÇ ¿ä±¸¿¡ ´ëÇØ °¢°¢ÀÇ session ¿¬°áÀ» ¸¸µé°í ÇϳªÀÇ TCP ¿¬°á·Î ¿ä±¸ »çÇ×À» Àü´ÞÇÒ ¶§, °¢°¢ÀÇ session ¿¬°á¿¡ ´ëÇØ 8 ¹ÙÀÌÆ®ÀÇ Ãß°¡ÀûÀÎ ºÎ´ãÀÌ µÈ´Ù. ±×·¯³ª µ¥ÀÌŸ ÆÐŶ´ç ÇÑ ¹ø¾¿ Ãß°¡µÇ´Â °ÍÀÌ ¾Æ´Ï¶ó µ¥ÀÌŸ ¼¼±×¸ÕÆ®´ç Ãß°¡µÇ¹Ç·Î ºñ±³Àû ÀûÀº ºÎ´ãÀÌ µÈ´Ù.

Simple Design
±¸ÇöÇϱⰡ ½±°Ô²û °£´ÜÇÏ°Ô ¼³°èµÇ¾î¾ß ÇÑ´Ù.

3.3 ÇÁ·ÎÅäÄÝ ±¸¼º

SCP¿¡¼­ »ç¿ëÇÏ´Â Çì´õÀÇ ±¸¼º Çü½ÄÀ» º¸¸é ´ÙÀ½ ±×¸²°ú °°´Ù.


[±×¸² 3] Çì´õ ±¸¼º Çü½Ä

3.4 ÇÁ·ÎÅäÄÝ µ¿ÀÛ

Session ID ÇÒ´ç
¿©·¯ °³·Î ¸¸µé¾îÁú ¼ö ÀÖ´Â ¼¼¼Ç¿¡ ´ëÇØ 1024º¸´Ù ÀÛÀº °ªÀ¸·Î session ID°¡ °¢°¢ ÇÒ´çµÈ´Ù. ºê¶ó¿ìÀú°¡ ÇÒ´çÇÏ´Â °ªÀº ¦¼ö·Î ±¸¼ºµÇ°í ¼­¹ö°¡ ÇÒ´çÇÏ´Â °ªÀº Ȧ¼ö·Î µÇ¾î ÀÖ´Ù.

Session ¼³¸³
µ¥ÀÌŸ ä³Î¿¡ º¸³»Áø ÃÖÃÊ ¸Þ½ÃÁö¿¡ SYN ºñÆ®°¡ 1·Î Ç¥½ÃµÇ¸é¼­ ¼¼¼ÇÀÌ ¼³¸³µÈ´Ù.

Graceful Release
FIN ºñÆ®°¡ ÁöÁ¤µÇ¾î ÀÖ´Â ¸Þ½ÃÁö¸¦ º¸³¿À¸·Î½á ¼¼¼ÇÀº ÇØÁ¦µÈ´Ù. ¾ç ³¡´ÜÀº °¢°¢ µ¶¸³ÀûÀ¸·Î ¿¬°áÀ» ÇØÁ¦ÇÒ ¼ö ÀÖ´Ù.

Disgraceful Release
¼¼¼ÇÀº RST ºñÆ®°¡ ÁöÁ¤µÇ¾î ¸Þ½ÃÁö°¡ Àü´ÞµÊÀ¸·Î½á ÇØÁ¦µÉ ¼öµµ ÀÖ´Ù. ÇØÁ¦µÇ±â Á÷Àü¿¡ ¹ÌÄ¡ Àü´ÞµÇÁö ¸øÇÑ µ¥ÀÌŸ°¡ ÀÖ´Ù¸é ¹«½ÃÇØ ¹ö¸°´Ù.

¸Þ½ÃÁö °æ°è
¸Þ½ÃÁö »çÀÌÀÇ °æ°è´Â PUSH ºñÆ®·Î ³ªÅ¸³½´Ù.

4. HTTP Development Issues

ÀÌ¹Ì ¾Õ¼­ ¿­°ÅÇß´ø HTTP ÇÁ·ÎÅäÄÝÀÇ ¹®Á¦Á¡µéÀÌ ÆÄ¾ÇµÇ¾î Àֱ⠶§¹®¿¡ ÇöÀç ÇÁ·ÎÅäÄÝÀ» °³¼±ÇϰíÀÚ ÇÏ´Â ³íÀǰ¡ ÀÌ·ç¾îÁö°í ÀÖÀ¸¸ç, ´Ù¾çÇÑ ÀÀ¿ëµé°ú »ç¿ëÀÚµéÀÇ ¿ä±¸»çÇ×À» ¹Ý¿µÇϰíÀÚ ÇÏ´Â ³íÀǰ¡ ÀÌ·ç¾îÁö°í ÀÖ´Ù. ¿©±â¿¡¼­´Â ÇöÀç HTTP ÇÁ·ÎÅäÄÝ °³¹ß ÀÛ¾÷¿¡¼­ ³íÀǵǰí ÀÖ´Â ÁÖ¿äÇÑ »çÇ׵鿡 ´ëÇØ »ìÆìº¸°íÀÚ ÇÑ´Ù. ÀÌ·¯ÇÑ »çÇ×µéÀº ¾ÆÁ÷ ³íÀÇ ´Ü°è¿¡ Àֱ⠶§¹®¿¡ ÇâÈÄÀÇ HTTP »óÀ§ ¹öÀü¿¡ ¹Ý¿µµÉÁö´Â ¾Ë ¼ö°¡ ¾ø´Ù.[Archive]

Session Extension
¾Õ¼­ ¸»ÇÑ HTTP ÇÁ·ÎÅäÄÝÀÇ °¡Àå ´ëÇ¥Àû ¹®Á¦Á¡ÀÌ °°Àº ¼­¹ö¿¡¼­ ¿©·¯ ¹®¼­¸¦ °¡Á®¿Ã ¶§ ¸Å¹ø »õ·Î¿î ¿¬°áÀ» ¸Î¾î¼­ °¡Á®¿Â´Ù´Â °ÍÀÌ´Ù. ÀÌ¿¡ ´ëÇÑ ´ëó ¹æ¾ÈÀÌ ÇϳªÀÇ TCP ¿¬°á À§¿¡ ¿©·¯ °³ÀÇ ¼¼¼Ç¿¬°áÀ» µÎ¾î¼­ ÇØ°áÇÏ´Â °ÍÀ̾ú´Ù. HTTP °³¹ß ÀÛ¾÷¿¡µµ ÀÌ °³³äÀÌ µµÀÔµÇ¾î ³íÀǵǰí ÀÖ´Ù.

State Information
À̰ÍÀº À§¿¡ ÀÖ´Â Session ¿¬°áÀÇ °³³ä°ú °ü·ÃµÇ¾î ÀÖ´Ù. ÇöÀçÀÇ HTTP ÇÁ·ÎÅäÄÝÀº ¾Õ¼­ º¸³Â´ø ¿ä±¸ »çÇ׿¡ ´ëÇÑ ¾Æ¹«·± Á¤º¸µµ °®°í ÀÖÁö ¾Ê´Ù. ±×·¡¼­ »óÈ£ µ¶¸³¼ºÀº À¯Áö°¡ µÇ³ª »óÈ£ °ü·ÃÀÌ ÀÖ´Â ¿ä±¸ »çÇ×µéÀÏ °æ¿ì¿¡´Â °°Àº Á¤º¸¸¦ ¸Å¹ø Àü´ÞÇØ¾ß ÇÏ´Â ºñÈ¿À²¼ºÀÌ µîÀåÇÏ°Ô µÈ´Ù. ÀÌ¿¡ µû¶ó »óÈ£ °ü·ÃÀÌ ÀÖ´Â ¿ä±¸ »çÇ×À» º¸³¾ ¶§´Â ÀÌ¹Ì ¾Õ¼­ º¸³½ ¿ä±¸¿¡ ´ëÇÑ Á¤º¸¸¦ °®°í ÀÖ´Ù°¡ µÚÀÌ¾î µµÂøÇÏ´Â ¿ä±¸ »çÇ׿¡µµ Àû¿ëÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. ÀÌ·¯ÇÑ °³³äÀº À§¿¡ ÀÖ´Â ¼¼¼Ç¿¬°á°ú °ü·Ã½ÃÄÑ Àû¿ëÇÒ ¼ö ÀÖ´Ù.

KeepAlive or Persistent Connection
À§ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇÑ ¶Ç ´Ù¸¥ ¹æ¾ÈÀÌ ¹Ù·Î À̰ÍÀÌ´Ù. KeepAlive °³³äÀº ÀÌ¹Ì NCSA HTTPD¿¡ ±¸ÇöµÇ¾î ¾²À̰í ÀÖ´Ù. ´Ù¸¸ ºê¶ó¿ìÀú¿¡ À̰ÍÀÌ ±¸ÇöµÇ¾î ÀÖ¾î¾ß¸¸ Á¦´ë·Î µ¿ÀÛÇÑ´Ù. À̰ÍÀº ÇϳªÀÇ ¿¬°á¿¡ ´ëÇØ ¿©·¯ °³ÀÇ ¿ä±¸¸¦ º¸³»µµ·Ï Çϰí ÀÖÀ¸¸ç, PC À©µµ¿ìÁî¿ë NCSA Mosaic¿¡ ±¸ÇöÇÏ¿© È®ÀÎÇØº» °á°ú 30 ÆÛ¼¾Æ® Á¤µµÀÇ ¼º´É Çâ»óÀ» º¸¾Ò´Ù°í ÇÑ´Ù. À̸¦ À§ÇØ httpd.conf È­ÀÏ ¼Ó¿¡ ¼¼ °¡ÁöÀÇ º¯¼ö¸¦ ¼­¹ö¿¡¼­ ÁöÁ¤ÇØÁÖ¾î¾ß ÇÑ´Ù. ´ÙÀ½°ú °°´Ù. [KeepAlive]
     KeepAlive on | off
     KeepAliveTimeout N
     MaxKeepAliveRequests N
     
Color Content Negotiation
»ç¿ëÀÚ°¡ »ç¿ëÇÏ´Â È­¸éÀº Èæ¹é¸¸ Áö¿øÇÒ ¼öµµ ÀÖ°í Ä®¶ó¸¦ Áö¿øÇÒ ¼öµµ ÀÖÀ¸¸ç, Ä®¶óÀÇ °æ¿ì ´Ù¾çÇÑ »ö ÇØ»óµµ°¡ ¼±ÅÃµÉ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ °æ¿ì¸¦ À§ÇØ Accept-Color, MIME Çü½Ä¿¡¼­ÀÇ ÆÄ¶ó¹ÌÅÍ, Accept-Parameter µî °®°¡Áö ¹æ¹ý¿¡ ´ëÇÑ ³íÀǰ¡ ÀÌ·ç¾îÁö°í ÀÖ´Ù.

Proxy Naming
ÇöÀçÀÇ proxy server´Â Áß°£ °ÔÀÌÆ®¿þÀ̷μ­ firewallÀ» Åë°úÇÒ ¶§, ¶Ç´Â º¸´Ù ºü¸¥ ÀÀ´äÀ» À§ÇÑ Ä³½Ã·Î¼­ ¾²°Å³ª ´ë¿ªÆøÀ» Àý¾àÇÒ ¸ñÀûÀ¸·Î ¾²À̰í Àִµ¥, À̰ÍÀº client Ãø¸éÀÇ proxy·Î¼­ µ¿ÀÛÇÏ´Â °ÍÀÌ´Ù. ¿Ö³ÄÇÏ¸é »ç¿ëÀÚ ºê¶ó¿ìÀú¿¡¼­´Â ÀÌ proxy ¼­¹öÀÇ Á¸À縦 ¾Ë°í ÀÖ¾î¾ß Çϱ⠶§¹®ÀÌ´Ù. ÀÌ·¯ÇÑ proxy ¼­¹ö °³³äÀ» È®ÀåÇÏ¿© client proxy¿Í server proxyÀÇ °³³ä µµÀÔÀ» À§ÇÑ Åä·ÐÀÌ ÀÌ·ç¾îÁö°í ÀÖ´Ù. server proxy´Â »ç¿ëÀÚ ºê¶ó¿ìÀú¿¡¼­´Â Á¸À縦 ¾Ë ¼ö°¡ ¾ø´Ù.

HTTP/1.1
ÇöÀç W3CÀÇ HTTP Working Group¿¡¼­ closed·Î ³íÀǰ¡ ÀÌ·ç¾îÁö°í ÀÖ´Ù. °£È¤ open mail discussionsÀ¸·Î ³íÀÇÀÇ ÀϺΰ¡ Àü´ÞµÇ±âµµ Çϳª »ó¼¼È÷ ÆÄ¾ÇÇÒ ¼ö ¾ø´Ù.

5. °á·Ð

ÇöÀç ¾²À̰í ÀÖ´Â HTTP ÇÁ·ÎÅäÄÝÀº ¼º´É»óÀÇ ¹®Á¦Á¡À» ¸¹ÀÌ °®°í ÀÖÀ¸¸ç Áö±Ýó·³ È®´ëµÇ°í ÀÖ´Â ¿©·¯ »ó¾÷Àû ÀÀ¿ëµéÀ» ÀûÀýÈ÷ Áö¿øÇØÁÙ ¼ö ÀÖÀ» ¸¸Å­ÀÇ ±â´ÉÀ» Á¦°øÇÏÁö ÀÖÁö ¸øÇÏ´Ù. ÀÌ¿¡ µû¶ó ¼º´ÉÀ» °³¼±Çϰí Ãß°¡ÀûÀÎ ±â´ÉµéÀ» Á¦°øÇϱâ À§ÇÑ HTTP ÇÁ·ÎÅäÄÝ °³¹ßÀÌ ÇÑâ ÀÌ·ç¾îÁö°í ÀÖÀ¸¸ç, µÎ °¡Áö Å« È帧ÀÌ ±âÁ¸ ÇÁ·ÎÅäÄÝÀÇ °³¼± ¹× È®ÀåÀÇ ¹æ¹ý°ú ¾Æ¿¹ ±âÁ¸ ÇÁ·ÎÅäÄÝÀ» ´ëüÇÏ´Â »õ·Î¿î ÇÁ·ÎÅäÄÝÀÇ ¼³°è°¡ ±×°ÍÀÌ´Ù. ¿©±â¼­´Â µÎ °¡Áö ¹æÇâ ¸ðµÎ¸¦ °³·«ÀûÀ¸·Î »ìÆì º¸¾ÒÀ¸¸ç, Á¡Â÷ HTTP-NG °³¹ß ÀÛ¾÷Àº Áߴܵǰí HTTP-NGÀÇ ¿©·¯ °¡Áö °³³äµéÀÌ HTTP »óÀ§ ¹öÀüÀÇ °³¹ß¿¡ Àû¿ëµÇ¸é¼­ Ãß°¡ÀûÀ¸·Î ÇÊ¿äÇÑ ±â´ÉµéÀÌ È®ÀåµÇ´Â ¹æ½ÄÀ¸·Î °³¹ßµÉ °ÍÀ¸·Î ÃßÃøÇÑ´Ù.

6. Âü°í¹®Çå(References)

[Simon1]
Progress on HTTP-NG, Simon Spero, UNC Sunsite/EIT
URL: http://www.w3.org/hypertext/WWW/Protocols/HTTP-NG/http-ng-status.html

[Simon2]
HTTP-NG Architectural Overview, Simon Spero, UNC Sunsite/EIT
URL: http://www.w3.org/hypertext/WWW/Protocols/HTTP-NG/http-ng-arch.html

[Simon3]
Session Control Protocol (SCP), Simon Spero, UNC Sunsite/EIT
URL: http://www.w3.org/hypertext/WWW/Protocols/HTTP-NG/http-ng-scp.html

[Simon4]
Next Generation Hypertext Transport Protocol, Internet Draft, Simon Spero

[Simon5]
Analysis of HTTP Performance Problems, Simon Spero, UNC Sunsite/EIT
URL: http://sunsite.unc.edu/mdma-release/http-prob.html

[KeepAlive]
HTTP 1.0 KeepAlive, NCSA
URL: http://hoohoo.ncsa.uiuc.edu/beta-1.5/howto/KeepAlive.html

[Archive]
HTTP Working Group's E-mail Discussions