HTTP::Cookies - HTTP cookie jars |
HTTP::Cookies - HTTP cookie jars
version 6.04
use HTTP::Cookies; $cookie_jar = HTTP::Cookies->new( file => "$ENV{'HOME'}/lwp_cookies.dat", autosave => 1, );
use LWP; my $browser = LWP::UserAgent->new; $browser->cookie_jar($cookie_jar);
Or for an empty and temporary cookie jar:
use LWP; my $browser = LWP::UserAgent->new; $browser->cookie_jar( {} );
This class is for objects that represent a ``cookie jar'' -- that is, a database of all the HTTP cookies that a given LWP::UserAgent object knows about.
Cookies are a general mechanism which server side connections can use to both store and retrieve information on the client side of the connection. For more information about cookies refer to <URL:http://curl.haxx.se/rfc/cookie_spec.html> and <URL:http://www.cookiecentral.com/>. This module also implements the new style cookies described in RFC 2965. The two variants of cookies are supposed to be able to coexist happily.
Instances of the class HTTP::Cookies are able to store a collection of Set-Cookie2: and Set-Cookie: headers and are able to use this information to initialize Cookie-headers in HTTP::Request objects. The state of a HTTP::Cookies object can be saved in and restored from files.
This module does not support Public Suffix.
This module's shortcomings mean that a malicious Web site can set cookies to track your user agent across all sites under a top level domain. See t/publicsuffix.t > in this module's distribution for details.
the HTTP::CookieJar::LWP manpage supports Public Suffix, but only provides a limited subset of this module's functionality and does not support standards older than RFC 6265.
The following methods are provided:
file: name of the file to restore cookies from and save cookies to autosave: save during destruction (bool) ignore_discard: save even cookies that are requested to be discarded (bool) hide_cookie2: do not add Cookie2 header to requests
Future parameters might include (not yet implemented):
max_cookies 300 max_cookies_per_domain 20 max_cookie_size 4096
no_cookies list of domain names that we never return cookies to
If one or more $cookie_key parameters are provided return the given values,
or undef
if the cookie isn't available.
add_cookie_header()
method will set the appropriate Cookie:-header
for the HTTP::Request object given as argument. The $request must
have a valid url attribute before this method is called.
extract_cookies()
method will look for Set-Cookie: and
Set-Cookie2: headers in the HTTP::Response object passed as
argument. Any of these headers that are found are used to update
the state of the $cookie_jar.
set_cookie()
method updates the state of the $cookie_jar. The
$key, $val, $domain, $port and $path arguments are strings. The
$path_spec, $secure, $discard arguments are boolean values. The $maxage
value is a number indicating number of seconds that this cookie will
live. A value of $maxage <= 0 will delete this cookie. %rest defines
various other attributes like ``Comment'' and ``CommentURL''.
load()
method. If a
filename is not specified we will use the name specified during
construction. If the attribute ignore_discard is set, then we
will even save cookies that are marked to be discarded.
The default is to save a sequence of ``Set-Cookie3'' lines. ``Set-Cookie3'' is a proprietary LWP format, not known to be compatible with any browser. The HTTP::Cookies::Netscape sub-class can be used to save in a format compatible with Netscape.
save()
method.
discard
flag. To be
called when the user agent shuts down according to RFC 2965.
0 version 1 key 2 val 3 path 4 domain 5 port 6 path_spec 7 secure 8 expires 9 discard 10 hash
as_string()
method will return the state of the $cookie_jar
represented as a sequence of ``Set-Cookie3'' header lines separated by
``\n''. If $skip_discardables is TRUE, it will not return lines for
cookies with the Discard attribute.
the HTTP::Cookies::Netscape manpage, the HTTP::Cookies::Microsoft manpage
Gisle Aas <gisle@activestate.com>
This software is copyright (c) 2002-2017 by Gisle Aas.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
HTTP::Cookies - HTTP cookie jars |