³¯Â¥: 1996-04-29 | ±Û¾´ÀÌ: µµ¾Æ | 14949 ¹ø | ÇÁ¸°Æ® | ¸ÞÀϷκ¸³»±â

Á¦ 29°­ - ¼­¹ö Ǫ½¬(Server Push)


1995³â ³×½ºÄÉÀÙ»çÀÇ ¸î¸î »ç¶÷µéÀÌ multipart/mixed MIME Çü½ÄÀ» Á¶ÀÛÇؼ­ À¥¿¡¼­ ¾Ö´Ï¸ÞÀ̼ÇÀ» Ç¥ÇöÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» »ý°¢ÇØ ³Â´Âµ¥, ÀÌ °ÍÀÌ ¼­¹öǪ½¬ÀÌ´Ù. ÀÌ »õ·Î¿î MIME Çü½ÄÀº multipart/x-mixed-replaceÀÌ´Ù. x´Â ÀÌ°ÍÀÌ °ø½ÄÀûÀÎ MIME ¸í¼¼°¡ ¾Æ´Ñ Ãß°¡ÀûÀÎ Çü½ÄÀ̶ó´Â °ÍÀ» ÀǹÌÇÑ´Ù. ÀÌ MIMEÀÇ ÇÙ½ÉÀº replace ºÎºÐÀÌ´Ù.

Áï, ÀÌ°ÍÀº ¸¹Àº Çü½ÄÀ» °¡Áø ÇϳªÀÇ ¸Þ½ÃÁö°¡ ¾Æ´Ï¶ó, ¸ðµÎ °°Àº Çü½ÄÀ» °¡Áø ¸¹Àº ºÐ¸®µÈ ¸Þ½ÃÁö¶ó´Â °ÍÀ» ÀǹÌÇϸç, ÇϳªÀÇ ¸Þ½ÃÁö´Â ´ÙÀ½ ¸Þ½ÃÁö·Î ´ëÄ¡(replace)µÈ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.

¿¹¸¦µé¾î gif À̹ÌÁö¿Í °°Àº °ÍÀ» ÀÌ MIME Çü½Ä¿¡ Àû¿ëÇϸé ÇϳªÀÇ GIF¸¦ Ç¥½ÃÇÏ°í ´ÙÀ½¿¡ ´Ù¸¥ GIF°¡ ±×°ÍÀ» ´ëÄ¡ÇÏ°í °è¼ÓÇؼ­ ¿©·¯ °³ÀÇ GIF ÆÄÀÏÀ» ÀÌ¿Í °°Àº ¹æ¹ýÀ¸·Î ´ëÄ¡ÇÒ ¼ö ÀÖÀ¸¸ç, ÀÌ°ÍÀ¸·Î¼­ °£´ÜÇÑ ¾Ö´Ï¸ÞÀ̼ÇÀ» À¥¿¡ ±¸ÇöÇÒ ¼ö ÀÖ´Ù.

¼­¹öǪ½¬´Â À¥¿¡ °£´ÜÇÑ ¾Ö´Ï¸ÞÀ̼ÇÀ» ³ªÅ¸³»±âÀ§Çؼ­ óÀ½À¸·Î »ç¿ëÇÑ ¹æ¹ýÀÌÁö¸¸ ³×Æ®¿÷ÀÇ ¼Óµµ¿Í ´Ù¸¥ ¿©·¯ °¡Áö ÀÌÀ¯ ¶§¹®¿¡ ºÎµå·¯¿î ¾Ö´Ï¸ÞÀ̼ÇÀ» ±¸ÇöÇϱâ Èûµé´Ù.

´õ¿íÀÌ ¿À´Ã³¯¿¡´Â ÀÚ¹Ù¿Í GIF89aÀÇ µîÀåÀ¸·Î ¾Ö´Ï¸ÞÀ̼ÇÀ» ±¸ÇöÇϱâÀ§ÇÑ ¼­¹ö Ǫ½¬·Î¼­ÀÇ Àǹ̴ ÀÒ¾úÁö¸¸ Ŭ¶óÀ̾ðÆ®¿ÍÀÇ ¿¬°áÀ» À¯ÁöÇϸ鼭 ¼­¹öÃøÀÇ Á¤º¸¸¦ Àü¼ÛÇÒ ¼ö Àֱ⠶§¹®¿¡ ¾ÆÁ÷µµ ¸¹Àº °÷¿¡¼­ »ç¿ëµÈ´Ù. µ¿ÀÛ¿ø¸®

