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

Á¦ 30°­ - ÄíÅ°


ÄíÅ°´Â »óÅÂÁ¤º¸¸¦ ÀúÀåÇÒ ¼ö ¾ø´Â À¥ ¼­ºñ½º¿¡¼­ »óÅÂÁ¤º¸¸¦ ÀúÀåÇϱâÀ§ÇØ °³¹ßµÈ ±â¹ýÀ¸·Î CGI¿Í °°Àº ¼­¹öÂÊ ÀÎÅÍÆäÀ̽º¿¡¼­ Ŭ¶óÀ̾ðÆ®¿¡ »óÅÂÁ¤º¸¸¦ ÀúÀå(cookies.txt)ÇÏ°í ÃßÃâÇÒ ¼ö ÀÖ´Â ½Ã½ºÅÛÀÌ´Ù. µ¿ÀÛ¿ø¸®

1. Request
Ŭ¶óÀ̾ðÆ®°¡ ¼­¹öÃø¿¡ ¹®¼­¿äûÀ» ÇÑ´Ù.
2. Call
¼­¹ö´Â Cookie¸¦ °Ë»çÇϱâÀ§ÇØ CGI¸¦ È£ÃâÇÑ´Ù.
3. Set
Cookie°¡ ¾ø´Â °æ¿ì¿¡ CGI´Â Set-Cookie Çì´õ¸¦ Æ÷ÇÔÇÑ Ãâ·ÂÀ» ¼­¹ö¿¡ ¸®ÅÏÇÑ´Ù.
4. SetCookie
Set-Cookie Çì´õ¿¡ ºÎ°¡ Çì´õ¸¦ µ¡ºÙ¿© Body ÇÔ²² Ŭ¶óÀ̾ðÆ®¿¡ Àü¼ÛÇÑ´Ù.
5. Save
Set-Cookie Çì´õ¸¦ ¹ÞÀ» Ŭ¶óÀ̾ðÆ®´Â Cookie Á¤º¸(Name=Value, Expires Date, Path, Domain)¸¦ Cookies.txt¶ó´Â ÆÄÀÏ¿¡ ÀúÀåÇÑ´Ù.
6. Read, 7. Send Cookie
Cookies.txt¿¡ µî·ÏµÈ µ¿ÀÏÇÑ DomainÀÇ µ¿ÀÏÇÑ Path¸¦ »ç¿ëÀÚ°¡ ¿äûÇÏ´Â °æ¿ì Ŭ¶óÀ̾ðÆ®´Â Cookie Á¤º¸¸¦ Cookie: Çì´õ¸¦ ÀÌ¿ëÇؼ­ ¼­¹ö·Î Àü¼ÛÇÑ´Ù.
8. Call
¼­¹ö´Â Ŭ¶óÀ̾ðÆ®·ÎºÎÅÍ ¹ÞÀº Cookie Á¤º¸¸¦ ȯ°æº¯¼ö(HTTP_COOKIE)¿¡ ÀúÀåÇÏ°í CGI¸¦ È£ÃâÇÑ´Ù.
9. HTTP_COOKIE
CGI´Â HTTP_COOKIE·ÎºÎÅÍ Cookie Á¤º¸¸¦ º¹¿øÇؼ­ ¼­¹ö·Î Àü¼ÛÇÑ´Ù.
È°¿ë¹üÀ§ ¼îÇιé

¹éÈ­Á¡°ú °°Àº °¡»ó Mall¿¡¼­ »ç¿ëÀÚ°¡ ¼±ÅÃÇÑ ¹°Ç°Á¤º¸¸¦ ÀúÀå. ÁúÀÇÁ¤º¸ ÀúÀå

°Ë»ö¿£Áø¿¡¼­ »ç¿ëÀÚÀÇ ÁúÀǸ¦ Cookie¿¡ ÀúÀåÇÑ ÈÄ, Á¢¼Ó½Ã ÀÌÀü ÁúÀǾ Ãâ·Â.

¿¹: <A HREF="http://search.microsoft.com/">Microsoft»çÀÇ °Ë»ö¿£Áø</A> <a href='http://search.microsoft.com/' target='_blank' style='border-bottom: none'><IMG src='/images/external.png' align='middle' border=0 style='border-bottom: 0'></a>
ȯ°æÁ¤º¸ ÀúÀå

