前一段时间在用http解码相关的测试工作,经常需要构造一些字段,比如构造http header、主体等,我想同行的人一定也测试过。我用到过webstress、firefox的live http header,但是后来,我发现,一个非常灵活好用的工具--nc
为什么说它好用呢?ok,我现在举例子:
比如说,我要提交个GET请求,服务器域名为
http://www.test.com/。先自己生成个1.txt,写入一些内容:
content
1 GET /cgi-bin/webdist.cgi?distloc=;ls HTTP/1.1
2 Host: 170.168.1.11
3 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; zh-CN; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4
4 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
5 Accept-Language: zh-cn,zh;q=0.5
6 Accept-Encoding: gzip,deflate
7 Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7
8 Keep-Alive: 300
9 Connection: keep-alive
10 Cookie: ASPSESSIONIDAQDBSAQA=LDABJFEDGCCINNBJMHNNPKDI
11
12 注意:内容必须以两个空行结尾。这符合rfc2616的标准,否则不会被正确解码的。(这里的host字段我忘记修改了。。)
然后nc派上用场了,nc
http://www.test.com/ 80 < 1.txt ,这个GET请求就发送出去了。简单吧!你可以完完全全的主机区构造header和data,任何的都可以。
再试一个POST的:
post
POST /scripts/nsiislog.dll HTTP/1.1
Host: www.test.com
Content-Length: 16758
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; zh-CN; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: ASPSESSIONIDAQDBSAQA=LDABJFEDGCCINNBJMHNNPKDI
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
然后记住,method要大写就好了:GET,POST,HEAD,SEARCH