13.4. Zend_Http_Cookie ¹× Zend_Http_CookieJar

13.4.1. µµÀÔ

Zend_Http_Cookie (Àº)´Â, ÃßÂû´ë·Î,HTTP Äí۸¦ ³ªÅ¸³»´Â Ŭ·¡½ºÀÔ´Ï´Ù. HTTP ¸®½ºÆù½º ¹®ÀÚ¿­À» ÆÛ½º Çϰųª Äí۸¦ ¼öÁýÇϰųª ±×¸®°í ÇÁ·ÓÆÛƼ¿¡ °£´ÜÇÏ°Ô ¾×¼¼½º ÇϰųªÇϱâ À§ÇÑ ¸Þ¼Òµå°¡ ÀÖ½À´Ï´Ù. ¶Ç, Äí۰¡ ¼ÒÁ¤ÀÇ Á¶°Ç¿¡ ¼º³É Çϰí ÀÖÀ»Áö¸¦ Á¶»çÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î ¸®Äù½ºÆ® URL , À¯È¿±â°£, ½ÃÅ¥¾î Á¢¼ÓÀΰ¡ ¾Æ´Ñ°¡ µîÀ» Á¶»çÇÕ´Ï´Ù.

Zend_Http_CookieJar (Àº)´Â ÁÖ·Î Zend_Http_Client ±×¸®°í ÀÌ¿ëµÇ¾î Çϳª ȤÀº º¹¼öÀÇ Zend_Http_Cookie ¿ÀºêÁ§Æ®¸¦ º¸°ü À¯ÁöÇÕ´Ï´Ù. Zend_Http_CookieJar ¿ÀºêÁ§Æ®¸¦ Zend_Http_Client ¿ÀºêÁ§Æ®¿¡ ¾ÆÅ¿Ä¡ Çϸé, Ŭ¶óÀÌ¾ðÆ®·ÎºÎÅÍ HTTP ¸®Äù½ºÆ®·Î º¸³»Áö´Â ÄíŰ³ª Ŭ¶óÀÌ¾ðÆ®°¡ HTTP ¸®½ºÆù½º·Î ¹Þ´Â Äí۰¡ ¸ðµÎ CookieJar ¿ÀºêÁ§Æ®¿¡ º¸Á¸µË´Ï´Ù.±×¸®°í, Ŭ¶óÀÌ¾ðÆ®°¡ ´Ù¸¥ ¸®Äù½ºÆ®¸¦ ¼Û½ÅÇÒ ¶§ , ¿ì¼± CookieJar ¿ÀºêÁ§Æ®¸¦ Á¶»çÇØ ¸®Äù½ºÆ®¿¡ ¸ÅÄ¡ÇÏ´Â Äí۰¡ ÀÖÀ»Áö¸¦ È®ÀÎÇÕ´Ï´Ù. ¾î´Ã¾úÀ» °æ¿ì´Â, ±×°ÍÀÌ ÀÚµ¿ÀûÀ¸·Î ¸®Äù½ºÆ® Çì´õ¿¡ Ãß°¡µË´Ï´Ù. À̰ÍÀº, ¿¬¼ÓÇß´Ù HTTP ¸®Äù½ºÆ®·Î À¯ÀúÀÇ ¼¼¼ÇÀ» °è¼Ó º¸°ü À¯ÁöÇÏ°í ½ÍÀº °æ¿ì¿¡ Æí¸®ÇÕ´Ï´Ù. ¼¼¼Ç ID ÇÏÁö¸¸ º¸Á¸µÈ Äí۸¦, Çʿ信 µû¶ó¼­ ÀÚµ¿ÀûÀ¸·Î ¼Û½ÅÇÒ ¼ö ÀÖ½À´Ï´Ù. °Ô´Ù°¡ Çʿ信 µû¶ó¼­ Zend_Http_CookieJar ¿ÀºêÁ§Æ®¸¦ ½Ã¸®¾Æ¶óÀÌÁî ÇØ, $_SESSION ¿¡ °Ý³³ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

13.4.2. Zend_Http_Cookie ÀÇ ÀνºÅϽºÀÇ ÀÛ¼º