»ç¿ëÀÚ°¡ ¼³Á¤ÇÑ È¯°æÁ¤º¸¸¦ ÀúÀåÇÏ°í ÇØ´ç»ç¿ëÀÚ°¡ ´Ù½Ã Á¢¼ÓÇÒ ¶§ »ç¿ëÀÚ Á¤º¸¸¦ º¹¿ø

¿¹: <A HREF="http://ftpsearch.ntnu.no">FTP Search</A> <a href='http://ftpsearch.ntnu.no' target='_blank' style='border-bottom: none'><IMG src='/images/external.png' align='middle' border=0 style='border-bottom: 0'></a>
CookieÀÇ »ç¿ëÇü½Ä CookieÀÇ ¼³Á¤(¼­¹ö)

Set-Cookie Çì´õÀÇ °¢ Çʵå´Â ;·Î ±¸ºÐµÇ¸ç Name=Value¸¦ Á¦¿ÜÇÑ ³ª¸ÓÁö Çʵå´Â »ý·«ÇÒ ¼ö ÀÖ´Ù.

Set-Cookie: NAME=VALUE; expires=DATE; path=PATH; domain=DOMAIN_NAME; secure
NAME=VALUE
Ŭ¶óÀ̾ðÆ®°¡ ¼­¹ö¿¡ Àü¼ÛÇϰԵǴ ½ÇÁ¦ÀûÀÎ Á¤º¸·Î Set-Cookie Çì´õ¿¡ ¹Ýµå½Ã Æ÷ÇԵǾî¾ß ÇÑ´Ù. ÀúÀåÇÒ ÄíÅ°ÀÇ À̸§°ú °ªÀ» ¸»Çϸç, Name=Value Çʵå´Â Set-CookieÇì´õ¿¡ ¿ÀÁ÷Çϳª¸¸ Æ÷ÇÔÇؾßÇÑ´Ù. ¼¼¹ÌÄÝ·Ð(;), ½°Ç¥(,), °ø¹é( )À» Á¦¿ÜÇÑ ¾î¶°ÇÑ °Íµµ ÀÔ·ÂÇÒ ¼ö ÀÖ´Ù. ÀÌ ¹®ÀÚµéÀ» ³ªÅ¸³»±â À§Çؼ­´Â URL ÀÎÄÚµå ¹æ½Ä°ú °°ÀÌ "%HH"¸¦ ÀÌ¿ëÇصµ µÇ¸ç, ¾î¶°ÇÑ ´Ù¸¥ ÀÎÄÚµù ¹æ¹ýÀ» »ç¿ëÇصµ µÈ´Ù.
expires=DATE
ÀúÀåµÈ ÄíÅ°ÀÇ À¯È¿±â°£À» ÁöÁ¤ÇÑ´Ù. ÁöÁ¤µÈ ±â°£ÀÌ Áö³ª¸é ÇØ´ç ÄíÅ°°¡ »ç¶óÁö°Ô µÈ´Ù. ½Ã°£Àº "Wdy, MM-DD-YY HH:MM:SS GMT"¿Í °°Àº Çü½ÄÀ¸·Î ÁöÁ¤ÇÑ´Ù. ¸¸¾à ÁöÁ¤µÇÁö ¾ÊÀ¸¸é Ŭ¶óÀ̾ðÆ®°¡ Á¾·áÇÒ ¶§±îÁö¸¸ À¯È¿Çϸç, Ŭ¶óÀ̾ðÆ®¸¦ Á¾·áÇϸé ÇØ´ç ÄíÅ°´Â »ç¶óÁø´Ù. Ŭ¶óÀ̾ðÆ®¸¦ Á¾·áÇÑ ÈÄ¿¡µµ ÄíÅ°¸¦ ÂüÁ¶ÇϱâÀ§Çؼ­´Â ¹Ýµå½Ã expires=Date¸¦ ÁöÁ¤ÇؾßÇÑ´Ù.
domain=DOMAIN_NAME
Set-Cookie Çì´õ¸¦ Ãâ·ÂÇÏ´Â ¼­¹öÀÇ µµ¸ÞÀÎ ¸íÀ» ÁöÁ¤ÇÑ´Ù. Set-Cookie¸¦ Ãâ·ÂÇÏ´Â CGIÀÇ URI°¡ http://qaos.com/cgi-bin/cookie.cgi¶ó¸é domain=comp.mailx2.comÀÌ ÁöÁ¤µÈ´Ù.

