CGI.pmÀÇ ´ëºÎºÐÀÇ ÇÔ¼öµéÀº ÁøÇàÁß¿¡ ¹®¼¸¦ »ý¼ºÇÑ´Ù. ÀϹÝÀûÀ¸·Î HTTP Çì´õ¸¦ ¸ÕÀú ¸¸µé¸ç À̾î HTML°ú °°Àº ¹®¼¸¦ »ý¼ºÇÏ°Ô µÈ´Ù. CGI.pmÀº HTML°ú °°Àº text/html Çü½Ä»Ó¸¸¾Æ´Ï¶ó ¿©·¯°¡Áö ´Ù¾çÇÑ ÇüÅÂÀÇ HTTP Çì´õ¸¦ »ý¼ºÇÏ´Â ÇÔ¼ö¸¦ Á¦°øÇÑ´Ù. GIF À̹ÌÁö¸¦ ¸¸µé±âÀ§Çؼ´Â GD.pm ¸ðµâ À» º¸±â ¹Ù¶õ´Ù.
À̵é ÇÔ¼ö °¢°¢Àº HTMLÀ̳ª HTTPÀÇ ÀϺθ¦ Ãâ·ÂÇÒ ¼ö ÀÖÀ¸¸ç µû¶ó¼ ºê·Î¿ìÀú â¿¡ Ãâ·ÂµÇ°í ¹®ÀÚ¿¿¡ µ¡ºÙ¿©Áö°í ÆÄÀÏ·Î ÀúÀåµÉ ¼ö ÀÖ´Ù.
Ç¥ÁØ HTTP Çì´õ »ý¼ºÇϱâ
ÀÓÀÇÀÇ CGI ½ºÅ©¸³Æ®¿¡¼ ù¹ø°·Î Ãâ·ÂÇØ¾ß ÇÏ´Â °ÍÀº HTTP Çì´õÀÌ´Ù. ÀÌ °ÍÀº ¹®¼ÀÇ À¯ÇüÀÌ ¹«¾ùÀÎÁö¿Í ´Ù¸¥ Ãß°¡ÀûÀÎ Á¤º¸(¾ð¾î, ¸¸·á±â°£, ¹®¼ÀÇ Ä³½¬¿©ºÎµî)¸¦ ºê·Î¿ìÀú¿¡°Ô Á¦°øÇÑ´Ù. ÀÌ Çì´õ´Â ¶ÇÇÑ ¼¹ö ¹Ð±â(Server Push)¿Í °°Àº Ư¼öÇÑ ¸ñÀûÀ¸·Î »ç¿ëµÉ ¼ö ÀÖ´Ù.
print $query->header;
# Content-Type: text/html°ú ºóÁÙÀ» Ãâ·Â
¶Ç´Â
print $query->header('image/gif');
# Content-Type: image/gif°ú ºóÁÙÀ» Ãâ·Â
¶Ç´Â
print $query->header('text/html','204 No response');
# Status: 204 No response, Content-Type: text/html°ú
# ºóÁÙÀ» Ãâ·Â
¶Ç´Â
print $query->header(-type=>'image/gif',# MIME Çü½Ä Ãâ·Â
-nph=>1, # »óÅÂÇà Ãâ·Â
-status=>'402 Payment required',# Status Çì´õ Ãâ·Â
-expires=>'+3d', # ¸¸·áÀÏ Ãâ·Â
-cookie=>$cookie, # ÄíÅ° Ãâ·Â
-Cost=>'.00'); # Cost Çì´õ Ãâ·Â
header()
´Â Content-type: Çì´õ¸¦ ¸®ÅÏÇÑ´Ù. ¿øÇÏ´Â °æ¿ì ÀÚ½ÅÀÇ MIME Çü½ÄÀ» Á¦°øÇÒ ¼ö ÀÖÀ¸¸ç, ±×·¸Áö ¾ÊÀº °æ¿ì ±âº»°ªÀº text/htmlÀÌ´Ù. ´Ù¸¥ Ãß°¡ÀûÀÎ µÎ¹ø° ¸Å°³º¯¼ö´Â »óÅÂÄÚµå¿Í ÀÌ »óÅÂÄڵ忡´ëÇÑ Çؼ®ÀÌ´Ù. ¿¹¸¦µé¾î ºê·Î¿ìÀú°¡ ÇÒÀÏÀÌ ÀüÇô ¾ø´Ù´Â °ÍÀ» ÅëÁöÇϱâÀ§ÇØ 204, "No response"¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
¸¶Áö¸· ¿¹´Â ¸Å°³º¯¼öÀÇ À̸§À» ÀÌ¿ëÇؼ CGI ¸Þ¼Òµå¿¡ ÀÎÀÚ¸¦ Àü´ÞÇÏ´Â ±â¸í ÀÎÀÚ Àü´Þ Çü½ÄÀ» º¸ÀÌ°í ÀÖ´Ù. ÀÎ½ÄµÈ ¸Å°³º¯¼ö´Â -type, -status, -expires°ú -cookieÀÌ´Ù. ¸ðµç ¸Å°³º¯¼ö´Â ´ë½¬(-)¸¦ Á¦°ÅÇÑ »óÅ¿¡¼ Çì´õÇʵ忡 »ðÀԵȴÙ. ÀÌ °ÍÀ¸·Î ¿øÇÏ´Â ÀÓÀÇÀÇ HTTP Çì´õ¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ¸Å°³º¯¼ö À̸§ Áß°£ÀÇ ¹ØÁÙÀº ´ë½¬(-)·Î º¯È¯µÈ´Ù.
print $query->header(-Content_length=>3002);
´ëºÎºÐÀÇ ºê·Î¿ìÀú´Â CGI Ãâ·ÂÀ» ij½¬ÇÏÁö ¾Ê´Â´Ù. µû¶ó¼ ºê·Î¿ìÀú°¡ ÇØ´ç ÆäÀÌÁö¸¦ ÀоîµéÀ϶§ ¸¶´Ù ½ºÅ©¸³Æ®°¡ »õ·Ó°Ô È£ÃâµÈ´Ù. ÀÌ·¯ÇÑ Æ¯Â¡Àº -expires ¸Å°³º¯¼ö¸¦ ÀÌ¿ëÇؼ º¯°æÇÒ ¼ö ÀÖ´Ù. ÀÌ ¸Å°³º¯¼ö·Î Àý´ë ¶Ç´Â »ó´ë ¸¸·á Áֱ⸦ ÁöÁ¤ÇÒ ¶§ ¸î¸î ºê·Î¿ìÀú¿Í ÇÁ·Ï½Ã ¼¹ö´Â ÁöÁ¤µÈ ¸¸·áÀϱîÁö CGIÀÇ Ãâ·ÂÀ» ij½¬ÇÑ´Ù. ´ÙÀ½ Ç¥´Â -expires Çʵ忡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â °ªÀÌ´Ù.
Çü½Ä |
ÀÇ¹Ì |
+30s |
Áö±ÝºÎÅÍ 30ÃÊ |
+10m |
Áö±ÝºÎÅÍ 10ºÐ |
+1h |
Áö±ÝºÎÅÍ 1½Ã°£ |
-1d |
¾îÁ¦ |
now |
Áï½Ã |
+3M |
¼®´Þ ³» |
+10y |
10³â³» |
Thursday, 25-Apr-1999 00:40:33 GMT |
ÁöÁ¤µÈ ½Ã°£/³¯ÀÚ¿¡ |
|
-cookie ¸Å°³º¯¼ö´Â »óÅÂÁ¤º¸ À¯Áö¸¦ À§ÇØ À̾îÁö´Â ¸ðµç Æ®·£Àè¼Çµ¿¾È ÄíÅ°¸¦ Á¦°øÇϵµ·Ï ºê·Î¿ìÀú¿¡ ÅëÁöÇÏ´Â Çì´õ¸¦ ¸¸µç´Ù. ³Ý½ºÄÉÀÙÀÇ Äí±â´Â ¸¸·áÀÏ°ú °°Àº ¼Ó¼ºÀ» Æ÷ÇÔÇϴ Ư¼öÇÑ Çü½ÄÀ» °¡Áö°í ÀÖ´Ù. ¼¼¼Ç ÄíÅ°¸¦ »ý¼º/º¹¿øÇϱâÀ§ÇØ
<A HREF="perl-cgipm6.htm#NETSCAPE_COOKIES">cookie()</A>
¸Þ¼Òµå¸¦ »ç¿ëÇÑ´Ù.
-nph ¸Å°³º¯¼ö´Â ÂüÀ¸·Î ¼³Á¤µÇ¸é NPH(Non-Parse-Header) ½ºÅ©¸³Æ®·Î µ¿ÀÛÇϴµ¥ ÇÊ¿äÇÑ ¿Ã¹Ù¸¥ Çì´õ¸¦ »ý¼ºÇÑ´Ù. ÀÌ °ÍÀº ¸ðµç ½ºÅ©¸³Æ®¸¦ NPHÀÏ°É·Î »ý°¢ÇÏ´Â IIS¿Í °°Àº ¼¹ö¿Í ÇÔ²² »ç¿ëÇÒ ¶§¿¡´Â Áß¿äÇÏ´Ù.
¹æÇâÀüȯ Çì´õ »ý¼ºÇϱâ
print $query->redirect('http://qaos.com/');
¶§¶§·Î ¹®¼ ÀÚü¸¦ ¸¸µéÁö ¾Ê°í °£´ÜÈ÷ ´Ù¸¥ ¹®¼(URL)·Î ¹æÇâÀüȯÇϱ⸦ ¿øÇÏ´Â °æ¿ì°¡ ÀÖ´Ù. ÀÌ·± °æ¿ì´Â ¾Æ¸¶ ½Ã°£À̳ª »ç¿ëÀÚ È®Àο¡ µû¶ó URLÀ» ¼±ÅÃÇؾßÇÏ´Â °æ¿ìÀÏ °ÍÀÌ´Ù.
redirect()
ÇÔ¼ö´Â ´Ù¸¥ URLÀ» ºê·Î¿ìÀú¿¡ Àü´ÞÇÑ´Ù. ¸¸¾à ÀÌ¿Í °°Àº ¹æÇâÀüȯÀ» »ç¿ëÇÑ´Ù¸é ´Ù¸¥ ¾î¶°ÇÑ Çì´õ·Î Ãâ·ÂÇÏÁö ¾Ê¾Æ¾ß ÇÑ´Ù. 2.0 ¹öÀü¿¡¼ ó·³ ºñ°ø½ÄÀûÀÎ Location: Çì´õ¿Í °ø½ÄÀûÀÎ URI: Çì´õ µÑ´Ù Áö¿øÇÑ´Ù. ÀÌ °ÍÀ¸·Î ´ëºÎºÐÀÇ ¼¹ö¿Í ºê·Î¿ìÀú¸¦ Áö¿øÇÒ ¼ö ÀÖ´Ù.
ÇÑ°¡Áö ÁÖÀÇÇÒ °ÍÀº Àڱ⠻çÀÌÆ®ÀÇ ´Ù¸¥ ¹®¼·Î ¹æÇâÀüȯ ÇÒ ¶§ »ó´ë ¸µÅ©´Â ¹Ù¸£°Ô µ¿ÀÛÇÏÁö ¾ÊÀ» ¼ö ÀÖ´Ù´Â °ÍÀÌ´Ù. ÀÌ °ÍÀº ¸î¸î ¼¹öµéÀÌ »ç¿ëÇÏ´Â ÃÖÀûÈ °úÁ¤¶§¹®ÀÌ´Ù. ÀÌ °Í¿¡´ëÇÑ ÇØ°áÃ¥Àº ¹æÇâÀüȯÇÏ·Á´Â ¹®¼ÀÇ ¿ÏÀüÇÑ URL(http:¸¦ Æ÷ÇÔÇÑ)À» »ç¿ëÇÏ´Â °ÍÀÌ´Ù.
¶ÇÇÑ ±â¸í ÀÎÀÚ¸¦ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.
print $query->redirect(-uri=>'http://qaos.com/',
-nph=>1);
-nph ¸Å°³º¯¼ö´Â ÂüÀ¸·Î ¼³Á¤µÇ¸é NPH(Non-Parse-Header) ½ºÅ©¸³Æ®·Î µ¿ÀÛÇϴµ¥ ÇÊ¿äÇÑ ¿Ã¹Ù¸¥ Çì´õ¸¦ »ý¼ºÇÑ´Ù. ÀÌ °ÍÀº ¸ðµç ½ºÅ©¸³Æ®¸¦ NPHÀÏ°É·Î »ý°¢ÇÏ´Â IIS¿Í °°Àº ¼¹ö¿Í ÇÔ²² »ç¿ëÇÒ ¶§¿¡´Â Áß¿äÇÏ´Ù.
HTML ¹®¼ Çì´õ »ý¼ºÇϱâ
print $query->start_html(-title=>'µµ¾ÆÀÇ CGI °ÁÂ',
-author=>'[email protected]',
-base=>'true',
-target=>'_blank',
-meta=>{'keywords'=>'Forever with CGI',
'copyright'=>'ÀúÀÛ±Ç µµ¾Æ'},
-style=>{'src'=>'/style1.css'},
-BGCOLOR=>'blue');
HTTP Çì´õ¸¦ »ý¼ºÇÑ ÈÄ ´ëºÎºÐÀÇ CGI ½ºÅ©¸³Æ®´Â HTML ¹®¼¸¦ »ý¼ºÇϱ⠽ÃÀÛÇÑ´Ù.
start_html()
´Â HTML ¹®¼ÀÇ Çì´õºÎºÐ ¿Ü¿¡ ÆäÀÌÁöÀÇ ¿Ü°ü°ú Ư¡À» Á¦¾îÇÏ´Â ¸¹Àº Ãß°¡ÀûÀÎ Á¤º¸¸¦ »ý¼ºÇÑ´Ù.
ÀÌ ¸Þ¼Òµå´Â HTML Çì´õºÎºÐ°ú <BODY>(½ÃÀÛ Å±×)¸¦ ¸®ÅÏÇÑ´Ù. ¸ðµç ¸Å°³º¯¼ö´Â Á¶°ÇºÎÀÌ´Ù. ±â¸í ¸Å°³º¯¼ö Çü½Ä¿¡¼ ÀνÄÇÒ ¼ö ÀÖ´Â ¸Å°³º¯¼ö´Â -title, -author, -base, -xbase°ú -targetÀÌ´Ù. ³Ý½ºÄÉÀÙÀÇ È®Àå¼Ó¼ºÀÎ BGCOLOR ¼Ó¼º°ú °°Àº ÀÓÀÇÀÇ Ãß°¡젹ÀÎ ¸Å°³º¯¼ö°¡ <BODY> ű׿¡ Ãß°¡µÉ ¼ö ÀÖ´Ù. Ãß°¡젹ÀÎ ¸Å°³º¯¼ö´Â ´ë½¬(-)·Î ½ÃÀÛÇØ¾ß ÇÑ´Ù.
-xbase ÀÎÀÚ·Î ´ÙÀ½ ¿¹¿¡¼ ó·³ ÇöÀç URL°ú´Â ´Ù¸¥ URL¿¡´ëÇÑ HREF¸¦ Á¦°øÇÒ ¼ö ÀÖ´Ù.
-xbase=>"http://syscon.soongsil.ac.kr/~artech/"
¸ðµç »ó´ëÀûÀÎ ¸µÅ©´Â ÀÌ ¸µÅ©¿¡´ëÇÑ »ó´ë URL·Î Çؼ®µÈ´Ù.
-target ÀÎÀÚ·Î ÆäÀÌÁöÀÇ ¸ðµç ¸µÅ©¿Í Æû¿¡´ëÇÑ ±âº» Ÿ°Ù ÇÁ·¹ÀÓÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ÀÌ °ÍÀ» ¾î¶»°Ô ´Ù·ç´Â °¡¿¡´ëÇÑ ÀÚ¼¼ÇÑ ¼³¸íÀº ÇÁ·¹ÀÓ¿¡´ëÇÑ ³Ý½ºÄÉÀÙ ¹®¼ ¸¦ º¸±â¹Ù¶õ´Ù.
-target=>"answer_window"
¶ÇÇÑ -meta ÀÎÀÚ·Î HTML Çì´õºÎ¿¡ ÀÓÀÇÀÇ ¸ÞŸÁ¤º¸¸¦ Ãß°¡ÇÒ ¼ö ÀÖ´Ù. ÀÌ ÀÎÀÚ´Â ¸ÞŸ Á¤º¸ÀÇ À̸§/°ª ½ÖÀ» Æ÷ÇÔÇÏ´Â ¿¬°ü ¹è¿¸¦ ÂüÁ¶ÇÑ´Ù. ÀÌ °ÍÀº ´ÙÀ½°ú °°Àº ÀÏ·ÃÀÇ <META> ű׷Π»ðÀԵȴÙ.
<META NAME="keywords" CONTENT="CGI °ÁÂ">
<META NAME="description" CONTENT="ÀúÀÛ±Ç µµ¾Æ">
HTTP-EQUIV Çü½ÄÀÇ <META> ű״ Áö¿øµÇÁö ¾Ê´Â´Ù. ÀÌ °ÍÀº HTTP Çì´õ¸¦ header()·Î Á÷Á¢ ÁöÁ¤ÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù. ¿¹¸¦µé¾î Refresh: Çì´õ¸¦ Àü¼ÛÇÏ·Á¸é
<A HREF="CREATING_A_STANDARD_HTTP_HEADER_">header()</A>
¸Þ¼Òµå¸¦ ÀÌ¿ëÇÏ¸é µÈ´Ù.
print $q->header(-Refresh=>'10; URL=http://qaos.com/');
-style´Â Äڵ峻¿¡ Á¾¼Ó ¼½Ä ÆÄÀÏÀ» º´ÇÕÇϴµ¥ »ç¿ëµÈ´Ù. º¸´Ù ÀÚ¼¼ÇÑ Á¤º¸´Â Á¾¼Ó ¼½Ä ÆÄÀÏ¿¡´ëÇÑ ÀýÀ» º¸±â ¹Ù¶õ´Ù.
-head ¸Å°³º¯¼ö·Î <HEAD> ºÎºÐ¿¡ ´Ù¸¥ ÀÓÀÇÀÇ HTML ű׸¦ µÑ ¼ö ÀÖ´Ù. ¿¹¸¦µé¾î µå¹°°Ô »ç¿ëµÇ´Â <LINK> ű׸¦ Çìµå ºÎºÐ¿¡ µÎ±âÀ§ÇØ ´ÙÀ½°ú °°Àº ¹æ¹ýÀ» »ç¿ëÇÏ¸é µÈ´Ù.
print $q->start_html(-head=>Link({-rel=>'next',
-href=>'http://qaos.com/css/'}));
´ÙÁß HTML ¿ä¼Ò¸¦ <HEAD>ºÎ·Î º´ÇÕÇϱâ À§ÇØ ¹è¿ ÂüÁ¶¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
print $q->start_html(-head=>[
Link({-rel=>'next',
-href=>'http://qaos.com/css/'}),
Link({-rel=>'previous',
-href=>'http://qaos.com/cgi/'})
]);
ÀÚ¹Ù½ºÅ©¸³Æ®: -script, -noScript, -onLoad,
-onMouseOver, -onMouseOut¿Í -onUnload ¸Å°³º¯¼ö´Â ÀÚ¹Ù½ºÅ©¸³Æ®¸¦ Á¤ÀÇ/È£ÃâÀ» ÇÏ´Â »ç¿ëµÇ´Â ű׳ª À̺¥Æ®¸¦ ÆäÀÌÁö¿¡ Ãß°¡Çϴµ¥ »ç¿ëµÈ´Ù. -script´Â ÀÚ¹Ù½ºÅ©¸³Æ® ÇÔ¼ö¸¦ Á¤ÀÇÇÏ´Â ºí·°À» Æ÷ÇÔÇÑ´Ù. ÀÌ ºí·°Àº HTML Çì´õºÎÀÇ <SCRIPT>ºí·° ³»¿¡ ÀÖ¾î¾ßÇÑ´Ù. ÆäÀÌÁö°¡ ¿ÏÀüÈ÷ ÀÐÇôÁö±â Àü¿¡ »ç¿ëÀÚ°¡ ÁßÁö ¹öÆ°À» ´©¸¦Áö¶óµµ ¸ðµç ÀÚ¹Ù½ºÅ©¸³Æ®°¡ Á¤»èÀûÀ¸·Î µ¿ÀÛÇϵµ·Ï ÀÌ ºí·°À» °¡±ÞÀû HTML Çì´õºÎ¿¡ µÎ¾î¾ß ÇÑ´Ù. CGI.pmÀº ÀÌ·¯ÇÑ ¹æ¹ýÀ¸·Î ½ºÅ©¸³Æ®¸¦ Çü½ÄÈ ÇÑ´Ù.
-onLoad¿Í -onUnload´Â °¢°¢ ºê·Î¿ìÀú¿¡ÀÇÇØ ÆäÀÌÁö°¡ ¿·ÁÁú ¶§¿Í ´ÝÇôÁú¶§ ¼öÇàµÉ ÀÚ¹Ù½ºÅ©¸³Æ® Äڵ带 ÁöÁ¤Çϴµ¥ »ç¿ëµÈ´Ù. º¸Åë ÀÌµé ¸Å°³º¯¼ö´Â -script Çʵ峻¿¡ Á¤ÀÇµÈ ÇÔ¼ö¸¦ È£ÃâÇϴµ¥ »ç¿ëµÈ´Ù.
$query = new CGI;
print $query->header;
$JSCRIPT=<<END;
// Áú¹®
function riddle_me_this() {
var r = prompt("¾Æħ¿¡´Â ³× ¹ß·Î ±â°í, " +
"Á¡½É¿¡´Â µÎ¹ß·Î °È°í, " +
"Àú·Â¿¡´Â ¼¼¹ß·Î ±â´Â °ÍÀº?");
response(r);
}
// ´äÀ» ±¸ÇÑ´Ù.
function response(answer) {
if (answer == "»ç¶÷")
alert("Â¥½Ä, ¹Ùº¸´Â ¾Æ´Ï±º!");
else
alert("À̱¸! ¸Í¼ø¾Æ ´Ù½ÃÇØ.");
}
END
print $query->start_html(-title=>'½ºÇÎÅ©½ºÀÇ ¼ö¼ö²²±â',
-script=>$JSCRIPT);
-noScript¸¦ »ç¿ëÇؼ ÀÚ¹Ù½ºÅ©¸³Æ®¸¦ ÀνÄÇÏÁö ¸øÇÏ´Â ºê·Î¿ìÀú(¶Ç´Â ÀÚ¹Ù½ºÅ©¸³Æ® ±â´ÉÀ» »ç¿ëÇÏÁö ¾Ê´Â ºê·Î¿ìÀú)¿¡ Ãâ·ÂµÉ ¸î¸î HTML ¹®ÀåÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
³Ý½ºÄÉÀÙ 3.0Àº LANGUAGE¿Í SRC¸¦ Æ÷ÇÔÇÑ ¸î¸î±âÁö ¼Ó¼ºÀ» <SCRIPT> ű׿¡ Ãß°¡Çß´Ù. À̵é Áß SRC´Â ÀÚ¹Ù½ºÅ©¸³Æ®¸¦ °¢ ÆäÀÌÁö¿¡ Æ÷ÇÔ½ÃÅ°´Â °ÍÀÌ ¾Æ´Ï¶ó ÀÓÀÇÀÇ ÆÄÀÏÀ̳ª CGI ½ºÅ©¸³³»¿¡ ÀÚ¹Ù½ºÅ©¸³Æ®¸¦ ÂüÁ¶ÇÏ·Á´Â »ç¶÷µé¿¡°Ô °ü½ÉÀÌ °¡´Â ¼Ó¼ºÀÌ´Ù. ÀÌ ¼Ó¼ºÀ» »ç¿ëÇϱâÀ§ÇØ Çϳª ¶Ç´Â ±× ÀÌ»óÀÇ -language, -src, -code¸¦ HASH ÂüÁ¶¸¦ »ç¿ëÇؼ -script ¸Å°³º¯¼ö¿¡ Æ÷ÇÔ½Ãų ¼ö ÀÖ´Ù.
print $q->start_html(-title=>'½ºÇÎÅ©½ºÀÇ ¼ö¼ö²²±â',
-script=>{-language=>'JAVASCRIPT',
-src=>'/myjs/sphinx.js'}
);
print $q->(-title=>'±ôÂïÀ̼î',
-script=>{-language=>'PERLSCRIPT'},
-code=>'print "¾È³ç, ±ôÂï¾Æ!\n;"'
);
¸¶Áö¸· Ư¡À¸·Î ¿©·¯°¡Áö <SCRIPT> ¼½¼ÇÀÌ Çì´õ·Î º´ÇÕÇÒ ¼ö ÀÖ´Ù. ½ºÅ©¸³Æ® ¼½¼ÇÀÇ ¸ñ·ÏÀ» ÀÎÀÚ·Î Àü´ÞÇÏ¸é µÈ´Ù. ÀÌ °ÍÀ¸·Î ¼·Î ´Ù¸¥ ¹öÀüÀÇ ÀÚ¹Ù ½ºÅ©¸³Æ®¿¡´ëÇØ ´Ù¸¥ ¼Ò½ºÆÄÀÏÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
print $q->start_html(-title=>'½ºÇÎÅ©½ºÀÇ ¼ö¼ö¼ö²²³¢',
-script=>[
{ -language => 'JavaScript1.0',
-src => '/javascript/utilities10.js'
},
{ -language => 'JavaScript1.1',
-src => '/javascript/utilities11.js'
},
{ -language => 'JavaScript1.2',
-src => '/javascript/utilities12.js'
},
{ -language => 'JavaScript28.2',
-src => '/javascript/utilities219.js'
}
]);
</pre>
ÀÌ °ÍÀÌ ´Ù¼Ò Èûµé¾î º¸Àδٸé Á÷Á¢ÀûÀÎ CGI ½ºÅ©¸³ÆÃÀ» °í¼öÇϱ⠹ٶõ´Ù.
ÀÚ¹Ù½ºÅ©¸³Æ®¿¡´ëÇÑ º¸´Ù ÀÚ¼¼ÇÑ Á¤º¸´Â ÇÊÀÚÀÇ
<A HREF="http://qaos.com/learn/javascript/">ÀÚ¹Ù½ºÅ©¸³Æ® °¡À̵å(http://qaos.com/learn/javascript/)</A>
À» º¸±â ¹Ù¶õ´Ù.
HTML ¹®¼ ³¡³»±â
print $query->end_html
ÀÌ °ÍÀº </BODY></HTML>¸¦ Ãâ·ÂÇÔÀ¸·Î¼ HTML ¹®¼¸¦ ´Ý´Â´Ù.
ÀÚ±â ÂüÁ¶ URL »ý¼ºÇϱâ
$myself = $query->self_url;
print "<A HREF=$myself>È¥ÀÚ ¾ê±âÇϳ×.</A>";
self_url()
Àº ÇöÀç ½ºÅ©¸³Æ®¸¦ È£ÃâÇÑ URLÀ» ¸ðµç »óÅÂÁ¤º¸¿Í ´õºÒ¾î ¸®ÅÏÇÑ´Ù. ÀÌ °ÍÀº ÆûÀÇ ÇöÀç ³»¿ëÀ» °ÇµéÀÌÁö ¾Ê°í ³»ºÎ ¾ÞÄ¿¸¦ »ç¿ëÇؼ ¹®¼³»¿¡¼ À̵¿ÇÏ°íÀÚ ÇÒ¶§ ¾ÆÁÖ À¯¿ëÇÏ´Ù.
$myself = $query->self_url;
print "<A HREF=$myself#table1>Ç¥ 1</A>";
print "<A HREF=$myself#table2>Ç¥ 2</A>";
print "<A HREF=$myself#yourself>È¥ÀÚÇØ</A>";
¸®ÅϵǴ Çü½ÄÀ» Á¦¾îÇÏ·Á¸é url() ¸Þ¼Òµå¸¦ »ç¿ëÇÑ´Ù.
¶ÇÇÑ
query_string()
·Î Ư¼ö¹®ÀÚ°¡ Á¦°ÅµÇÁö ¾ÊÀº ÁúÀÇ ¹®ÀÚ¿À» º¹¿øÇÒ ¼öµµ ÀÖ´Ù.
$the_string = $query->query_string;
½ºÅ©¸³Æ®ÀÇ URL ¾ò±â
$full_url = $query->url();
$full_url = $query->url(-full=>1); # ´Ù¸¥ Çü½ÄÀÇ »ç¿ë¹æ¹ý
$relative_url = $query->url(-relative=>1);
$absolute_url = $query->url(-absolute=>1);
$url_with_path = $query->url(-path_info=>1);
$url_with_path_and_query = $query->url(-path_info=>1,-query=>1);
url()Àº ´Ù¾çÇÑ Çü½ÄÀ¸·Î ½ºÅ©¸³Æ®ÀÇ URLÀ» ¸®ÅÏÇÑ´Ù. ÀÎÀÚ ¾øÀÌ È£ÃâÇϸé È£½ºÆ® À̸§°ú Æ÷Æ® ¹øÈ£¸¦ Æ÷ÇÔÇÑ ¿ÏÀüÇÑ Çü½ÄÀÇ URLÀ» ¸®ÅÏÇÑ´Ù. ¿¹¸¦µé¾î ½ºÅ©¸³Æ®ÀÇ URLÀÌ ´ÙÀ½°ú °°´Ù¸é
<A HREF="http://qaos.com/cgi/exam/example1.cgi">http://qaos.com/cgi/exam/example1.cgi</A>
´ÙÀ½°ú °°Àº ±â¸í ÀÎÀÚ·Î ÀÌ Çü½ÄÀ» º¯°æÇÒ ¼ö ÀÖ´Ù.
- -absolute
- ÂüÀ̸é Àý´ë URLÀ» ¸®ÅÏÇÑ´Ù. ¿¹:
/cgi/exam/example1.cgi
- -relative
- »ó´ë URLÀ» ¸®ÅÏÇÑ´Ù. ÀÌ °ÍÀº ´Ù¸¥ ¸Å°³º¯¼ö·Î ½ºÅ©¸³Æ®¸¦ ´Ù½Ã È£ÃâÇÏ·Á´Â °æ¿ì À¯¿ëÇÏ´Ù. ¿¹:
example1.cgi
- -full
- ÀÎÀÚ¾øÀÌ È£ÃâµÇ¸é ¿ÏÀüÇÑ URLÀ» ¸®ÅÏÇÑ´Ù.
- -path (-path_info)
- Ãß°¡ÀûÀÎ °æ·ÎÁ¤º¸¸¦ URL¿¡ Ãß°¡ÇÑ´Ù. ÀÌ °ÍÀº -full, -absolute¿Í -relative °áÇÕµÉ ¼ö ÀÖ´Ù. -path_info´Â µ¿ÀǾîÀÌ´Ù.
- -query (-query_string)
- ÁúÀÇ ¹®ÀÚ¿À» URL¿¡ Ãß°¡ÇÑ´Ù. ÀÌ °ÍÀº -full, -absolute¿Í -relative °áÇÕµÉ ¼ö ÀÖ´Ù. -query_stringÀº µ¿ÀǾîÀÌ´Ù.