分析Http 请求
1. 分析Http协议信息
首先需下载一个网络监听软件:Fiddler,然后我们进行安装并打开,软件会自动监80端口,即是 HTTP通讯协议端口,把我们访问每一个网站的请求都会被记录下来。
拦截了HTTP所有请求信息, 下面我们来选中已经拦截到访问的或提交的页面,点击右边的 选项卡 子选项,然后会看到类似下面这样的Http请求信息头:
(1)分析GET方式
GET请求信息:
//请求的URL地址 GET http://xxx.xxx.com/10.aspx?id=2 //请求HTTP的类型 HTTP/1.1 //浏览器可解析的格式, */*代表任何格式都可以,包括所有文档格式,例如Hhtml,Image,Wml都属于范围内 Accept: */* //上级访问页面地址 Referer: http://demo.powereasy.net/ //浏览器所属地区语言 Accept-Language: zh-CN //浏览器的信息 User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E) //表示可以接收的编码格式,其中带有gzip则代表可以接收压缩的二进制编码文档 Accept-Encoding: gzip, deflate //请求主机 Host: demo.powereasy.net //连接的状态类型 Connection: Keep-Alive //这个就是请求的Cookie信息,它不但能够存储临时常用信息,而且还是存放SessionID的地方 Cookie: UN=caeken; __gads=ID=6a9e1b703643f529:T=1288593931:S=ALNI_Mas3BBbquE6VVRzJuSRF_t6GowlCA; cnt_uid_www=443c1251113c777b15f6ff80f34b5ae9; __message_sys_msg_id=764; __message_gu_msg_id=0; __message_cnel_msg_id=0; __message_in_school=0; LastVisitedForum=3036657c-277c-476c-982d-75f154e09050*3036657c-277c-476c-982d-75f154e09050 GET返回信息: 这些信息由客户端发送到服务器的请求信息,接下来我们分析一下服务器返回的信息头: //请求状态 HTTP/1.1 200 OK //服务类型 Server: nginx/0.7.65 //处理信息的日期时间 Date: Thu, 11 Nov 2015 02:48:26 GMT //文档格式和语言编码 Content-Type: text/html; charset=utf-8 //连接状态 Connection: keep-alive //内容长度 Content-Length: 161 //返回HTML信息 document.write('<li><a target="_blank" href="#" onclick="LogClickCount(this,165);">示例</a></li>');
(2)分析POST方式
我们通常都把表单提交的方式都设为POST请求方式
POST http://zzz.xxx.com/Login.aspx HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/QVOD, application/QVOD, */* Accept-Language: zh-cn,en;q=0.5 Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQPinyin 730; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2; .NET4.0C; .NET4.0E) Host: zzz.xxx.com Content-Length: 683 Connection: Keep-Alive Pragma: no-cache Cookie: ASP.NET_SessionId=o5smmubh3cxhd4vs3jzc21sb; ClientKey=40b7dfb5-b1eb-4f91-91ae-018b4f384c9d //这里就是提交表单的详细信息;数据在报文体中提交 __LASTFOCUS=&&__VIEWSTATE=%2FwEPBXxlTnI3ejhqUHlxMXJhRzVwWm1ScVptbG15cDhpeHNURURDVFptRmo1K2NXWTVBU2Q4L05LaXZKelF2TERFbk15VXhKTFVsazVDc3dzakxKTTBpeFNVcGpZUUlya0dWZzVvVUpaQmtCQmRxZ2dGMHpNeUNnbEJRQ2hveFpoGAEFHl9fQ29udHJvbHNSZXF1aXJlUG9zdEJhY2tLZXlfXxYBBQlJYnRuRW50ZXKQ4XrnXRpYSLnjHShJa6adUxfAJg%3D%3D&__EVENTVALIDATION=%2FwEWBQKH2573BwKtiIODCgLG7PzDDQKv9dqIDwK%2F%2BoyFDI4kI9dsW1GGISQ51mtFzgj9HeYA&p682j4f8=admin&682j4f8j0=123456&82j4f8j022=8888&IbtnEnter.x=21&IbtnEnter.y=2
GET与POST区别:
GET安全性较低,POST安全性较高。因为GET在传输过程,数据被放在请求的URL中;GET传送参数值是有限制的,只能用于从服务器上传送较少的数据和获取数据。而POST是在报文体中向服务器传送数据的,理论上来说POST数据是没有限制的,起限制作用的是服务器处理程序的处理能力,因此提交复杂数据可以使用POST方法。