[CDN 技术] 缓存测试之curl
转载本站文章请注明,转载自:扶凯[http://www.php-oa.com]
本文链接: http://www.php-oa.com/2008/08/28/curl-2.html
CURL 基本是现在所有的linux都有的命令,非常好用的一个命令.我们用 squid 做缓存服务时,常常要测试浏览器,referer,cookie还有
1.使用 Curl 来取得到缓存服务器的 http 的头信息
$curl -I http://www.php-oa.com/data/emagazine/mode/mode_10.exe HTTP/1.0 200 OK Date: Tue, 15 Jul 2008 02:08:37 GMT Last-Modified: Mon, 07 Jul 2008 07:51:27 GMT ETag: "36e0025-29c1600-4516a57b97dc0" Accept-Ranges: bytes Content-Length: 43783680 Cache-Control: max-age=2592000 Expires: Thu, 14 Aug 2008 02:08:37 GMT Content-Type: application/octet-stream X-Cache: MISS from BM_SC.php-oa.com X-Cache-Lookup: MISS from BM_SC.php-oa.com:80
2. 使用 Curl 测试cookie来记录session信息
像IE/FF这样的浏览器,当然可以轻易处理cookie信息,但curl呢?
option: -D 参数是用来存cookie
$curl -D cookie0001.txt http://www.php-oa.com
这样,当页面被存到page.html的同时,cookie信息也被存到了cookie0001.txt里面了
那么,下一次访问的时候,如何继续使用上次留下的cookie信息呢?要知道,高级防盗链在很多网站都是靠监视你的cookie信息,来判断你是不是不按规矩访问他们的网站的.
这次我们使用这个option来把上次的cookie信息追加到http request里面去: -b
$curl -D cookie0002.txt -b cookie0001.txt http://www.php-oa.com
这样,我们就可以几乎模拟所有的IE操作,去访问网页了!
3. Curl 来控制是浏览器信息
在CDN的缓存服务器中,我们要看给的浏览器是什么类型,可以用curl给我们提供了一个有用的option,可以让我们随意指定自己这次访问所宣称的自己的浏览器信息: -A
$curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" http://www.php-oa.com
这样,服务器端接到访问的要求,会认为你是一个运行在Windows 2000上的IE6.0
4. Curl 来控制 Referer
另外一个缓存服务器端常用的限制方法,就是检查http访问的referer.比如你先访问首页,再访问里面所指定的下载页,这第二次访问的referer地址就是第一次访问成功后的页面地址.这样,服务器端只要发现对下载页面某次访问的referer地址不 是首页的地址,就可以断定那是个盗连了~~~~~
curl给我们提供了设定referer的option: -e
$curl -e "http://mail.php-oa.com" http://www.php-oa.com
这样,就可以骗对方的服务器,你是从mail.php-oa.com点击某个链接过来的了,呵呵呵
5. Curl 多线程下载和断点续传的测试
在缓存服务器中可以控制req_header Range的参数,我们怎么用curl来控制啦.
比如我们下载aaa.jpg中,突然掉线了,我们就可以这样开始续传
$curl -c -O http://www.php-oa.com/aaa.jpg
多线程下载下载,我们使用这个option就可以了: -r



















断点续传应该是大写的-C吧?
curl -C -O http://www.php-oa.com/aaa.jpg