http中get与post的区别

http中get与post的区别:
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE;分别对应查、改、增、删。一般get用于获服务器数据,post用于发送服务器数据;form默认为get方式。
具体区别如下:
1)GET使用URL或Cookie传参。而POST将数据放在BODY中;
2)GET的URL会有长度上的限制,则POST的数据则可以非常大。
3)POST比GET安全,因为数据在地址栏上不可见。
网上查询的大部分答案基本都是这些。但其中过一篇文章写的很有诱惑力(原文链接:http://www.cnblogs.com/nankezhishi/archive/2012/06/09/getandpost.html#!comments)
该文章从两个方面否定了上述的三种传统的答案,经过查找最终发现其中的一些问题。


第一:http对于URL是否有长度的限制。
HTTP 1.1 协议没有对URL的长度做限制,但是在某些应用场景中会出现URL限制的问题,这就要从两个方面去分析。
首先是从服务器端分析,apache的官方文档中对长度没有做明确的限制,但是一般不会太大,查询的文献表示一般不会超过2G。
其次是从浏览器端分析,
游览器 最大长度(字符数)           备注
 IE   2083                     如果超过这个数字,提交按钮没有任何反应
 Firefox 65,536  
 chrome 8182  
 Safari 80,000  
 Opera 190,000  
(具体长度没有验证,只是单纯的拿来主义)
(相关的文章链接:http://blog.sina.com.cn/s/blog_62fc65d90100onhm.html,
http://httpd.apache.org/docs/2.0/mod/core.html#limitrequestline)
 
第二:如果Method是GET,数据(参数)就一定要放在URL中而不能放在BODY中。
该问题也查询了相关的文章,结果是:你可以在GET请求中带有HTTP BODY内容,但是服务端不应该解析它,否则有悖HTTP 1.1规范。(相关文章链接:http://stackoverflow.com/questions/978061/http-get-with-request-body,

http://kaifage.com/notes/125/cannot-include-parameters-in-the-get-body-request-http.html)

当然,GET与POST中还有一些区别,但是都由最开始的三个区别展开,以后会详述;虽说实质性的问题没有解决太多,但是还是很享受查询过程中的乐趣的。



虽然问题比较简单,但是通过查询深层的含义还是比较有意思的,水平有限,所以暂时没办法用代码的方式去验证上述的查询过程,但今后或许会真正的了解这其中相关的知识点。
发布了7 篇原创文章 · 获赞 0 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览