Ŭ¶óÀ̾ðÆ®´Â ¿äûÇÑ URI°¡ ÁöÁ¤µÈ µµ¸ÞÀÎ ¾È¿¡ ÀÖ¾î¾ß¸¸ ÀúÀåµÈ ÄíÅ°¸¦ ¼­¹öÂÊ¿¡ ³Ñ°ÜÁÖ°Ô µÈ´Ù. µµ¸ÞÀÎÀº µÞºÎºÐºÎÅÍ ºÎºÐ¹®ÀÚ¿­ °Ë»ö(substring search)À» ÇàÇÏ¿© ÀÏÄ¡µÇ¸é ÁöÁ¤µÈ µµ¸ÞÀξȿ¡ ÀÖ´Â °ÍÀ¸·Î °£ÁֵȴÙ.

¶ÇÇÑ ÁöÁ¤µÈ µµ¸ÞÀÎ ¾È¿¡ ÀÖ´Â ¼­¹ö¸¸ÀÌ ÄíÅ°¸¦ ´Ù½Ã ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. »óÀ§ 7°¡Áö Ư¼öÇÑ µµ¸ÞÀÎÀº Àû¾îµµ µÎÀÚ¸®, ±× ¿ÜÀÇ µµ¸ÞÀÎÀº Àû¾îµµ ¼¼ÀÚ¸®¸¦ ÇÊ¿ä·Î ÇÑ´Ù. ¸¸¾à ÀÌ ¼Ó¼ºÀÌ ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀ¸¸é, ±âº»ÀûÀ¸·Î Set-Cookie Çì´õ¸¦ Ãâ·ÂÇÏ´Â ¼­¹öÀÇ ÁÖ¼Ò°¡ ÁöÁ¤µÈ´Ù.
path=PATH
³×½ºÄÉÀÙÀÌ ÄíÅ°Á¤º¸ÀÇ Àü´Þ¿©ºÎ¸¦ ÆÇ´ÜÇÏ´Â ±âÁØÀÌ µÇ´Â Çʵå·Î¼­ ÀúÀåµÈ ÄíÅ°ÀÇ À¯È¿ÇÑ °æ·Î¸¦ ÁöÁ¤ÇÑ´Ù. ¸¸¾à µµ¸ÞÀÎÀÌ À¯È¿ÇÏ´Ù¸é, ´Ù½Ã °æ·Î¸¦ ¾ÕºÎºÐºÎÅÍ ºÎºÐ¹®ÀÚ¿­ °Ë»öÇÏ¿© ÀÏÄ¡µÇ¸é ºñ·Î¼Ò ÀúÀåµÈ ÄíÅ°¸¦ ¼­¹öÂÊ¿¡ ³Ñ°ÜÁÖ°Ô µÈ´Ù. ¸¸¾à ÀÌ ¼Ó¼ºÀÌ ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀ¸¸é, ±âº»ÀûÀ¸·Î ÄíÅ°¸¦ ÁöÁ¤ÇÏ´Â HTTP ÀÀ´äÇì´õ¿Í °°ÀÌ ³Ñ¾î¿À´Â ¹®¼­ÀÇ °æ·Î·Î ÁöÁ¤µÈ´Ù. À§ÀÇ ¿¹¿¡¼­´Â /cgi-binÀÌ µÈ´Ù.
secure
¸¸¾à ÀÌ Çʵ带 ÁöÁ¤Çϸé ÄíÅ°¸¦ SSLÀ» ÅëÇؼ­¸¸ Àü¼ÛÇÑ´Ù.
CookieÀÇ Àü¼Û

