通过本文,你能明白:
1. HTTP 数据请的的方式GET与POST;
2. GET与POST请求体的结构;
3. 常用的HTTP请求头及其意义。
1. 带参数的普通页面请求
如果我们想向百度请求查询关键字“你好世界”并将结果页返回。
GET方式
浏览器地址栏中直接输入:http://www.baidu.com/s?wd=%C4%E3%BA%C3%CA%C0%BD%E7,wd后的内容即是我们想查询的“你好世界”,其内容请务必进行URIEncode。Encode的编写这里是GBK,这与请求的WEB服务器接收的编码有关,如果不手动进行encode,浏览器也会帮你encode的,如Chrome默认的encode是UTF-8,如果对方器恰好只支持GBK的话,那么就悲剧了。例如虽然百度GBK与UTF-8都支持,但我们以UTF-16进行编码的话,结果就是:
如果有多个数据的话,可以使用“&”进行连接,如:http://www.baidu.com/s?wd=%C4%E3%BA%C3%CA%C0%BD%E7&type=image。尽管RFC2616没有对请求的参数进行限制,每种浏览器或WEB服务器对它的限制也不同,但最安全是不超过255Bytes[http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.2.1]。
===============================延伸阅读================================
+许多web服务器或代理服务器会以日志方式记录下访问的URL,因此使用GET进行敏感数据传输是一件非常不理智的事。
+MSIE与Safari对URL长度的限制大约是2KB,Opera则是4KB,Firefox大约是8KB
。
=============================================================
POST方式——application/x-www-form-urlencoded 方式
这里我们使用Fiddler来构造请求,同上,向www.renren.com发送相同的请求。