Á¦13 Àå Zend_Http

¸ñÂ÷

13.1. Zend_Http_Client - µµÀÔ
13.1.1. µµÀÔ
13.1.2. ¼³Á¤ ÆÄ¶ó¹ÌÅÍ
13.1.3. ±âº»ÀûÀÎ HTTP ¸®Äù½ºÆ®ÀÇ Ã³¸®
13.1.4. GET (ÀÌ)³ª POST ¿¡ÀÇ ÆÄ¶ó¹ÌÅÍÀÇ Ãß°¡
13.2. Zend_Http_Client - °íµµÀÇ »ç¿ë¹ý
13.2.1. HTTP ¸®µð·ºÆ®
13.2.2. ÄíŰÀÇ Ãß°¡ ¹× Áö¼ÓÀûÀÎ ÄíŰÀÇ »ç¿ë
13.2.3. µ¶ÀÚÀûÀÎ ¸®Äù½ºÆ® Çì´õÀÇ ¼³Á¤
13.2.4. ÆÄÀÏÀÇ ¾÷ ·Îµå
13.2.5. »ýÀÇ POST µ¥ÀÌÅÍÀÇ ¼Û½Å
13.2.6. HTTP ÀÎÁõ
13.2.7. µ¿ÀÏ Å¬¶óÀÌ¾ðÆ®·ÎÀÇ º¹¼ö ¸®Äù½ºÆ®ÀÇ ¼Û½Å
13.3. Zend_Http_Client - Á¢¼Ó ¾î´ðÅÍ
13.3.1. °³¿ä
13.3.2. ¼ÒÄÏ ¾î´ðÅÍ
13.3.3. ÇÁ·Ï½Ã ¾î´ðÅÍ
13.3.4. Å×½ºÆ® ¾î´ðÅÍ
13.3.5. µ¶ÀÚÀûÀÎ Á¢¼Ó ¾î´ðÅÍÀÇ ÀÛ¼º
13.4. Zend_Http_Cookie ¹× Zend_Http_CookieJar
13.4.1. µµÀÔ
13.4.2. Zend_Http_Cookie ÀÇ ÀνºÅϽºÀÇ ÀÛ¼º
13.4.3. Zend_Http_Cookie ÀÇ °ÙŸ¸Þ¼Úµå
13.4.4. Zend_Http_Cookie ÇÏÁö¸¸ Á¶°Ç¿¡ ÀÏÄ¡ÇÒ °ÍÀÎÁö ¾î¶²Áö¸¦ Á¶»çÇÑ´Ù
13.4.5. Zend_Http_CookieJar ÀÇ ÀνºÅϽºÀÇ ÀÛ¼º
13.4.6. Zend_Http_CookieJar ¿ÀºêÁ§Æ®¿¡ÀÇ ÄíŰÀÇ Ãß°¡
13.4.7. Zend_Http_CookieJar ¿ÀºêÁ§Æ®·ÎºÎÅÍÀÇ ÄíŰÀÇ Ãëµæ
13.5. Zend_Http_Response
13.5.1. µµÀÔ
13.5.2. ÁøÀ§ üũ¿ëÀÇ ¸Þ¼Òµå
13.5.3. ¾×¼¼½º¿ë ¸Þ¼Òµå±º
13.5.4. Á¤Àû HTTP ¸®½ºÆù½º ÆÄ¼­

13.1. Zend_Http_Client - µµÀÔ

13.1.1. µµÀÔ

Zend_Http_Client (Àº)´Â,Hyper-Text Transfer Protocol (HTTP) ¸®Äù½ºÆ®¸¦ °£´ÜÇÏ°Ô Ãë±ÞÇϱâ À§ÇÑ ÀÎÅÍÆäÀ̽º¸¦ Á¦°øÇÕ´Ï´Ù. Zend_Http_Client (Àº)´Â,HTTP Ŭ¶óÀÌ¾ðÆ®·Î¼­ÀÇ ÃÖÀúÇÑÀÇ ±â´ÉÀ» ¼­Æ÷Æ®Çϰí ÀÖÀ» »Ó¸¸ ¾Æ´Ï¶ó, HTTP ÀÎÁõÀ̳ª ÆÄÀÏÀÇ ¾÷ ·Îµå¶ó°í ÇÑ °íµµÀÇ ±â´Éµµ ¼­Æ÷Æ®Çϰí ÀÖ½À´Ï´Ù. ¸®Äù½ºÆ®¿¡ ¼º°øÇϸé ( ½ÇÆÐÇØµµ) Zend_Http_Response ¿ÀºêÁ§Æ®¸¦ µ¹·ÁÁÝ´Ï´Ù.À̰ÍÀ» »ç¿ëÇϸé, ¸®½ºÆù½ºÀÇ Çì´õ³ª º»¹®¿¡ ¾×¼¼½º ÇÒ ¼ö ÀÖ½À´Ï´Ù ( Ç×13.5. ¡¸Zend_Http_Response ¡¹ (À»)¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ) .