ÄíŰ ¿ÀºêÁ§Æ®ÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇÏ´Â ¹æ¹ýÀº 2ÅëÀÖ½À´Ï´Ù.

  • constructor¡¡ ¡¡ À¸·Î ÀÌÇÏ¿Í °°Àº ±¸¹®À» »ç¿ëÇÕ´Ï´Ù. new Zend_Http_Cookie(string $name, string $value, string $domain, [int $expires, [string $path, [boolean $secure]]]);

    • $name: ÄíŰÀÇ À̸§ ( ·Ê 'PHPSESSID') ( Çʼö)

    • $value: ÄíŰÀÇ °ª ( Çʼö)

    • $domain: ÄíŰÀÇ µµ¸ÞÀÎ ( ·Ê '.example.com') ( Çʼö)

    • $expires: ÄíŰÀÇ À¯È¿±â°£À» ³ªÅ¸³½´Ù UNIX ŸÀÓ ½ºÅÆÇÁ ( ¿É¼Ç.µðÆúÆ®´Â null) . ¼³Á¤ÇÏÁö ¾Ê¾Ò´ø °æ¿ì´Â, À¯È¿±â°£ ¾øÀ½ÀÇ ' ¼¼¼Ç ÄíŰ' (À¸)·Î¼­ ´Ù·ç¾îÁý´Ï´Ù.

    • $path: ÄíŰÀÇ ÆÐ½º.¿¹¸¦ µé¾î '/foo/bar/' ( ¿É¼Ç.µðÆúÆ®´Â '/')

    • $secure: ÄíŰÀÇ ¼Û½ÅÀ» ½ÃÅ¥¾î Á¢¼Ó (HTTPS) ½Ã°£¿¡ ÇÑÁ¤ÇÒÁö ( ¿É¼Ç.µðÆúÆ®´Â FALSE)

  • Á¤Àû ¸Þ¼Òµå fromString() (À»)¸¦ ÄÝ ÇØ,HTTP ¸®½ºÆù½º Çì´õ 'Set-Cookie' ȤÀº HTTP ¸®Äù½ºÆ® Çì´õ 'Cookie' ¿¡ ´ëÀÀÇÏ´Â ÄíŰ ¹®ÀÚ¿­À» ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ °æ¿ì, ÄíŰÀÇ °ªÀº »çÀü¿¡ encode ÇØ µÑ Çʿ䰡 ÀÖ½À´Ï´Ù. ÄíŰ ¹®ÀÚ¿­¿¡ 'domain' ºÎºÐÀÌ Æ÷ÇÔµÇÁö ¾Ê´Â °æ¿ì´Â, ÄíŰÀÇ µµ¸ÞÀΰú ÆÐ½º¸¦ ¼³Á¤Çϱâ À§ÇÑ ÂüÁ¶ URI (À»)¸¦ ÁöÁ¤ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.

·Ê 13.20. Zend_Http_Cookie ÀÇ ÀνºÅϽºÀÇ ÀÛ¼º


<?php
//  ¿ì¼±Àº constructor¡¡ ¡¡ À» »ç¿ëÇÕ´Ï´Ù.ÀÌ ÄíŰÀÇ À¯È¿±â°£Àº 2½Ã°£ÀÔ´Ï´Ù.
$cookie = new Zend_Http_Cookie('foo''bar''.example.com'time() + 7200'/path');

// HTTP  ¸®½ºÆù½º Çì´õ Set-Cookie  (À»)¸¦ ¼³Á¤ÇØ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
//  ÀÌ ÄíŰ´Â ¹æ±ÝÀüÀÇ °Í°ú °ÅÀÇ °°½À´Ï´Ù¸¸, À¯È¿±â°£Àº ¾ø½À´Ï´Ù.
//  ¶Ç, ½ÃÅ¥¾î Á¢¼Ó½Ã¿¡°Ô¸¸ ¼Û½ÅµË´Ï´Ù.
$cookie Zend_Http_Cookie::fromString('foo=bar; domain=.example.com; path=/path; secure');

//  ÄíŰÀÇ µµ¸ÞÀÎÀÌ ¼³Á¤µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì´Â, ¼öµ¿À¸·Î ¼³Á¤ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.
$cookie Zend_Http_Cookie::fromString('foo=bar; secure;''http://www.example.com/path');
?>

[
ÁÖÀÇ] ÁÖÀÇ

ÄíŰ ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇϴµ¥ Zend_Http_Cookie::fromString() ¸Þ¼Òµå¸¦ »ç¿ëÇßÀ» °æ¿ì´Â, ÄíŰÀÇ °ªÀº URL encode µÇ¾î ÀÖÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù. À̰ÍÀº ÄíŰ ¹®ÀÚ¿­°ú °°½À´Ï´Ù.±×·¯³ª, constructor¡¡ ¡¡ À» »ç¿ëÇÏ´Â °æ¿ì´Â, encode µÈ °ÍÀÌ ¾Æ´Ï°í, µðÄÚµåµÈ ½ÇÁ¦ÀÇ °ªÀ» »ç¿ëÇÕ´Ï´Ù.