ÁöÁ¤µÈ µµ¸ÞÀÎÀÇ ÁöÁ¤µÈ °æ·ÎÀÇ ¹®¼­¸¦ ¿äûÇϸé Ŭ¶óÀ̾ðÆ®´Â ´ÙÀ½°ú °°Àº Cookie Çì´õ¸¦ ¼­¹öÃøÀ¸·Î Àü¼ÛÇÔÀ¸·Î¼­ Cookie Á¤º¸¸¦ Àü¼ÛÇÑ´Ù.

Cookie: NAME=VALUE

ÀÏÄ¡µÇ´Â Cookie°¡ Çϳª ÀÌ»óÀÏ °æ¿ì¿¡´Â ´ÙÀ½°ú °°Àº Çü½ÄÀÇ Cookie Çì´õ¸¦ Àü¼ÛÇÑ´Ù.

Cookie: NAME1=VALUE1; NAME2=VALUE2
CookieÀÇ º¯°æ, »èÁ¦ »èÁ¦

expires¸¦ Áö³­ ½Ã°£À¸·Î ¼³Á¤Çϸé Äí±â´Â »èÁ¦µÈ´Ù. º¯°æ

°°Àº °æ·ÎÀÇ °°Àº À̸§ÀÇ ´Ù¸¥ °ªÀ» ÁöÁ¤Çϸé Äí±â´Â º¯°æµÈ´Ù. CookieÀÇ Á¦ÇÑ

  • ÀüüÀûÀ¸·Î 300°³ÀÇ ÄíÅ°°¡ ÀúÀåµÉ ¼ö ÀÖ´Ù.
  • °¢ ÄíÅ°º°·Î À̸§°ú °ªÀ» ÇÕÇÏ¿© 4 KB±îÁö ÀúÀåµÉ ¼ö ÀÖ´Ù.
  • ¼­¹ö³ª µµ¸ÞÀκ°·Î 20°³ÀÇ ÄíÅ°°¡ ÀúÀåµÉ ¼ö ÀÖ´Ù.
ÁÖÀÇ»çÇ×

ÇÁ¶ô½Ã ¼­¹ö(proxy server)¸¦ ÀÌ¿ëÇÒ °æ¿ì ÄíÅ°°¡ ij½¬µÇ¹Ç·Î ij½¬µÇÁö ¾Êµµ·Ï HTTPÀÇ Pragma General HeaderÀ» no-cache·Î ÇØ¾ß ÇÑ´Ù. »ç¿ë¿¹ ÀúÀå

Set-Cookie Header »ç¿ë

¿¹) Set-Cookie: name=Jae-Geun&password=1111; Expires=12-31-99
º¯°æ

°°Àº °æ·Î, °°Àº µµ¸ÞÀÎÀ» °®´Â Set-Cooke Header »ç¿ë

¿¹) Set-Cookie: name=Jae-Geun&password=2222; Expires=12-31-99
»èÁ¦

Expire¸¦ °ú°ÅÀÇ ³¯ÀÚ·Î ÁöÁ¤

¿¹) Set-Cookie: name=Jae-Geun&password=1111; Expires=01-01-80
º¹¿ø

$ENV{'HTTP_COOKIE'} ÀÌ¿ë °£´ÜÇÑ ¿¹