multipart/x-mixed-replace MIME Çü½ÄÀº ´ÙÀ½°ú °°Àº Çü½ÄÀ» °®Áö¸ç, CGI°¡ ´ÙÀ½°ú °°Àº Çü½ÄÀÇ ¹®¼­¸¦ Ãâ·ÂÇÏ¸é ¼­¹ö Ǫ½¬¸¦ Áö¿øÇÏ´Â ¼­¹ö´Â ÀÌ CGIÀÇ Ãâ·ÂÀ» ¿©·¯°³ÀÇ ¹®¼­·Î ó¸®ÇØ ÁØ´Ù.

 1: Content-type: multipart/x-mixed-replace;boundary=TestBoundary
 2:
 3: --TestBoundary
 4: Content-type: text/plain
 5:
 6: first document
 7:
 8: --TestBoundary
 9: Content-type: text/html
10:
11: <html>
12: <body>
13: second document
14: </body>
15: </html>
16: 
17: --TestBoundary--
multipart/x-mixed-replace
"multipart"´Â MIME Çü½ÄÁß º¹ÇÕ¹®¼­¸¦, "x-mixed-replace"´Â º¹ÇÕ¹®¼­Áß¿¡¼­µµ ¼­¹ö ¹Ð±â¿¡ ÀÌ¿ëµÇ´Â ¹®¼­Çü½ÄÀÓÀ» ³ªÅ¸³½´Ù. ¾ÕÀÇ "x-"´Â ¾ÆÁ÷ Á¤½ÄÀ¸·Î Ç¥ÁØÈ­µÇÁö ¾ÊÀº Çü½ÄÀÓÀ» ³ªÅ¸³½´Ù.
boundary
º¹ÇÕ¹®¼­³»ÀÇ °¢ ¹®¼­µéÀ» ±¸º°ÇÏ´Â ºÐ¸®ÀÚ(delimeter)¸¦ ÁöÁ¤ÇÑ´Ù. ÀÌ ºÐ¸®ÀÚ´Â ¹®¼­³»¿¡ ³ªÅ¸³ªÁö ¾Ê´Â ¹®ÀÚ¿­À» ÀÌ¿ëÇÏ¿©¾ß ÇÑ´Ù. NCSA HTTPD¿¡¼­´Â boundary¾Õ¿¡ °ø¹éÀÌ ¿À¸é ¾ÈµÈ´Ù.
--boundary
ºÐ¸®ÀÚ ¾Õ¿¡ "--"¸¦ µ¡ºÙ¿©¼­ ´ÙÀ½ ¹®¼­ÀÇ ½ÃÀÛÀ» Ç¥½ÃÇÑ´Ù.
--boundary--
ºÐ¸®ÀÚÀÇ ¾ÕµÚ¿¡ --¸¦ µ¡ºÙ¿©¼­ ¹®¼­ÀÇ ³¡Àº ³ªÅ¸³½´Ù.
°£´ÜÇÑ ¿¹

´ÙÀ½Àº 1~50±îÁö ¼ýÀÚ¸¦ Ä«¿îÆ®ÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. CGIÀÇ Ãâ·ÂÀÌ ½Ã½ºÅÛ ¹öÆÛ¸¦ °æÀ¯ÇÏÁö ¾Êµµ·Ï $!=1;À» »ç¿ëÇÏ¿´´Ù. ¶ÇÇÑ Á¤È®È÷ ÁöÁ¤ÇÑ ½Ã°£ ÈÄ¿¡ Ãâ·ÂÀÌ µÇµµ·Ï select ÇÔ¼ö¸¦ ÀÌ¿ëÇؼ­ delay ÇÔ¼ö¸¦ ±¸ÇöÇÏ¿´´Ù.

 1 : #! /usr/local/bin/perl
 2 : $| = 1;
 3 : print "content-type: multipart/x-mixed-replace;boundary=aaa\n\n";
 4 : for($i = 1; $i <= 50; $i++)
 5 : {
 6 :     print "--aaa\n";
 7 :     print "content-type: text/html\n\n";
 8 :     print &html($i);
 9 :     &delay(1);
10 : }
11 : print "--aaa--\n\n";
12 : 
13 : sub html {
14 :     my($i) = @_;
15 :     my($html) =<<Push;
16 : <html>
17 : <body>
18 : <head>
19 : <title>Server Push¿¹</title>
20 : </head>
21 : <body>
22 : <span style="font-size: ${i}0px;color: #${i}0${i}0${i}0; 
	text-align: center"> $i</span>
23 : </body>
24 : </html>
25 : Push
26 : }
27 : sub delay {
28 :     select (undef,undef,undef,$_[0]);
29 :     return;
30 : }
½ÇÇà°á°ú

¼­¹öǪ½¬



´ÙÀ½±Û: Á¦ 30°­ - ÄíÅ° (16209)1996-04-30
ÀÌÀü±Û: Á¦ 28°­ - À¥ ¸ÞÀÏ(Mail Gateway) - ÀÛ¼ºÁß (6367)1996-04-28

¼¼»ó»ç´Â À̾߱â



RSS ±¸µ¶ (À͸í | ȸ¿ø | °­Á | Æ÷·³)
(C) 1996 ~ 2017 QAOS.com All rights reserved.