Restful风格真的有必要吗?

到现在经过了两段实习,也因为喜欢网上冲浪,认识了不少大厂的朋友。反正大家的一致意见都是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,那你的敏感信息就可能被完整的保存在了本地浏览器。当然,可以通过加密手段解决
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值