到现在经过了两段实习,也因为喜欢网上冲浪,认识了不少大厂的朋友。反正大家的一致意见都是Restful利大于弊。我查了几天资料,稍微总结一下

为什么不用Restful

1.浏览器方面

浏览器普遍对GET和POST的支持最好浏览器表单form提交只支持GET和POST

2.SpringMVC方面

SpringMVC解析POST请求可以自动解析param和body,不需要加注解,而PUT DELETE请求必须加@RequestParam、@PathVariable、@RequestBody注解,虽然Spring3支持对PUT请求体的映射,但是需要在web.xml或者WebMvcConfigurerAdapter中进行配置————————这一点确实很好用,我现在维护的这个项目时间长了觉得真的很方便,很多没必要去字段匹配的直接写就好了

3.业务方面

一个“删”“改”操作不一定会那么干净,里面可能会夹杂很多的“查”“增”操作,但用一个PUT连基本RESTful的优势都成了劣势增删改查的不同操作可以通过url的最后一项来区分:例如 */deleteXxxx或editXxxx

4.Http协议方面

同时,POST请求在大多数浏览器中默认提交两次tcp包,在网络环境差的情况下更保险PUT和DELETE在http协议中本质和POST一样,没有任何优势,反而在SpringMVC中容易出现一些问题

什么时候能用Restful

当且仅当

幂等修改删除可以用put,delete;不幂等用post删除就是删除,修改就是修改,不会影响其他的业务数据培训机构忽悠小白时

Get和Post的一些区别

“是否提交大量数据”的功能可以直接由POST和GET来区分,GET不能放body参数,数据只能裸露放在url上,但浏览器url的长度大多限制为2kb,可以用POST来放body参数。GET请求的请求数据可能被浏览器缓存如果非幂等请求用GET,结果如果被缓存就会出错,可以通过请求参数带时间戳等不重复无关参数来强制防止缓存如果敏感信息用GET,那你的敏感信息就可能被完整的保存在了本地浏览器。当然,可以通过加密手段解决

好文链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: