GET和POST的真正区别?

eLb58Q08Y6

今天写页面用到ajax,到底是用post,还是用get,纠结了好久,毕竟小白一个,所以赶紧查查,(百度一下,你就上当!)

在博客上看见了一篇这样的帖子《不再以讹传讹,GET和POST的真正区别》,  推翻了我对post和get的认知

原文就说普遍的认知,他们的区别有三点:

  1. GET使用URL或Cookie传参。而POST将数据放在BODY中。
  2. GET的URL会有长度上的限制,则POST的数据则可以非常大。
  3. POST比GET安全,因为数据在地址栏上不可见。

然后说这三点完全是错误的,理由如下:

1. GET和POST与数据如何传递没有关系

GET和POST是由HTTP协议定义的。在HTTP协议中,Method和Data(URL, Body, Header)是正交的两个概念,也就是说,使用哪个Method与应用层的数据如何传输是没有相互关系的。

HTTP没有要求,如果Method是POST数据就要放在BODY中。也没有要求,如果Method是GET,数据(参数)就一定要放在URL中而不能放在BODY中。

那么,网上流传甚广的这个说法是从何而来的呢?我在HTML标准中,找到了相似的描述。这和网上流传的说法一致。但是这只是HTML标准对HTTP协议的用法的约定。怎么能当成GET和POST的区别呢?

而且,现代的Web Server都是支持GET中包含BODY这样的请求。虽然这种请求不可能从浏览器发出,但是现在的Web Server又不是只给浏览器用,已经完全地超出了HTML服务器的范畴了。

知道这个有什么用?我不想解释了,有时候就得自己痛一次才记得住。

2. HTTP协议对GET和POST都没有对长度的限制

HTTP协议明确地指出了,HTTP头和Body都没有长度的要求。而对于URL长度上的限制,有两方面的原因造成:

  1. 浏览器。据说早期的浏览器会对URL长度做限制。据说IE对URL长度会限制在2048个字符内(流传很广,而且无数同事都表示认同)。但我自己试了一下,我构造了90K的URL通过IE9访问live.com,是正常的。网上的东西,哪怕是Wikipedia上的,也不能信。
  2. 服务器。URL长了,对服务器处理也是一种负担。原本一个会话就没有多少数据,现在如果有人恶意地构造几个几M大小的URL,并不停地访问你的服务器。服务器的最大并发数显然会下降。另一种攻击方式是,把告诉服务器Content-Length是一个很大的数,然后只给服务器发一点儿数据,嘿嘿,服务器你就傻等着去吧。哪怕你有超时设置,这种故意的次次访问超时也能让服务器吃不了兜着走。有鉴于此,多数服务器出于安全啦、稳定啦方面的考虑,会给URL长度加限制。但是这个限制是针对所有HTTP请求的,与GET、POST没有关系。

3.安全不安全和GET、POST没有关系

我觉得这真是中国特色。我讲个小段子,大家应该可以体会出这个说法多么的可笑。

觉得POST数据比GET数据安全的人会说

“防君子不防小人;中国小白多,能防小白用户就行了。”

“哼,”我不以为然,“那你怎么不说,URL参数都Encode过了,或是Base64一下,小白也看不懂啊。”

那人反驳道,“Encode太简单了,聪明点儿的小白很容易就可以Decode并修改掉。”

我笑道,“五十步笑百步耳,再聪明点儿的小白还会截包并重发呢,Opera就有这功能。”

那人阴险地祭出神器——最终解释权,说,“这个不算小白。”

我日啊。

直接推翻了上面的这三点,

可是我又查了w3school的http方法:post与get的对比

有关 GET 请求的其他一些注释:

  • GET 请求可被缓存
  • GET 请求保留在浏览器历史记录中
  • GET 请求可被收藏为书签
  • GET 请求不应在处理敏感数据时使用
  • GET 请求有长度限制
  • GET 请求只应当用于取回数据

有关 POST 请求的其他一些注释:

  • POST 请求不会被缓存
  • POST 请求不会保留在浏览器历史记录中
  • POST 不能被收藏为书签
  • POST 请求对数据长度没有要求

这上面写的是有长度限制的,有哪位给解释下?