Ŭ·¡½ºÀÇ constructor¡¡ ¡¡ ¿¡´Â, ¿É¼ÇÀÇ Àμö·Î¼­ URL (À»)¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù ( ¹®ÀÚ¿­Àΰ¡ Zend_Uri_Http ¿ÀºêÁ§Æ®ÀÇ ¾îµð¶óµµ °¡´ÉÇÕ´Ï´Ù) . ¶Ç, ¿É¼ÇÀ¸·Î ¼³Á¤ ÆÄ¶ó¹ÌÅÍÀÇ ¹è¿­À» ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ¾î´ÀÂÊÀ̳ª »ý·« ÇÏ´Â °ÍÀÌ °¡´ÉÇϰí, ±× °æ¿ì´Â ³ªÁß¿¡ setUri() ¸Þ¼Òµå³ª setConfig() ¸Þ¼Òµå·Î ÁöÁ¤ÇÕ´Ï´Ù.

·Ê 13.1. Zend_Http_Client ÀÇ ÀνºÅϽºÀÇ ÀÛ¼º


<?php
    
require_once 'Zend/Http/Client.php';

    
$client = new Zend_Http_Client('http://example.org', array(
        
'maxredirects' => 0,
        
'timeout'      => 30));
        
    
//  À̰ÍÀº, À§¿Í ¿ÏÀüÈ÷ °°Àº °ÍÀÔ´Ï´Ù
    
$client = new Zend_Http_Client();
    
$client->setUri('http://example.org');
    
$client->setConfig(array(
        
'maxredirects' => 0,
        
'timeout'      => 30));

?>

13.1.2. ¼³Á¤ ÆÄ¶ó¹ÌÅÍ

constructor¡¡ ¡¡ ¹× setConfig() ¸Þ¼Òµå¿¡¼­´Â ¼³Á¤ ÆÄ¶ó¹ÌÅÍÀÇ ¿¬»ó ¹è¿­À» ¹Þ½À´Ï´Ù. ÀÌ·¯ÇÑ ÆÄ¶ó¹ÌÅÍ´Â, ¼³Á¤Çصµ ÇÏÁö ¾Ê¾Æµµ ±¦Âú½À´Ï´Ù. ¸ðµç ÆÄ¶ó¹ÌÅÍ¿¡´Â µðÆúƮġ°¡ ÀÖ½À´Ï´Ù.

Ç¥ 13.1. Zend_Http_Client ÀÇ ¼³Á¤ ÆÄ¶ó¹ÌÅÍ

ÆÄ¶ó¹ÌÅÍ ¼³¸í ±â´ëÇÏ´Â °ª µðÆúƮġ
maxredirects ¸®µð·ºÆ®¸¦ ´õµë´Â ÃÖ´ë¼ö (0 = ´õµëÁö ¾Ê´Â´Ù) integer 5
strictredirects ¸®µð·ºÆ® ½Ã¿¡ RFC ¿¡ ¾ö¹ÐÇÏ°Ô µû¸¦Áö ( Ç×13.2.1. ¡¸HTTP ¸®µð·ºÆ®¡¹ (À»)¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ) boolean false
useragent À¯Àú ¿¡ÀÌÀüÆ®¸¦ ³ªÅ¸³»´Â ¹®ÀÚ¿­ ( ¸®Äù½ºÆ® Çì´õ¿¡ ºÎ°¡µË´Ï´Ù) string 'Zend_Http_Client'
timeout Á¢¼Ó ŸÀÓ ¾Æ¿ôÃʼö integer 10
httpversion HTTP ÇÁ·ÎÅäÄÝÀÇ ¹öÁ¯ float (1.1 ȤÀº 1.0) 1.1
adapter »ç¿ëÇÏ´Â Á¢¼Ó ¾î´ðÅÍ Å¬·¡½º ( Ç×13.3. ¡¸Zend_Http_Client - Á¢¼Ó ¾î´ðÅÍ¡¹ (À»)¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ) mixed 'Zend_Http_Client_Adapter_Socket'
keepalive ¼­¹ö¿ÍÀÇ keep-alive Á¢¼ÓÀ» À¯È¿ÇÏ°Ô ÇÒÁö. µ¿ÀÏ ¼­¹ö¿¡ ¿¬¼ÓÇØ ¸®Äù½ºÆ®°¡ ¹ß»ýÇÏ´Â °æ¿ì µî¿¡ Æí¸®Çϰí, ¼º´ÉÀ» Çâ»ó½Ã۰ÚÁö¿ä. boolean false

