Re: ConnCache not been used in LWP::UserAgent
Gisle Aas <[email protected]>
| Newsgroups | gmane.comp.lang.perl.modules.lwp |
|---|---|
| Message-ID | <[email protected]> |
Alexis Marrero <[email protected]> writes: > I'm trying to put together a short script to test a Keep-Alive > connection: > > ##### CODE BEGINS ##### > #!env perl -w > use strict; > > use LWP::UserAgent; > use LWP::ConnCache; > > my $browser = LWP::UserAgent->new(conn_cache => 1); This parameter is wrong, but should not really matter as it is overwritten in the next statement: > $browser->conn_cache(LWP::ConnCache->new()); > my @lines = ("mind is a terrible thing to waste\n") x 10; > my $start = time; > my $url = 'http://yourhost/yourpath'; > my $count = 0; > > foreach (@lines) { > my $response = $browser->post( $url, > [ 'pos' => $count, > 'block' => $_, > ], > 'Content_Type' => 'form-data', > ); > > $count += length $_; > } > > > print time() - $start; > print " secs\n"; > > ##### CODE ENDS ##### > > I noticed that when the request is made the HTTP headers don't > include "Connection: Keep-Alive". It does include "Connection: TE". 'Connection: Keep-Alive' is only used when talking to HTTP/1.0 servers. For HTTP/1.1 it shouldn't be used. > Reading the UserAgent.pm source code I noticed that the connection > cache is stored in $self->{conn_cache} but that value is never used > in the module. May be is used by reference in other places by > passing $self. Yes. It's picked up directly by LWP/Protocol/http.pm. > The point is that the client is opening connections for every request. Does not happen when I test your pogram against my server, so I do belive LWP does the right thing.. Regards, Gisle