´ÙÀ½Àº ÄíÅ°¸¦ ¼³Á¤, º¹¿ø, º¯°æ, »èÁ¦ÇÏ´Â ¿¹ÀÌ´Ù.

 1 : #! /usr/local/bin/perl
 2 : require './cgi-lib.pl';
 3 : 
 4 : &ReadParse;
 5 : 
 6 : if($ENV{'HTTP_COOKIE'} ne "") {
 7 :     &RetriveCookie;
 8 :     if ($in{command} eq "erase") {
 9 :         &SetCookie("01-01-80", "ÄíÅ°°¡ »èÁ¦µÇ¾ú½À´Ï´Ù");
10 :     }elsif($ENV{'REQUEST_METHOD'} eq 'POST' && $in{command} eq "") {
11 :         &SetCookie("12-31-99", "ÄíÅ°°¡ º¯°æµÇ¾ú½À´Ï´Ù");
12 :     } else {
13 :         print &PrintHeader;
14 :         print &HtmlTop;
15 :         print &PrintForm;
16 :         print &HtmlBot;
17 :     }
18 : } elsif($ENV{'HTTP_COOKIE'} eq "" && $ENV{'HTTP_REFERER'} =~/cookie.cgi {
19 :     &SetCookie("12-31-99", "ÄíÅ°°¡ ÀúÀåµÇ¾ú½À´Ï´Ù");
20 : }else {
21 :     print "Location: /~artech/cookie.html\n\n";
22 : }
23 : 
24 : sub RetriveCookie {
25 :     $cookie = $ENV{'HTTP_COOKIE'};
26 :     @cookie = split(/&/, $cookie);
27 :     for(0..$#cookie) {
28 :         ($name, $value) = split(/=/, $cookie[$_]);
29 :         $cookie{$name} = $value;
30 :     }
31 : }
32 : 
33 : sub SetCookie {
34 :     print "Set-Cookie: name=$in{name}&password=$in{password}&
		selected=$in{selected}; expires=$_[0] TZ\n";
35 :     print "Pragma: no-cache\n";
36 :     print &PrintHeader;
37 :     print &HtmlTop("$_[1]");
38 :     print "<li> NetscapeÀ» Á¾·áÇÑ ÈÄ, ´Ù½Ã ±âµ¿Çؼ­ <a href="/~artech
		/cookie1.html"> ÀÌÆäÀÌÁö</a>¸¦ ºí·¯¿À¸é ÄíÅ°°¡ ÀúÀå, º¯
		°æ, »èÁ¦µÈ °ÍÀ» ¾Ë¼ö ÀÖ½À´Ï´Ù.";
39 :     print &HtmlBot;
40 : }
41 : 
42 : sub PrintForm {
43 : $value = $cookie{selected};
44 : $cookie{$value} = "selected";
45 : $form =<<Form
46 : <html><head>
47 : <title> Cookie¸¦ ½ÃÇèÇÏ°í ÀÖ½À´Ï´Ù </title>
48 : </head>
49 : <body>
50 : <h2> ´ç½ÅÀÇ ÄíÅ°´Â ´ÙÀ½°ú °°ÀÌ º¹¿øµÇ¾ú½À´Ï´Ù.</h2>
51 : <li> º¯°æÇÏ·Á¸é º¯°æ¹öÆ°À» ´©¸£½Ã¸é µË´Ï´Ù.</li>
52 : <li> »èÁ¦ÇÏ·Á¸é »èÁ¦¸¦ ¼±ÅÃÇÑ ÈÄ, º¯°æ ¹öÆ°À» ´©¸£¸é µË´Ï´Ù.</li>
53 : <form action="/~artech/cgi-bin/cookie.cgi" method="POST">
54 : <table border=3>
55 : <tr>
56 :     <th> À̸§ </th>
57 :    <th> ºñ¹Ð¹øÈ£ </th>
58 :     <th> ¼±Åà </th>
59 :   
60 :     <th> »èÁ¦ </th>
61 :     <th> &nbsp </th>
62 :     </tr>
63 :     <tr>
64 :        <td> <input type="text" name="name" value="$cookie{name}" 
65 : 						size=8 maxlength=8> </td>
66 :         <td> <input type="password" name="password" 
67 : 			value="$cookie{password}" size=8 maxlenght=8> </td>
68 :         <td> <select name="selected">
69 :             <option value=apple $cookie{apple}> »ç°ú
70 :             <option value=kiwi $cookie{kiwi}> Å°À§
71 :             <option value=orange $cookie{orange}> ¿À·£Áö
72 :             </select>
73 :         </td>
74 :         <td> <input type="checkbox" name=command value="erase"> </td>
75 :         <td> <input type="submit" name="submit" value="º¯°æ"></td>
76 :     </tr>
77 : </table>
78 : </form>
79 : </html>
80 : Form
81 : }
½ÇÇà°á°ú

pcookie.cgi



´ÙÀ½±Û: Á¦ 31°­ - ÆÄÀÏ ¾÷·Îµå(File Upload) - ¼Ò½º º¯°æÁß (7405)1996-04-30
ÀÌÀü±Û: Á¦ 29°­ - ¼­¹ö Ǫ½¬(Server Push) (15103)1996-04-29

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



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