13.1.3. ±âº»ÀûÀÎ HTTP ¸®Äù½ºÆ®ÀÇ Ã³¸®

½ÉÇÃÇÑ HTTP ¸®Äù½ºÆ®¸¦ ½ÇÇàÇÏ´Â °ÍÀº ¸Å¿ì °£´ÜÇϰí, ´ÜÁö request() ¸Þ¼Òµå¸¦ ½ÇÇàÇÒ »ÓÀÔ´Ï´Ù.°Ü¿ì 3°³ ÀºÇàÀ¸·Î ÇØ°áµÇ¾î ¹ö¸³´Ï´Ù.

·Ê 13.2. ½ÉÇÃÇÑ GET ¸®Äù½ºÆ®ÀÇ Ã³¸®


<?php
    
require_once 'Zend/Http/Client.php';

    
$client = new Zend_Http_Client('http://example.org');
    
$response $client->request();
?>

request() ¸Þ¼Òµå¿¡´Â, ¿É¼ÇÀ¸·Î ÆÄ¶ó¹ÌÅ͸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ÆÄ¶ó¹ÌÅÍ´Â ¸®Äù½ºÆ® ¸Þ¼Òµå·Î,HTTP ÇÁ·ÎÅäÄÝ·Î Á¤Àǵǰí ÀÖ´Ù GET ,POST ,PUT ,HEAD ,DELETE ,TRACE ,OPTIONS ±×¸®°í CONNECT ÀÇ ¾î´ÀÂÊÀ̵çÀ» ÁöÁ¤ °¡´ÉÇÕ´Ï´Ù. [1]. Æí¸®¼ºÀ» ³ôÀ̱â À§ÇØ, À̰͵éÀº ¸ðµÎ Ŭ·¡½º Á¤¼ö·Î¼­ Á¤Àǵǰí ÀÖ½À´Ï´Ù.¿¹¸¦ µé¾î Zend_Http_Request::GET ,Zend_Http_Request::POST µî°ú °°ÀÌ µÇ¾î ÀÖ½À´Ï´Ù.

¸Þ¼Òµå¸¦ ÁöÁ¤ÇÏÁö ¾Ê´Â °æ¿ì´Â, ¹Ù·Î ¿·ÀÇ setMethod() ÄÝ·Î ÁöÁ¤µÈ ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù. setMethod() µµ ÄÝ µÇ¾î ÀÖÁö ¾ÊÀº °æ¿ì´Â, µðÆúÆ®ÀÇ ¸®Äù½ºÆ® ¸Þ¼Òµå·Î¼­ GET (À»)¸¦ »ç¿ëÇÕ´Ï´Ù ( À§ÀÇ ¿¹¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ) .

·Ê 13.3. GET ÀÌ¿ÜÀÇ ¸®Äù½ºÆ® ¸Þ¼ÒµåÀÇ »ç¿ë


<?php
    
// POST  ¸®Äù½ºÆ®¸¦ ½ÇÇàÇÕ´Ï´Ù
    
$response $client->request('POST');
    
    
// POST  ¸®Äù½ºÆ®¸¦ ½ÇÇàÇϱâ À§ÇÑ ¶Ç ÇϳªÀÇ ¹æ¹ýÀÔ´Ï´Ù
    
$client->setMethod(Zend_Http_Client::POST);
    
$response $client->request();
?>

13.1.4. GET (ÀÌ)³ª POST ¿¡ÀÇ ÆÄ¶ó¹ÌÅÍÀÇ Ãß°¡

GET ÆÄ¶ó¹ÌÅ͸¦ HTTP ¸®Äù½ºÆ®¿¡ Ãß°¡ÇÏ´Â °ÍÀº °£´ÜÇÕ´Ï´Ù. URL ÀÇ ÀϺημ­ ÁöÁ¤Çϵ簡, ȤÀº setParameterGet() ¸Þ¼Òµå¸¦ »ç¿ëÇÕ´Ï´Ù. ÀÌ ¸Þ¼Òµå´Â,GET ÆÄ¶ó¹ÌÅÍÀÇ À̸§À» ÃÖÃÊÀÇ Àμö, ±×¸®°í GET ÆÄ¶ó¹ÌÅÍÀÇ °ªÀ» µÎ¹øÂ°ÀÇ Àμö·Î¼­ ¹Þ½À´Ï´Ù. ÇÑÃþ ´õ Æí¸®ÇÏ°Ô »ç¿ëÇϱâ À§ÇØ(¶§¹®¿¡),setParameterGet() ¸Þ¼Òµå¿¡¼­´Â name => value Çü½ÄÀÇ ¿¬»ó ¹è¿­·Î GET º¯¼ö¸¦ ÁöÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. À̰ÍÀº, º¹¼öÀÇ GET ÆÄ¶ó¹ÌÅ͸¦ ÁöÁ¤ÇÒ Çʿ䰡 ÀÖ´Â °æ¿ì¿¡ Æí¸®ÇÕ´Ï´Ù.

