大家好,今天由作为实习生的我来分享我对HTTP协议中GET、POST的认识。
通过学习,我了解到HTTP是一个客户端和服务器端请求和应答。客户端与服务器之间的交互用到了两种类型
的消息:请求(Request)和响应(Response)。而HTTP的请求方法又分为以下几点:OPTIONS、HEAD 、GET 、
POST 、PUT 、DELETE 、TRACE 、CONNECT 。今天我们重点交流GET和POST的作用。
在GET中
1.请求可被缓存请求保留在浏览器历史记录中
2.请求可被收藏为书签
3.请求不应在处理敏感数据时使用
4.请求有长度限制
5.请求只应当用于取回数据
在POST中:
1.请求不会被缓存
2.请求不会保留在浏览器历史记录中
3.不能被收藏为书签
4.请求对数据长度没有要求
5.当用户按后退或者刷新按钮时,数据会被重新提交
二、
GET:
参数是通过Url来传输,接在Url后面中间用?分开,不同参数之间用&分开,下面表示传递两个参数param1和param2,值为value1和value2。例如:http://songurl/index.htm?param1=value1¶m2=value2
POST:
html页面中使用form表单提交,接收方式,使用Request.Form[""]或Request.QueryString[""]来获取。
具体代码内容引用博主niuniu7107:
get 方式通过在网络地址附加参数来完成数据的提交,比如在地址 http://www.google.com/webhp?hl=zh-CN 中,前面部分 http://www.google.com/webhp 表示数据提交的网址,后面部分 hl=zh-CN 表示附加的参数,其中 hl 表示一个键(key), zh-CN 表示这个键对应的值(value)。程序代码如下:
1. HttpWebRequest req = (HttpWebRequest)
HttpWebRequest.Create( "http://www.google.com/webhp?hl=zh-CN" );
2. req.Method = "GET";
3. using (WebResponse wr = req.GetResponse())
4. {
5. //在这里对接收到的页面内容进行处理
6. }
post方式通过在页面内容中填写参数的方法来完成数据的提交,参数的格式和 get 方式一样,是类似于 hl=zh-CN&newwindow=1 这样的结构。程序代码如下:
7. string param = "hl=zh-CN&newwindow=1";
8. byte[] bs = Encoding.ASCII.GetBytes(param);
9. HttpWebRequest req = (HttpWebRequest)
HttpWebRequest.Create( "http://www.google.com/intl/zh-CN/" );
10. req.Method = "POST";
11. req.ContentType = "application/x-www-form-urlencoded";
12. req.ContentLength = bs.Length;
13. using (Stream reqStream = req.GetRequestStream())
14. {
15. reqStream.Write(bs, 0, bs.Length);
16. }
17. using (WebResponse wr = req.GetResponse())
18. {
19. //在这里对接收到的页面内容进行处理
20. }
在安全性上,POST相当对于GET较为安全,但两者都均并不是真实的安全,如果要让敏感信息得到保障,最好还是对信息进行加密。