生命之中的最大错误在于:终日担心犯错误。— 爱尔伯特·哈伯德 (Elbert Hubbard 1856-1915),《笔记》
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]
服务器在收到浏览器请求的时候,可能会有不同的header信息,我们做个测试。

做个简单的php文件,打印出接受到的header信息:
<?php
foreach($_SERVER as $k=>$v){
  if(substr($k,0,5)=='HTTP_')echo "[$k] => $v\n";
}
?>

注:php接受到信息都在 $_SERVER[HTTP_xxxxx] 变量里。

IE访问

[HTTP_ACCEPT] => image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/x-silverlight, application/x-shockwave-flash, */*
[HTTP_ACCEPT_LANGUAGE] => zh-cn
[HTTP_ACCEPT_ENCODING] => gzip, deflate
[HTTP_USER_AGENT] => Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; CIBA)
[HTTP_HOST] => www.aslibra.com
[HTTP_CONNECTION] => Keep-Alive

google浏览器

[HTTP_HOST] => www.aslibra.com
[HTTP_CONNECTION] => keep-alive
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.33 Safari/530.5
[HTTP_ACCEPT] => application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
[HTTP_ACCEPT_ENCODING] => gzip,deflate,bzip2,sdch
[HTTP_ACCEPT_LANGUAGE] => zh-CN,zh;q=0.8
[HTTP_ACCEPT_CHARSET] => UTF-8,*;q=0.5

firefox

[HTTP_HOST] => www.aslibra.com
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
[HTTP_ACCEPT_LANGUAGE] => zh-cn,zh;q=0.5
[HTTP_ACCEPT_ENCODING] => gzip,deflate
[HTTP_ACCEPT_CHARSET] => gb2312,utf-8;q=0.7,*;q=0.7
[HTTP_KEEP_ALIVE] => 300
[HTTP_CONNECTION] => keep-alive

file_get_contents

[HTTP_HOST] => www.aslibra.com

wget

[HTTP_USER_AGENT] => Wget/1.9+cvs-stable (Red Hat modified)
[HTTP_HOST] => www.aslibra.com
[HTTP_ACCEPT] => */*
[HTTP_CONNECTION] => Keep-Alive

curl

[HTTP_USER_AGENT] => curl/7.12.1 (i386-redhat-linux-gnu) libcurl/7.12.1 OpenSSL/0.9.7a zlib/1.2.1.2 libidn/0.5.6
[HTTP_HOST] => www.aslibra.com
[HTTP_PRAGMA] => no-cache
[HTTP_ACCEPT] => */*

curl访问经过squid代理
( curl http://www.aslibra.com/ -x 127.0.0.1:3128 )

[HTTP_USER_AGENT] => curl/7.12.1 (i386-redhat-linux-gnu) libcurl/7.12.1 OpenSSL/0.9.7a zlib/1.2.1.2 libidn/0.5.6
[HTTP_HOST] => www.aslibra.com
[HTTP_PRAGMA] => no-cache
[HTTP_ACCEPT] => */*
[HTTP_VIA] => 1.1 cache.aslibra.com:3128 (squid/2.5.STABLE14)
[HTTP_X_FORWARDED_FOR] => 127.0.0.1
[HTTP_CACHE_CONTROL] => max-age=259200
[HTTP_CONNECTION] => keep-alive

我们可以看出来,每个方式都有很大的不同,一般服务器可以通过HTTP_USER_AGENT做出不同的限制。
要做欺骗行为,那也可以调整header信息达到效果。
一般浏览器会发出 [HTTP_ACCEPT_ENCODING] => gzip,deflate 表示可以接受代码压缩
Tags: , ,
某些时候我们需要完成一个任务,把任务分成好多次完成,在网页里自我刷新,直到完成。

比如某个PHP(self.php):

<?
//do something
sleep(1);

//redirect
header("location:self.php?t=".time());

?>OK!


实现不断处理有几个方式:

1 打开浏览器,访问此地址即可,让它自己跳转。如果有redirect限制,那最好可以改用脚本实现

2 wget方式
wget默认会follow返回的信息的location指令,但经过20次后就自动停止:
引用
20 redirections exceeded


3 curl
curl默认不跟踪location指令
但加个参数即可:

curl -h
...
-L/--location      Follow Location: hints (H)
    --location-trusted Follow Location: and send authentication even
                    to other hostnames (H)
-m/--max-time <seconds> Maximum time allowed for the transfer
    --max-redirs <num> Maximum number of redirects allowed (H)
    --max-filesize <bytes> Maximum file size to download (H/F)
...


其中 -L 即可follow,而默认是50次左右
引用
curl: (47) Maximum (50) redirects followed

自己可以设定多一些:
curl -L --max-redirs 100000 URL
Tags: , ,
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