·Ê 13.4. GET ÆÄ¶ó¹ÌÅÍÀÇ ¼³Á¤


<?php
    
// setParameterGet  ¸Þ¼Òµå·Î GET  ÆÄ¶ó¹ÌÅ͸¦ ÁöÁ¤ÇÕ´Ï´Ù
    
$client->setParameterGet('knight''lancelot');

    
//  ÀÌ·¯ÇÑ URL  (À»)¸¦ ÁöÁ¤ÇÏ´Â °Í°ú °°Àº °ÍÀÔ´Ï´Ù
    
$client->setUri('http://example.com/index.php?knight=lancelot');
    
    
//  º¹¼öÀÇ ÆÄ¶ó¹ÌÅ͸¦ ÇÑ ¹ø¿¡ Ãß°¡ÇÕ´Ï´Ù
    
$client->setParameterGet(array(
        
'first_name'  => 'Bender',
        
'middle_name' => 'Bending'
        'made_in'     
=> 'Mexico',
    ));
?>

GET ÆÄ¶ó¹ÌÅÍ´Â ¸ðµç ¸®Äù½ºÆ® ¸Þ¼Òµå·Î ¼Û½ÅÇÒ ¼ö ÀÖ½À´Ï´Ù¸¸, POST ÆÄ¶ó¹ÌÅÍ´Â POST ¸®Äù½ºÆ®ÀÇ º»¹®À¸·Î¼­ ¹Û¿¡ ¼Û½ÅÇÒ ¼ö ¾ø½À´Ï´Ù. POST ÆÄ¶ó¹ÌÅ͸¦ ¸®Äù½ºÆ®¿¡ Ãß°¡ÇÏ´Â ¹æ¹ýÀº,GET ÆÄ¶ó¹ÌÅ͸¦ Ãß°¡ÇÏ´Â °æ¿ì¿Í ¸Å¿ì ´à¾Ò½À´Ï´Ù. »ç¿ëÇÏ´Â °ÍÀº setParameterPost() ¸Þ¼Òµå·Î, ÀÌ ¸Þ¼ÒµåÀÇ »ç¿ë¹ýÀº setParameterGet() ¸Þ¼Òµå¿Í °°½À´Ï´Ù.

·Ê 13.5. POST ÆÄ¶ó¹ÌÅÍÀÇ ¼³Á¤


<?php
    
// POST  ÆÄ¶ó¹ÌÅ͸¦ ¼³Á¤ÇÕ´Ï´Ù
    
$client->setParameterPost('language''fr');
    
    
//  º¹¼öÀÇ POST  ÆÄ¶ó¹ÌÅ͸¦ ¼³Á¤ÇÕ´Ï´Ù.±× ÁßÀÇ Çϳª´Â º¹¼öÀÇ °ªÀ» °¡Áý´Ï´Ù.
    
$client->setParameterPost(array(
        
'language'  => 'es',
        
'country'   => 'ar',
        
'selection' => array(453280)
    ));
?>

POST ¸®Äù½ºÆ®¸¦ ¼Û½ÅÇÒ ¶§ ,GET ÆÄ¶ó¹ÌÅÍ¿Í POST ÆÄ¶ó¹ÌÅÍÀÇ ¾çÂÊ ¸ðµÎ¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ´Â °Í¿¡ ÁÖÀÇÇսôÙ. ÇÑÆí,POST ÆÄ¶ó¹ÌÅ͸¦ POST ÀÌ¿ÜÀÇ ¸®Äù½ºÆ®·Î ÁöÁ¤Çصµ ¾î¶² ¿¡·¯µµ ¹ß»ýÇÏÁö ¾Ê½À´Ï´Ù¸¸, À̰ÍÀº ¹«ÀǹÌÇÕ´Ï´Ù.POST ÀÌ¿ÜÀÇ ¸®Äù½ºÆ®¿¡¼­´Â, POST ÆÄ¶ó¹ÌÅ͸¦ ÁöÁ¤Çصµ ¹«½ÃµË´Ï´Ù.



[1] RFC 2616 - http://www.w3.org/Protocols/rfc2616/rfc2616.html (À»)¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ.