cookie和session

来源:互联网 发布:mysql官方下载教程 编辑:程序博客网 时间:2024/06/08 08:02
1.cookie :在网站中,http请求是无状态的,也就是说即使第一次和服务器连接后并且登陆成功后,第二次请求服务器一番不能知道当前请求是哪个用户。cookie的出现就是为了解决这个问题,第一次登陆后服务器返回一些数据(cooke)给浏览器,然后浏览器保存在本地。当该用户发送第二次请求的时候,就会自动的把上次请求存储的cookie数据自动的携带给服务器服务器通过浏览器袖带的数据就能判断当前是用户是哪个了。use Net::SMTP;use LWP::UserAgent;use HTTP::Cookies;use HTTP::Headers;use HTTP::Response;use Encode;use Switch;use File::Temp qw/tempfile/;use HTTP::Date qw(time2iso str2time time2iso time2isoz);my $CurrTime = time2iso(time());my $ua = LWP::UserAgent->new;$ua->timeout(10);$ua->env_proxy;my $now          = time();$ua->agent('Mozilla/5.0');my $cookie_jar = HTTP::Cookies->new(    file           => 'lwp_cookies.txt',    autosave       => 1,    ignore_discard => 1);$ua->cookie_jar($cookie_jar);if ( $cookie_jar){$cookie_jar->load( $cookie_jar );my $now          = time();my $url="https://www.awfae.com/web/auth?method=%2Fwze%2Ftransfer%2Fcash%2Fin&amount=0.1&tradePassword=79e8fe923f031f46221a9283d0c9263a&_=$now";my $response = $ua->get("$url");if ($response->is_success) {#print $response->content;   $r = $response->content;   $str=encode("gbk",decode("utf8","$r"));print "\$str is $str\n";}if ($str =~/用户未登录/){##https://www.awfae.com/validcode/generate-validcode.do?0.36789621218278434my $response = $ua->get("https://www.awfae.com/validcode/generate-validcode.do");if ($response->is_success) {   $r = $response->decoded_content;      # print $response->decoded_content;  # or whatever}else { die $response->status_line;};my ( $fh, $filename ) =  tempfile( "wj_qrcode_XXXX", SUFFIX => ".jpg", DIR => 'c:\\' );binmode $fh;print $fh $r;close $fh;print "登录二维码已经下载到本地 [ $filename ] \n";##打开图片system("start $filename ");my $validCode = <STDIN>;chomp $validCode ; my $login_url = 'https://www.awfae.com/business/dispatch_post.do';                 my $res = $ua->post($login_url,{                       'action'=>'doLogin',                          'userName'=>'18072722237',  'followId'=>'',                          'userPass'=>'79e8fe923f031f46221a9283d0c9263a',                          'validCode'=> "$validCode"                                                }); print "---------------\n";my $head =$res->header('Location');;print $res->header('Location');print "\n";my $response = $ua->get("$head");if ($response->is_success) {  #print $response->content;   $r = $response->content;   $str=encode("gbk",decode("utf8","$r"));print "\$str == $str\n";}my $now          = time();my $url="https://www.awfae.com/web/auth?method=%2Fwze%2Ftransfer%2Fcash%2Fin&amount=0.1&tradePassword=79e8fe923f031f46221a9283d0c9263a&_=$now";my $response = $ua->get("$url");if ($response->is_success) {#print $response->content; $r = $response->content;   $str=encode("gbk",decode("utf8","$r"));print "\$str is $str\n";}}}##http://www.awfae.com/login.html?info=\u767b\u5f55\u5931\u8d25\u003a\u7528\u6237\##http://www.awfae.com/login.html?info=登录失败:用户\##http://www.awfae.com/account/myAccount.html?subPage=/account/dashBoard.html&uuid=20150925104158452da9e0c7979d4438&# 响应头:# 原始头信息# Connection# close# Content-Language# zh-CN# Content-Length# 0# Date# Fri, 01 Sep 2017 00:57:34 GMT# Location# https://www.awfae.com/account/myAccount.html?subPage=/account/dashBoard.html&uuid=20150925104158452da9e0c7979d4438# &# Server# Apache-Coyote/1.1# Set-Cookie# rememberMe=deleteMe; Path=/; Max-Age=0; Expires=Thu, 31-Aug-2017 00:57:34 GMT# X-Frame-Options# SAMEORIGINcookie内容:#LWP-Cookies-1.0Set-Cookie3: ZJZCJSESSIONID=5e44f46d-d25b-4c6d-8dd3-89cb3b0fae4b; path="/"; domain=www.awfae.com; path_spec; secure; discard; HttpOnly; version=0cookie是存储数据的一种格式,第2次请求时浏览器自动加载cookie,发送给服务端cookie 是保存在浏览器里,cookie里存储sessionid,下次发送时会加载cookiesession 是保存在服务器中session可以设置过期时间