ÄíŰ ¿ÀºêÁ§Æ®¸¦ ¹®ÀÚ¿­·Î º¯È¯ÇÏ·Á¸é , ¸ÅÁ÷ ¸Þ¼Òµå __toString() (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.ÀÌ ¸Þ¼Òµå´Â,HTTP ¸®Äù½ºÆ® Çì´õ "Cookie" ¿ë¹«ÀÇ ¹®ÀÚ¿­À» ÀÛ¼ºÇÕ´Ï´Ù. ÄíŰÀÇ À̸§°ú °ªÀÌ Ç¥½ÃµÇ¾î ÃÖÈÄ´Â ¼¼¹ÌÄÝ·Ð (';') µË´Ï´Ù. ÀÌ °ªÀº URL encode µÇ¾î ±×´ë·Î Cookie Çì´õ·Î¼­ »ç¿ëÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.

·Ê 13.21. Zend_Http_Cookie ¿ÀºêÁ§Æ®ÀÇ ¹®ÀÚ¿­È­


<?php
//  »õ·Î¿î Äí۸¦ ÀÛ¼ºÇÕ´Ï´Ù.
$cookie = new Zend_Http_Cookie('foo''two words''.example.com'time() + 7200'/path');

//  À̰ÍÀº 'foo=two+words;'  (À»)¸¦ Ç¥½ÃÇÕ´Ï´Ù.
echo $cookie->__toString();

//  À§¿Í °°Àº °ÍÀÔ´Ï´Ù.
echo (string) $cookie;

// PHP 5.2  ÀÌÈÄ¿¡¼­´Â, À̰ÍÀÌ¶óµµ ±¦Âú½À´Ï´Ù.
echo $cookie;
?>

13.4.3. Zend_Http_Cookie ÀÇ °ÙŸ¸Þ¼Úµå

Zend_Http_Cookie ÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇϸé, HTTP ÄíŰÀÇ ´Ù¾çÇÑ ÇÁ·ÓÆÛƼ¸¦ ÃëµæÇϱâ À§ÇÑ ¸Þ¼Òµå¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù.

  • string getName(): ÄíŰÀÇ À̸§À» ÃëµæÇÕ´Ï´Ù.

  • string getValue(): µðÄÚµåµÈ ÄíŰÀÇ °ªÀ» ÃëµæÇÕ´Ï´Ù.

  • string getDomain(): ÄíŰÀÇ µµ¸ÞÀÎÀ» ÃëµæÇÕ´Ï´Ù.

  • string getPath(): ÄíŰÀÇ ÆÐ½º¸¦ ÃëµæÇÕ´Ï´Ù.µðÆúÆ®´Â '/' ÀÔ´Ï´Ù.

  • int getExpiryTime(): ÄíŰÀÇ À¯È¿±â°£À» UNIX ŸÀÓ ½ºÅÆÇÁ·Î ÃëµæÇÕ´Ï´Ù. ¼³Á¤µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì´Â NULL (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.

°Ô´Ù°¡ üũ¿ëÀÇ ¸Þ¼Òµåµµ Á¦°øµÇ°í ÀÖ½À´Ï´Ù.

  • boolean isSecure(): ÄíŰÀÇ ¼Û½ÅÀÌ ½ÃÅ¥¾î Á¢¼ÓÀ¸·Î ÇÑÁ¤µÇ°í ÀÖ´ÂÁö ¾î¶²Áö¸¦ Á¶»çÇÕ´Ï´Ù. ¿äÄÁµ¥, ¸¸¾à true (ÀÌ)¶ó¸é ±× ÄíŰ´Â HTTPS ±×¸®°í ¹Û¿¡ ¼Û½ÅµÇÁö ¾Ê´Â´Ù°í ÇÏ´Â °ÍÀÔ´Ï´Ù.

  • boolean isExpired(int $time = null): Äí۰¡ À¯È¿±â°£ Á¶°¢ÀÌ µÇ¾î ÀÖ´ÂÁö ¾î¶²Áö¸¦ Á¶»çÇÕ´Ï´Ù. À¯È¿±â°£ÀÌ ¼³Á¤µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì´Â, Ç×»ó true (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.$time (À»)¸¦ ÁöÁ¤Çϸé, ±× ¶§ °¢ÀÇ ½ÃÁ¡¿¡¼­ À¯È¿±â°£ Á¶°¢ÀÌ µÇ´ÂÁö ¾î¶²Áö¸¦ Á¶»çÇÕ´Ï´Ù.

  • boolean isSessionCookie(): Äí۰¡ " ¼¼¼Ç ÄíŰ" , Áï À¯È¿±â°£À» °¡ÁöÁö ¾Ê´Â ÄíŰ ( ¼¼¼Ç Á¾·á½Ã¿¡ ¹«È¿°¡ µÇ´Â ÄíŰ) ÀÏÁö¸¦ Á¶»çÇÕ´Ï´Ù.

·Ê 13.22. Zend_Http_Cookie ÀÇ °ÙŸ¸Þ¼ÚµåÀÇ »ç¿ë¹ý


<?php
//  ¿ì¼± Äí۸¦ ÀÛ¼ºÇÕ´Ï´Ù
$cookie Zend_Http_Client('foo=two+words; domain=.example.com; path=/somedir; secure; expires=Wednesday, 28-Feb-05 20:41:22 UTC');

echo 
$cookie->getName();   //  À̰ÍÀº 'foo'  (À»)¸¦ Ç¥½ÃÇÕ´Ï´Ù
echo $cookie->getValue();  //  À̰ÍÀº 'two words'  (À»)¸¦ Ç¥½ÃÇÕ´Ï´Ù
echo $cookie->getDomain(); //  À̰ÍÀº '.example.com'  (À»)¸¦ Ç¥½ÃÇÕ´Ï´Ù
echo $cookie->getPath();   //  À̰ÍÀº '/'  (À»)¸¦ Ç¥½ÃÇÕ´Ï´Ù

echo date('Y-m-d'$cookie->getExpiryTime()); 
//  À̰ÍÀº '2005-02-28'  (À»)¸¦ Ç¥½ÃÇÕ´Ï´Ù

echo ($cookie->isExpired() ? 'Yes' 'No');     
//  À̰ÍÀº 'Yes'  (À»)¸¦ Ç¥½ÃÇÕ´Ï´Ù

echo ($cookie->isExpired(strtotime('2005-01-01') ? 'Yes' 'No'); 
//  À̰ÍÀº 'No'  (À»)¸¦ Ç¥½ÃÇÕ´Ï´Ù

echo ($cookie->isSessionCookie() ? 'Yes' 'No'); 
//  À̰ÍÀº 'No'  (À»)¸¦ Ç¥½ÃÇÕ´Ï´Ù
?>

13.4.4. Zend_Http_Cookie ÇÏÁö¸¸ Á¶°Ç¿¡ ÀÏÄ¡ÇÒ °ÍÀÎÁö ¾î¶²Áö¸¦ Á¶»çÇÑ´Ù

Á¶»çÇϱâ À§Çؼ­ Zend_Http_Cookie ¿¡ Æ÷ÇԵǾî ÀÖ´Â °ÍÀº match() ¸Þ¼Òµå »ÓÀÔ´Ï´Ù. ÀÌ ¸Þ¼Òµå¸¦ »ç¿ëÇϰí, º¸³»·Á Çϰí ÀÖ´Ù HTTP ¸®Äù½ºÆ®¿¡ µé¾î¸Â´Â ÄíŰÀÏÁö¸¦ Á¶»çÇÕ´Ï´Ù. ±× °á°ú¿¡ ÀÇÇØ¼­, Äí۸¦ ÀÌ ¸®Äù½ºÆ®·Î ¼Û½ÅÇÒÁö°¡ Á¤ÇØÁý´Ï´Ù. ¸Þ¼ÒµåÀÇ ±¸¹®À̳ª ÆÄ¶ó¹ÌÅÍÀÇ ³»¿ëÀº ÀÌÇÏ´ë·ÎÀÔ´Ï´Ù. boolean Zend_Http_Cookie->match(mixed $uri, [boolean $matchSessionCookies, [int $now]]);

  • mixed $uri: Zend_Uri_Http ¿ÀºêÁ§Æ®·Î, µµ¸ÞÀÎÀ̳ª ÆÐ½ºÀÇ Ã¼Å©¿¡ »ç¿ëÇÕ´Ï´Ù.¿É¼ÇÀ¸·Î¼­ ¿Ã¹Ù¸¥ Çü½ÄÀÇ URL (À»)¸¦ ¹®ÀÚ¿­·Î °Ç³×ÁÙ ¼öµµ ÀÖ½À´Ï´Ù. ÁöÁ¤Çß´Ù URL ÀÇ ½ºÅ´ (HTTP ȤÀº HTTPS) , µµ¸ÞÀÎ ¹× ÆÐ½º°¡ ¸ðµÎ ÀÏÄ¡ÇßÀ» °æ¿ì¿¡°Ô¸¸, Äí۰¡ ¸ÅÄ¡ÇÕ´Ï´Ù.

  • boolean $matchSessionCookies: ¼¼¼Ç Äí۸¦ ¼º³ÉÀÇ ´ë»óÀ¸·Î ÇÒÁö. µðÆúÆ®´Â true ÀÔ´Ï´Ù.false (À¸)·Î ¼³Á¤Çϸé, À¯È¿±â°£ÀÇ ¼³Á¤µÇ¾î ÀÖÁö ¾ÊÀº ÄíŰ´Â ¸ÅÄ¡ÇÏÁö ¾Ê½À´Ï´Ù.

  • int $now: ÄíŰÀÇ À¯È¿±â°£À» üũÇÏ´Â ±âÁØÀÌ µÇ´Â ½Ã°¢ (UNIX ŸÀÓ ½ºÅÆÇÁ Çü½Ä) .ÁöÁ¤ÇÏÁö ¾Ê´Â °æ¿ìÀÇ µðÆúÆ®´Â, ÇöÀç ½Ã°¢ÀÔ´Ï´Ù.

·Ê 13.23. Äí۰¡ ¸ÅÄ¡ÇÒÁöÀÇ È®ÀÎ


<?php
//  ¿ì¼± ÄíŰ ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇÕ´Ï´Ù.À̰ÍÀº ½ÃÅ¥¾îÀÎ ¼¼¼Ç ÄíŰÀÔ´Ï´Ù.
$cookie Zend_Http_Client('foo=two+words; domain=.example.com; path=/somedir; secure;');

$cookie->match('https://www.example.com/somedir/foo.php'); 
//  À̰ÍÀº true  (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.

$cookie->match('http://www.example.com/somedir/foo.php'); 
//  À̰ÍÀº false  (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.Á¢¼ÓÀÌ ½ÃÅ¥¾î°¡ ¾Æ´Ï±â ¶§¹®ÀÔ´Ï´Ù.

$cookie->match('https://otherexample.com/somedir/foo.php'); 
//  À̰ÍÀº false  (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.µµ¸ÞÀÎÀÌ Â÷À̰¡ ³ª±â ¶§¹®ÀÔ´Ï´Ù.

$cookie->match('https://example.com/foo.php'); 
//  À̰ÍÀº false  (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.ÆÐ½º°¡ Â÷À̰¡ ³ª±â ¶§¹®ÀÔ´Ï´Ù.

$cookie->match('https://www.example.com/somedir/foo.php'false); 
//  À̰ÍÀº false  (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.¼¼¼Ç ÄíŰ´Â ¼º³É ½ÃŰÁö ¾Ê°Ô Çϰí Àֱ⠶§¹®ÀÔ´Ï´Ù.

$cookie->match('https://sub.domain.example.com/somedir/otherdir/foo.php'); 
//  À̰ÍÀº true  (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.

//  ´Ù¸¥ ÄíŰ ¿ÀºêÁ§Æ®¸¦ ÀÛ¼ºÇÕ´Ï´Ù.À̹øÀº ½ÃÅ¥¾î°¡ ¾Æ´Ï°í, 2½Ã°£¿¡ À¯È¿±â°£ Á¶°¢ÀÌ µË´Ï´Ù.
$cookie Zend_Http_Client('foo=two+words; domain=www.example.com; expires=' date(DATE_COOKIEtime() + 7200);

$cookie->match('http://www.example.com/');
//  À̰ÍÀº true  (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.

$cookie->match('https://www.example.com/');
//  À̰ÍÀº true  (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.½ÃÅ¥¾î°¡ ¾Æ´Ñ ÄíŰ´Â, ½ÃÅ¥¾îÀÎ Åë½Å¿¡¼­µµ ¼Û½ÅµË´Ï´Ù!

$cookie->match('http://subdomain.example.com/');
//  À̰ÍÀº false  (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.µµ¸ÞÀÎÀÌ Â÷À̰¡ ³ª±â ¶§¹®ÀÔ´Ï´Ù.

$cookie->match('http://www.example.com/'truetime() + (3600));
//  À̰ÍÀº false  (À»)¸¦ µ¹·ÁÁÝ´Ï´Ù.Áö±ÝºÎÅÍ 3½Ã°£ Èĸ¦ ½Ã°¢À» ÁöÁ¤Ç߱⠶§¹®¿¡ÀÔ´Ï´Ù.
?>

13.4.5. Zend_Http_CookieJar ÀÇ ÀνºÅϽºÀÇ ÀÛ¼º

Zend_Http_CookieJar ÀÇ ÀνºÅϽº¸¦ Á÷Á¢ ÀÛ¼ºÇÒ ÇÊ¿ä´Â, ¿ì¼± ¾ø½À´Ï´Ù. »õ·Î¿î ÄíŰ Àü±â¹äÅëÀ» Zend_Http_Client ¿ÀºêÁ§Æ®¿¡ ¾ÆÅ¿Ä¡ ÇÏ·Á¸é , ´ÜÁö Zend_Http_Client->setCookieJar() ¸Þ¼Òµå¸¦ ÄÝ Çϸé ÁÁ½À´Ï´Ù.À̰ÍÀ¸·Î, »õ·Î¿î ÇÏ´ÃÀÇ ÄíŰ Àü±â¹äÅëÀÌ Å¬¶óÀÌ¾ðÆ®¿¡ Ãß°¡µË´Ï´Ù.ÀÌ ÄíŰ Àü±â¹äÅëÀ» ÃëµæÇÏ·Á¸é Zend_Http_Client->getCookieJar() (À»)¸¦ »ç¿ëÇÕ´Ï´Ù.

±×·±µ¥µµ ¿ª½Ã ½º½º·Î CookieJar ÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇÏ°í ½Í´Ù°í ÇÑ´Ù¸é, "new Zend_Http_CookieJar()" (¿Í)°ú Á÷Á¢ ÄÝ ÇØ ÁÖ¼¼¿ä. constructor¡¡ ¡¡ ¿¡´Â Àμö¸¦ ¾Æ¹«°Íµµ ÁöÁ¤ÇÏÁö ¾Ê½À´Ï´Ù.ÀνºÅϽº¸¦ ÀÛ¼ºÇÏ´Â ¶Ç ÇϳªÀÇ ¹æ¹ýÀ¸·Î¼­´Â, Á¤Àû ¸Þ¼Òµå Zend_Http_CookieJar::fromResponse() (À»)¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ÀÖ½À´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â µÎ °³ÀÇ ÆÄ¶ó¹ÌÅ͸¦ ¹Þ½À´Ï´Ù.¿ì¼± ÃÖÃʰ¡ Zend_Http_Response ¿ÀºêÁ§Æ®, ±×¸®°í µÑ°´Â ÂüÁ¶Ã³ URI ±×¸®°í, À̰ÍÀº ¹®ÀÚ¿­ ȤÀº Zend_Uri_Http ¿ÀºêÁ§Æ®ÀÇ ¸ÓÁö¾Ê¾ÆÀΰ¡ÀÔ´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â »õ·Ó´Ù Zend_Http_CookieJar ¿ÀºêÁ§Æ®¸¦ µ¹·ÁÁÝ´Ï´Ù. ÀÌ ¿ÀºêÁ§Æ®¿¡´Â, ÁöÁ¤Çß´Ù HTTP ¸®½ºÆù½º¿¡ ÀÇÇØ¼­ ¼³Á¤µÈ Äí۰¡ ÀÌ¹Ì Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. ÄíŰÀÇ µµ¸ÞÀΰú ÆÐ½º°¡ Set-Cookie Çì´õ·Î ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì´Â, ÂüÁ¶Ã³ URI (À»)¸¦ »ç¿ëÇØ ¼³Á¤ÇÕ´Ï´Ù.

13.4.6. Zend_Http_CookieJar ¿ÀºêÁ§Æ®¿¡ÀÇ ÄíŰÀÇ Ãß°¡

Åë»óÀº,CookieJar ¿ÀºêÁ§Æ®¸¦ Ãß°¡Çß´Ù Zend_Http_Client ¿ÀºêÁ§Æ®°¡ ÀÚµ¿ÀûÀ¸·Î 󸮸¦ ½Ç½ÃÇØ, HTTP ¸®½ºÆù½º·Î ¼³Á¤µÈ Äí۸¦ Àü±â¹äÅë¿¡ Ãß°¡ÇØ ÁÝ´Ï´Ù. ½º½º·Î Äí۸¦ Àü±â¹äÅë¿¡ Ãß°¡ÇÏ·Á¸é , 2Åë¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.

  • Zend_Http_CookieJar->addCookie($cookie[, $ref_uri]): ´ÜÀÏÀÇ Äí۸¦ Àü±â¹äÅë¿¡ Ãß°¡ÇÕ´Ï´Ù.$cookie ¿¡´Â Zend_Http_Cookie ¿ÀºêÁ§Æ® ȤÀº ¹®ÀÚ¿­À» ÁöÁ¤ÇÕ´Ï´Ù.¹®ÀÚ¿­Àº ÀÚµ¿ÀûÀ¸·Î Cookie ¿ÀºêÁ§Æ®¿¡ º¯È¯µË´Ï´Ù.¹®ÀÚ¿­À» ÁöÁ¤ÇÏ´Â °æ¿ì´Â, µ¿½Ã¿¡ $ref_uri µµ ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.À̰ÍÀº ÂüÁ¶Ã³ URI ±×¸®°í, ¹®ÀÚ¿­ ȤÀº Zend_Uri_Http ¿ÀºêÁ§Æ®¸¦ °Ç³×ÁÝ´Ï´Ù.À̰ÍÀ» ±âÃÊ·Î ÇØ¼­, ÄíŰÀÇ µðÆúÆ®ÀÇ µµ¸ÞÀΰú ÆÐ½º¸¦ °áÁ¤ÇÕ´Ï´Ù.

  • Zend_Http_CookieJar->addCookiesFromResponse($response, $ref_uri): HTTP ¸®½ºÆù½º³»ÀÇ ¸ðµç Äí۸¦ Àü±â¹äÅë¿¡ Ãß°¡ÇÕ´Ï´Ù. $response ÇÏ Set-Cookie Çì´õÆ÷ÇÔÀÇ Zend_Http_Response ¿ÀºêÁ§Æ®ÀÔ´Ï´Ù. $ref_uri (Àº)´Â ÂüÁ¶Ã³ URI ±×¸®°í, ¹®ÀÚ¿­ ȤÀº Zend_Uri_Http ¿ÀºêÁ§Æ®°¡ µË´Ï´Ù. À̰ÍÀ» ±âÃÊ·Î ÇØ¼­, ÄíŰÀÇ µðÆúÆ®ÀÇ µµ¸ÞÀΰú ÆÐ½º¸¦ °áÁ¤ÇÕ´Ï´Ù.

13.4.7. Zend_Http_CookieJar ¿ÀºêÁ§Æ®·ÎºÎÅÍÀÇ ÄíŰÀÇ Ãëµæ

Äí۸¦ Ãß°¡ÇÏ´Â °æ¿ì¿Í °°ÀÌ, Äí۸¦ Àü±â¹äÅëÀ¸·ÎºÎÅÍ ÃëµæÇÏ´Â ÀÛ¾÷¿¡ ´ëÇØ¼­µµ Åë»óÀº ¼öµ¿À¸·Î ½Ç½ÃÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù.Zend_Http_Client ¿ÀºêÁ§Æ®´Â, ±× HTTP ¸®Äù½ºÆ®·Î ÇÊ¿äÇÑ Äí۸¦ ÀÚµ¿ÀûÀ¸·Î ÃëµæÇÕ´Ï´Ù. ±×·¸Áö¸¸, Àü±â¹äÅëÀ¸·ÎºÎÅÍ ¼öµ¿À¸·Î Äí۸¦ ÃëµæÇϱâ À§ÇÑ ¹æ¹ýµµ Á¦°øµÇ°í ÀÖ½À´Ï´Ù. getCookie() , getAllCookies() ¹× getMatchingCookies() ÀÇ 3°Å¸®ÀÇ ¹æ¹ýÀÔ´Ï´Ù.

ÁÖÀÇÇØ¾ß ÇÒ Á¡Àº, ÀÌ·¯ÇÑ ¸Þ¼Òµå°¡ Ưº°ÇÑ ÆÄ¶ó¹ÌÅ͸¦ ¹Þ°Ô µÇ¾î ÀÖ´Â °ÍÀÔ´Ï´Ù. ÀÌ ÆÄ¶ó¹ÌÅÍ·Î, ¸Þ¼ÒµåÀÇ µ¹¾Æ°¡ °ªÀÇ ÇüŸ¦ ÁöÁ¤ÇÕ´Ï´Ù. ÁöÁ¤ÇÒ ¼ö ÀÖ´Â °ªÀº ´ÙÀ½ÀÇ 3Á¾·ùÀÔ´Ï´Ù.

  • Zend_Http_CookieJar::COOKIE_OBJECT: Zend_Http_Cookie ¿ÀºêÁ§Æ®¸¦ µ¹·ÁÁÝ´Ï´Ù. µ¹·ÁÁÖ¾îÁö´Â Äí۰¡ º¹¼öÀÇ °æ¿ì´Â, ¿ÀºêÁ§Æ®ÀÇ ¹è¿­À» µ¹·ÁÁÝ´Ï´Ù.

  • Zend_Http_CookieJar::COOKIE_STRING_ARRAY: "foo=bar" Çü½ÄÀÇ ¹®ÀÚ¿­À» µ¹·ÁÁÝ´Ï´Ù.À̰ÍÀº,HTTP ¸®Äù½ºÆ®ÀÇ "Cookie" Çì´õ·Î »ç¿ëÇÒ ¼ö ÀÖ´Â Çü½ÄÀÔ´Ï´Ù. µ¹·ÁÁÖ¾îÁö´Â Äí۰¡ º¹¼öÀÇ °æ¿ì´Â, ¹®ÀÚ¿­ÀÇ ¹è¿­À» µ¹·ÁÁÝ´Ï´Ù.

  • Zend_Http_CookieJar::COOKIE_STRING_CONCAT: COOKIE_STRING_ARRAY (¿Í)°ú ´à¾Æ ÀÖ½À´Ï´Ù¸¸, µ¹·ÁÁÖ¾îÁö´Â Äí۰¡ º¹¼öÀÇ °æ¿ì¿¡´Â ±×°ÍµéÀ» ÇϳªÀÇ ±ä ¹®ÀÚ¿­¿¡ ¿¬°áÇØ µ¹·ÁÁÝ´Ï´Ù. ´Ü¶ô ¹®ÀÚ´Â ¼¼¹ÌÄÝ·Ð (;) µË´Ï´Ù. À̰ÍÀº, ¸ÅÄ¡ÇÏ´Â ¸ðµç Äí۸¦ ´ÜÀÏÀÇ HTTP ¸®Äù½ºÆ® Çì´õ "Cookie" ±×¸®°í ¼Û½ÅÇÏ°í ½ÍÀº °æ¿ì¿¡ ¸Å¿ì Æí¸®ÇÕ´Ï´Ù.

ÄíŰ ÃëµæÀ» À§ÇÑ ´Ù¾çÇÑ ¸Þ¼ÒµåÀÇ °Í¿¡ ÀÓÇØ¼­ ¼³¸íÇÕ´Ï´Ù.

  • Zend_Http_CookieJar->getCookie($uri, $cookie_name[, $ret_as]): ±× URI ( µµ¸ÞÀÎ ¹× ÆÐ½º) (¿Í)°ú À̸§¿¡ ÀǰÅÇϰí, Àü±â¹äÅëÀ¸·ÎºÎÅÍ ´ÜÀÏÀÇ Äí۸¦ ÃëµæÇÕ´Ï´Ù. $uri (Àº)´Â ¹®ÀÚ¿­Àΰ¡ Zend_Uri_Http ¿ÀºêÁ§Æ®·Î,URI (À»)¸¦ ³ªÅ¸³À´Ï´Ù. $cookie_name (Àº)´Â Äí۸íÀ» ³ªÅ¸³»´Â ¹®ÀÚ¿­ÀÔ´Ï´Ù. $ret_as (Àº)´Â ¹æ±ÝÀü ¼³¸íÇÑ °Íó·³ µ¹¾Æ°¡ °ªÀÇ ÇüŸ¦ ÁöÁ¤ÇÕ´Ï´Ù. $ret_type (Àº)´Â ¿É¼ÇÀ¸·Î, µðÆúÆ®´Â COOKIE_OBJECT ÀÔ´Ï´Ù.

  • Zend_Http_CookieJar->getAllCookies($ret_as): Àü±â¹äÅëÀ¸·ÎºÎÅÍ ¸ðµç Äí۸¦ ÃëµæÇÕ´Ï´Ù. $ret_as (Àº)´Â ¹æ±ÝÀü ¼³¸íÇÑ °Íó·³ µ¹¾Æ°¡ °ªÀÇ ÇüŸ¦ ÁöÁ¤ÇÕ´Ï´Ù. ÁöÁ¤ÇÏÁö ¾Ê¾Ò´ø °æ¿ìÀÇ $ret_type ÀÇ µðÆúÆ®´Â,COOKIE_OBJECT µË´Ï´Ù.

  • Zend_Http_CookieJar->getMatchingCookies($uri[, $matchSessionCookies[, $ret_as[, $now]]]): ÁöÁ¤ÇÑ Á¶°ÇÀ» ä¿ì´Â ¸ðµç Äí۸¦ Àü±â¹äÅëÀ¸·ÎºÎÅÍ ÃëµæÇÕ´Ï´Ù. Á¶°ÇÀ¸·Î¼­ ÁöÁ¤ÇÏ´Â °ÍÀº,URI ¹× À¯È¿±â°£ÀÔ´Ï´Ù.

    • $uri ÇÏ Zend_Uri_Http ¿ÀºêÁ§Æ® ȤÀº ¹®ÀÚ¿­ÀÔ´Ï´Ù. Á¢¼Ó Çü½Ä ( ½ÃÅ¥¾îÀΰ¡ ±×·¸Áö ¾ÊÀº°¡) , µµ¸ÞÀÎ ¹× ÆÐ½ºÀÇ Á¶°ÇÀ» ÁöÁ¤ÇÕ´Ï´Ù.

    • $matchSessionCookies ÇÏ boolean °ªÀ¸·Î, ¼¼¼Ç Äí۸¦ Æ÷ÇÔÇÒÁö¸¦ ÁöÁ¤ÇÕ´Ï´Ù. ¼¼¼Ç Äí۶õ, À¯È¿±â°£ÀÌ ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀº ÄíŰÀÔ´Ï´Ù. µðÆúÆ®´Â true ÀÔ´Ï´Ù.

    • $ret_as (Àº)´Â, ¹æ±ÝÀü ¼³¸íÇÑ °Íó·³ µ¹¾Æ°¡ °ªÀÇ ÇüŸ¦ ÁöÁ¤ÇÕ´Ï´Ù. ÁöÁ¤ÇÏÁö ¾Ê¾Ò´ø °æ¿ìÀÇ µðÆúÆ®´Â COOKIE_OBJECT ÀÔ´Ï´Ù.

    • $now (Àº)´Â Á¤¼öÄ¡·Î ³ªÅ¸³Â´Ù UNIX ŸÀÓ ½ºÅÆÇÁ·Î, À̰ÍÀ» " ÇöÀç ½Ã°¢" (À¸)·Î¼­ Ãë±ÞÇÕ´Ï´Ù. À¯È¿±â°£ÀÌ ÀÌ ½Ã°¢º¸´Ù ÀüÀ¸·Î ¼³Á¤µÇ¾î ÀÖ´Â ÄíŰ´Â ¸ÅÄ¡ÇÏÁö ¾Ê½À´Ï´Ù. ÁöÁ¤ÇÏÁö ¾Ê¾Ò´ø °æ¿ìÀÇ µðÆúƮġ´Â, ÇöÀç ½Ã°¢ÀÔ´Ï´Ù.

    ÄíŰÀÇ ¸ÅÄ¡ ¹æ¹ý¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ °ÍÀº Ç×13.4.4. ¡¸Zend_Http_Cookie ÇÏÁö¸¸ Á¶°Ç¿¡ ÀÏÄ¡ÇÒ °ÍÀÎÁö ¾î¶²Áö¸¦ Á¶»çÇÑ´Ù¡¹ (À»)¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ.