Re: Redirect (and cookies) support in HTTP_Request2 / HTTP_Client2?
| From: | till | Date: | Sun, 01 Nov 2009 16:30:11 +0000 |
| Subject: | Re: Redirect (and cookies) support in HTTP_Request2 / HTTP_Client2? | ||
| References: | 1 | Groups: | php.pear.dev |
| Request: | Send a blank email to pear-dev+get-52999@lists.php.net to get a copy of this message | ||
On Sun, Nov 1, 2009 at 4:40 PM, Alexey Borzov <borz_off@cs.msu.su> wrote:
> Hi,
>
> I'd like to gather some feedback on how to properly implement redirect and
> cookies support in HTTP_Request2 and / or HTTP_Client2.
>
>
> First, a bit of background. Redirect support was first done in HTTP_Request
> by its original author, but as the class wasn't designed from the ground up
> for performing multiple requests, redirect implementation was a bit of a
> hack. It is currently disabled by default and its use is discouraged.
>
> HTTP_Client has a cleaner implementation, it uses a new instance of
> HTTP_Request for doing a redirect, has proper code for resolving relative
> URLs.
>
> HTTP_Client also has the following useful features:
> * Stores cookies between requests (persistent storage is also possible);
> * Stores default headers, default request parameters and default listeners.
> These are added to all created instances of HTTP_Request;
> * Can store complete response history;
> * get() / post() / head() / put() / delete() convenience methods.
>
>
> Now, skip to HTTP_Request2. I suspect that if one enables redirect support
> in cURL adapter, it will work out of the box. It also isn't that difficult
> to add naïve redirect implementation to Socket adapter, only a matter of
> porting the relevant code from HTTP_Client::_performRequest().
>
>
> I'd also like to implement cookie storage support, though, and make us of
> Public Suffix List (http://publicsuffix.org/). The big question is
> implementing that *and* redirect support. Cookies can easily be extracted
> from redirect responses via Observers, but can they also be injected there
> (esp. with Curl)? If it's not possible, then Curl's native redirect support
> can not be used and the same PHP-based implementation should be used for
> both adapters. It will be easier to push that to a separate class
> (HTTP_Client2?).
>
>
> Also I'm interested whether other features of HTTP_Client are still as
> relevant with HTTP_Request2 as they were with HTTP_Request.
>
Cookie-support (well, a cookie jar :-)) and redirects would be great.
Those two are (IMHO), the most important features.
Default headers, storing request history and the convenience methods
are a nice to have, I wouldn't say no to them.
I'm already a fan and using HTTP_Request2 in almost a dozen projects.
Thanks for working on this, I'm really looking forward to
HTTP_Client2.
Till