springmvc中get和post区别和应用


 最近对post和get什么时候使用 和 应该怎么使用  他俩的区别  有了一些疑问   

根据本人的了解   post是对数据进行了封装保护 get是安全性较差的 可以看到数据的信息    post是用来改变数据比如说添加 修改    get是用来查询和搜索的

所以进行了搜索和整合  也方便理解

当请求无副作用时(如进行搜索),便可使用GET方法;当请求有副作用时(如添加数据行),则用POST方法。

GET方法可能会产生很长的URL,或许会超过某些浏览器与服务器对URL长度的限制。

原文地址如下:http://bu-choreography.iteye.com/admin/blogs/new。
快速判断: 
如下情况使用GET方法:客户端与服务端的交互像是一个提问(如查询操作、搜索操作、读操作) 
如下情况使用POST方法: 
       1.交互是一个命令或订单(order),比提问包含更多信息 
       2.交互改变了服务器端的资源并被用户察觉,例如订阅某项服务 
       3.用户需要对交互产生的结果负责 
根据HTTP协议规定,GET方法可以携带交互需要的所有数据,因此你会看到搜索百度或谷歌的时候,点击搜索形成的URL包含了你刚才的搜索关键字,没有安全需求的请求把信息放URL里没关系,但是你访问银行网站的时候,不希望把账户、密码这些放在URL里被人拦截是吧,所以HTTP设计了POST请求,他可以把请求信息放在HTTP请求里,具体格式这里不细说了,这样你就不能简单的从URL里找到账户、密码了。 
讲完这些,是不是比较清楚了呢。 
文章还例举了几个曾经的HTTP请求限制。 
1.URI不能超过256个字符。这个限制在有些服务器里是存在的,有的服务器为了网络安全,为了防止拒绝式攻击会把URL字符限制在4000字符 
2.你提交了GET请求,又马山按了backspace键,会导致get方法被重新执行 
3.你在一个页面使用了安全协议,跳转到了另一个使用不安全协议的页面时,会导致安全数据泄漏给第二个页面。

 

还有一种稍微官方的解释   一些人可能不好理解 对于我来说更倾向于前面的一种

POST方法:

* 请求的结果有持续性的副作用,例如,数据库内添加新的数据行。
* 若使用GET方法,则表单上收集的数据可能让URL过长。
* 要传送的数据不是采用7位的ASCII编码。

若符合下列任一情况,则用GET方法:

* 请求是为了查找资源,HTML表单数据仅用来帮助搜索。
* 请求结果无持续性的副作用。
* 收集的数据及HTML表单内的输入字段名称的总长不超过1024个字符。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM