HTTP Cookies

HTTP Cookies - HTTP cookie jars  HTTP cookie jars:


  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( {} );


描述:


这类对象代表一个 "cookie jar"---也就是说, 一个所有的HTTP cookies 的数据库 给定的 LWP::UserAgent object 


Cookies 是一个通用的机制, 服务端连接可以使用用于存储和检索客户端连接的信息。



更多的信息关于cookies 指向URL:http://curl.haxx.se/rfc/cookie_spec.html> and <URL:http://www.cookiecentral.com/>.


HTTP::Cookies 类的实例是用于存储Set-Cookie2的连接信息和Set-Cookie: headers

可以使用这些信息来初始化Cookie-headers 在 HTTP::Request 对象里。


HTTP::Cookies object的状态可以保存和从文件恢复。


METHODS

提供下面的方法:

$cookie_jar = HTTP::Cookies->new

构造 hash 类型的参数:

  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

$cookie_jar->add_cookie_header( $request )


add_cookie_header() 方法会设置相应的 Cookie:-header 用于HTTP::Request 对象作为一个参数。


$request 必须有一个正确的url 属性在方法被调用前:

$cookie_jar->extract_cookies( $response )

extract_cookies() 方法会寻找 Set-Cookie:和Set-Cookie2: headers 在HTTP::Response 对象被作为一个参数传递。


任何这些headers 会被找到用于更新  $cookie_jar的状态

$cookie_jar->set_cookie( $version, $key, $val, $path, $domain, $port, $path_spec, $secure, $maxage, $discard, 

%rest )



set_cookie() 方法 更新$cookie_jar的状态。   $key, $val, $domain, $port and $path 参数是字符串。


$path_spec, $secure, $discard 参数是布尔值。










原文地址:https://www.cnblogs.com/hzcya1995/p/13351137.html