码迷,mamicode.com
首页 > 其他好文 > 详细

get和post的区别

时间:2014-09-26 22:49:28      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:style   http   os   使用   数据   sp   on   c   html   

第一种说法:

       get是用于获取数据的;post一般用于将数据发给服务器之用。

第二种说法:最普遍的答案--------(这只是HTML标准对HTTP协议的用法有约定。)

      1、GET使用url或Cookie传参。而POST将数据放在BODY中。

     2、GET的URL会有长度上的限制,而POST的数据则可以非常大。

     3、POST比GET更安全,因为数据在地址栏上不可见。

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

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

 

 

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

 

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

  1. 浏览器。因为早期的浏览器会对URL长度做限制。(行内人士认同:IE对URL长度会限制在2048个字符内)

 2. 服务器。URL太长,对服务器处理也是一种负担。原本一个会话的没有多少数据,现在如果有人恶意的构造几个几M大小的URL,并不停地访问你的服务器。服务器的最大并发数显然会下降。另一种攻击方式是,把告诉服务器Content-Length是一个很大的数,然后只给服务器发一点数据

 

 

安全不安全跟GET、POST是没有关系的。

     

 

       

 

get和post的区别

标签:style   http   os   使用   数据   sp   on   c   html   

原文地址:http://www.cnblogs.com/wangshichuan/p/3995556.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!