[CDN 技术] 缓存测试之curl

Aug 28th, 2008

转载本站文章请注明,转载自:扶凯[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
 

 

 

Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪 ViVi 365Key 网摘 天极网摘 和讯网摘 博拉网 POCO 网摘 饭否 QQ 书签 Digbuzz 我挖网 Mister Wong
Tags:
  1. mickey
    Sep 5th, 2008 at 11:41
    Reply | Quote | #1

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