HTTP 1.1ÀÇ Content Length¿Í Transfer Encoding | ÀÛ¼ºÀÏ : 2005/12/04 04:29 |
Á¶È¸¼ö : 41918 |
Á¦ ¸ñ : HTTP 1.1ÀÇ Content Length¿Í Transfer Encoding ÀÛ¼ºÀÚ : ÁÁÀºÁøÈ£(truefeel, http://coffeenix.net/ ) ÀÛ¼ºÀÏ : 2005.12.2~3(±Ý~Åä) HTTP 1.1 ¿¡¼´Â Ä¿³Ø¼ÇÀÌ ²÷¾îÁöÁö ¾Ê°í À¯ÁöµÇ´Â Keep Alive connection(persistent connection) À» Áö¿øÇÑ´Ù. apache ¿¡¼ httpd.conf ¿¡ Keepalive onÀ¸·Î ¼³Á¤Çϸé Keep alive connectionÀ» Áö¿ø ÇÏ°Ô µÈ´Ù. À¥ÆäÀÌÁö¸¦ °¡Á®¿À´Â ÇÁ·Î±×·¥À» ¸¸µé ¶§(php¿¡¼ fsockopenÀ» »ç¿ëÇÏ´Â °æ¿ìµµ)¸¦ »ý°¢Çغ¸ÀÚ. ÇϳªÀÇ Ä¿³Ø¼ÇÀÌ °è¼Ó À¯ÁöµÈ »óŶó¸é Á¤È®ÇÑ º»¹®ÀÇ ³»¿ëÀÌ ¾îµð±îÁöÀÎÁö, ±×¸®°í ±æÀÌ´Â ¾ó¸¶ÀÎÁö ¾î¶»°Ô È®ÀÎÇؾßÇÒ±î? ¶ÇÇÑ connection closeÇüÅ·Π¿äûÀ» ÇÏ´õ¶óµµ HTTP 1.1¿¡¼´Â º»¹®³»¿ëÀ» chunked enconig(ÀÌ°Ô ¹ºÁö´Â ±Û Áß°£¿¡ ¼³¸íÇÑ´Ù.) Çü½ÄÀ¸·Î Ç¥½ÃÇÏ´Â °æ¿ìµµ ÀÖ´Ù. ÀÌ·± °Íó·³ HTTP 1.1·Î ¿äûÀ» ÇÒ ¶§´Â Content LengthÇì´õ·Î Ç¥½ÃµÇ´Â °æ¿ì¿Í chunked encoding À» »ç¿ëÇÏ´Â °æ¿ì µî 2°¡Áö response Çü½ÄÀ» Àß ±¸ºÐÇؼ ó¸®ÇØÁÖ¾î¾ß ÇÑ´Ù. 1. Content Length Çì´õ¸¦ º¸¿©ÁÖ´Â °æ¿ì
ÇÑ°¡Áö ´õ º¸ÀÚ. ¾Æ·¡¿Í °°ÀÌ ¿äûÇϸé connectionÀº °è¼Ó À¯ÁöµÈ »óÅ·ΠÀÖ°Ô µÈ´Ù.
À§Ã³·³ 'Content-Length' Çì´õ°¡ ÀÖ´Ù¸é bodyºÎºÐ¿¡¼ ÇØ´ç ±æÀ̸¸Å¸¸ ¹Þ¾Æ¿À°í, closeÇÏ¸é µÈ´Ù. 2. Transfer Encoding Çì´õ (Chunked enconding ¹æ½Ä) Chunked encondingÀº php³ª CGIµî¿¡¼ ÁÖ·Î »ç¿ëÇϸç, Çì´õ¿¡´Â Transfer-Encoding: chunked°¡ Ç¥½ÃµÇ°í, º»¹®Àº chunk size+³»¿ë+chunk size+³»¿ë... Çü½ÄÀ¸·Î Ç¥½ÃµÈ´Ù.
º¸´Ù Á¤È®ÇÏ°Ô º¸ÀÚ¸é chunk size+CRLF¹®ÀÚ(CRLF´Â ASCIIÄÚµå 16Áø¼ö·Î 0d0a)°¡ Ç¥½ÃµÇ°í, ³»¿ë+CRLF¹®ÀÚ°¡ ¿À´Â ÇüÅ°¡ ¹Ýº¹µÇ¸ç 0+CRLF¹®ÀÚ·Î ¸¶¹«¸®¸¦ ÇÑ´Ù. µû¶ó¼ À¥ÆäÀÌÁö Àоî¿Ã ¶§´Â óÀ½ chunk size¸¦ ¾Ë¾Æ³½ ÈÄ ÇØ´ç ±æÀ̸¸Å ³»¿ëÀ» ºÐ¸®ÇÏ°í ´Ù½Ã chunk sizeÀ» È®ÀÎ, ³»¿ë ºÐ¸®ÇÏ´Â °úÁ¤À» ¹Ýº¹ÇÑ ÈÄ ³»¿ë¸¸ ÇÕÄ¡´Â °úÁ¤ÀÌ ÇÊ¿äÇÏ´Ù. 3. php¿¡¼ Content-Length Çì´õ »ç¿ë À©µµÀÇ ÀÀ¿ëÇÁ·Î±×·¥°ú php·Î µÈ À¥ÆäÀÌÁö°£ÀÇ Åë½ÅÀÌ ÇÊ¿äÇÑ °æ¿ì chunked encodingµÈ ÆäÀÌÁö º¸´Ù´Â Content-Length Çì´õ¸¦ µû¸£µµ·Ï Çϸé ÀÀ¿ë ÇÁ·Î±×·¥ÂÊ °³¹ßÀÌ º¸´Ù ½¬¿öÁú °ÍÀÌ´Ù. ÀÌó·³ ÇÊ¿äÇÑ ÆäÀÌÁö¸¸ Content-Length Çì´õ°¡ Ç¥½ÃÇÏ°í ½Í´Ù¸é php¿¡¼ Ãâ·Â ¹öÆÛ¸µÀ» »ç¿ëÇϵµ·Ï ÇÏ¸é µÈ´Ù. php ½ÃÀÛ¿¡ ob_start()¸¦ ³Ö°í ¸¶Áö¸·¿¡ ob_end_flush()¸¦ »ç¿ëÇÏ¸é ±× »çÀÌ¿¡ Ãâ·ÂµÇ´Â ¸ðµç ³»¿ëÀ» ¹öÆÛ¿¡ ½×¾Æ µÐ ÈÄ ¸¶Áö¸·¿¡ Ãâ·ÂÀ» ÇÏ°Ô µÈ´Ù. ¹°·Ð ¹öÆÛ¿¡ ÀúÀåµÈ ³»¿ë ±æÀ̸¦ ÆľÇÇÑ ÈÄ Content-Length: Çì´õ¸¦ »Ñ·ÁÁÖ´Â °Íµµ ÀØÁö ¸»ÀÚ.
4. Âü°í ÀÚ·á * Content Length & Transfer Encoding http://www.simtec.ltd.uk/httpgallery/chunked/ * HTTP/1.1Ç¥ÁØ(¾È) (±è¿ë¿î ¿ª) http://coffeenix.net/doc/network/http11.txt * php ob_start() function http://kr.php.net/manual/kr/function.ob-start.php |
Ä¿ÇǴнº, ½Ã½ºÅÛ ¿£Áö´Ï¾îÀÇ ½°ÅÍ / URL : http://coffeenix.net/board_view.php?bd_code=1280 |