李东辉

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:86   其中:访客  67   博主  19

  1. avatar 情天 4

    学习一下,不过太深了。

  2. avatar 热腾网 5

    现在的程序简单用post的多,以前的老程序还见到GET呢。

    • avatar 李东辉博客

      @热腾网 我现在还没有搞懂,到底什么时候用,怎么用

      • avatar 热腾网 5

        @李东辉博客 post提交数据参数都不会保存或直接显示,get能明文在IE地址中显示。post使用&将表单链接起来也能使用IE地址提交数据。post 保密性好。

  3. avatar 奇虎分享网 1

    现在的程序简单用post的多

  4. avatar 米粒博客 3

    没注意过这问题!

  5. avatar 森云 5

    每日一来看,晚上好睡觉

  6. avatar 森云 5

    每天来博主这里学习一下,整个人精神气爽的

  7. avatar 五金拉手 1

    看到代码,我就头通,真心看不下去

  8. avatar 酷喵 1

    前排支持

  9. avatar 茌平 2

    很不错

  10. avatar 森云 5

    你这个对于get和post讲的太详细了

    • avatar 李东辉博客

      @森云 网上查的,说的还可以,不过不是很透彻

  11. avatar 第9页 1

    好深奥的技术文章,表示看不懂啊~

  12. avatar 长沙招聘28招聘网 2

    学习中

  13. avatar 森云 5

    哈哈共同进步吧

  14. avatar 博客大全网 2

    来学习了

  15. avatar 茌平房产 2

    真是复杂

  16. avatar 冠群驰骋 0

    没看懂呢~~

  17. avatar 长沙招聘28招聘网 2

    <a href=http://www.28zpw.com/>长沙求职网</a>

  18. avatar 古筝价格 2

    看不懂

  19. avatar 北京室内装修 2

    感谢分享 祝您开心快乐每一天
    <a href="http://www.jcsnzs.com/" target="_blank">北京装修公司</a><br/>

  20. avatar 社区O2O 3

    <a href="http://www.suofeiya.com.cn">全屋定制</a>

  21. avatar 佛山影视广告 2

    走一走,看一看,说不定经捡到宝了呢

  22. avatar 小易分享网 5

    文章很好~!点赞

  23. avatar 小易分享网 5

    文章很好~!点赞

  24. avatar 小易分享网 5

    文章很好~!点赞

  25. avatar 男孩资源网 5

    文章很好~!赞

  26. avatar 男孩资源网 5

    文章很好~!赞

  27. avatar 男孩资源网 5

    文章很好~!赞

  28. avatar 男孩资源网 5

    文章很好~!赞

  29. avatar 男孩资源网 5

    文章很好~!赞

  30. avatar 男孩资源网 5

    文章很好~!赞

  31. avatar 男孩资源网 5

    文章很好~!赞

  32. avatar 男孩资源网 5

    文章很好~!赞

  33. avatar 男孩资源网 5

    文章很好~!赞

  34. avatar 男孩资源网 5

    文章很好~!赞

  35. avatar 男孩资源网 5

    文章很好~!赞

  36. avatar 男孩资源网 5

    文章很好~!赞

  37. avatar 男孩资源网 5

    文章很好~!赞

  38. avatar 男孩资源网 5

    文章很好~!赞

  39. avatar 男孩资源网 5

    文章很好~!赞

  40. avatar 男孩资源网 5

    文章很好~!赞

  41. avatar 男孩资源网 5

    文章很好~!赞

  42. avatar 男孩资源网 5

    文章很好~!赞

  43. avatar 男孩资源网 5

    文章很好~!赞

  44. avatar 男孩资源网 5

    文章很好~!赞

  45. avatar 男孩资源网 5

    文章很好~!赞

  46. avatar 男孩资源网 5

    文章很好~!赞

  47. avatar 男孩资源网 5

    文章很好~!赞

  48. avatar 男孩资源网 5

    文章很好~!赞

  49. avatar 男孩资源网 5

    文章很好~!赞

  50. avatar 男孩资源网 5

    文章很好~!赞

  51. avatar 男孩资源网 5

    文章很好~!赞

  52. avatar 男孩资源网 5

    文章很好~!赞

  53. avatar 男孩资源网 5

    文章很好~!赞

  54. avatar 猪OK网 1

    养猪行情www.zhuok.com

  55. avatar CJnCJ 0

    万 部 A 片高清 国产日韩 hTTp://T.CN/Rt8jUdO

  56. avatar 冠群 1

    涨姿势了

  57. avatar 北京装修公司 1

    感谢分享 祝您开心快乐每一天
    <a href="http://www.jcsnzs.com/" target="_blank">北京装修公司</a>

  58. avatar VIP灵儿网 5

    过来看看你的博客,希望每天都更新一些文章。 http://www.viplinger.cn

  59. avatar 贵阳整形医院 1

    学到了!

  60. avatar 小易分享网 5

    过来看看你的博客,希望每天都更新一些文章。 欢迎回访:http://www.3gwb.com

  61. avatar www.tmcore.com 5

    今天才发现你的博客,连着看了几篇呢! 欢迎回访:www.tmcore.com