POST和GET方法的差别

GET:
GET请求应该是用于信息获取,并且应该是安全的和幂等的。
(a)安全意味着该操作用于获取信息而非修改信息。换句话说,GET请求一般不会产生副作用。即对所请求的资源不会产生任何影响。
(b)幂等是指多次请求的结果是相同的,即对同一个URL的多次请求应该返回相同的结果。
GET方式请求的数据会放在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,参数之间用&连接,如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5%A5%BD。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。GET方式的数据最多只能是1024字节?因为GET是通过URL提交数据,那么GET可提交的数据就跟URL的长度有直接关系。实际上,URL不存在参数上限的问题,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对他的限制。IE对URL的长度限制是2083字节(2K+35)。对于其他浏览器,理论上没有长度限制,其限制取决于操作系统的支持。
POST:
POST表示可能修改服务器上的资源的请求。POST把提交的数据则放置在HTTP包的包体。POST是没有大小限制的,HTTP协议规范也没有大小限制,POST数据是没有限制的,起限制作用的是服务器的处理程序的处理能力。
对于ASP程序,Request对象处理每个表单域时存在100K的数据长度限制。但如果使用Request.BinaryRead则没有这个限制。

   由这个延伸出去,对于IIS 6.0,微软出于安全考虑,加大了限制。我们还需要注意:

     1).IIS 6.0默认ASP POST数据量最大为200KB,每个表单域限制是100KB。
     2).IIS 6.0默认上传文件的最大大小是4MB。
     3).IIS 6.0默认最大请求头是16KB。
   IIS 6.0之前没有这些限制。
POST的安全性要比GET的安全性高。注意:这里所说的安全性和上面提到的“安全”是两个不同的概念。上面的“安全”的含义仅仅是不做数据修改,而这里安全的含义是真正的security的含义,比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存,(2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-site request forgery攻击。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值