• 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,那你的敏感信息就可能被完整的保存在了本地浏览器。当然,可以通过加密手段解决
  • 相关阅读:
    Marvell/Cisco/Broadcom 三巨头的51.2T交换芯片
    SpringBoot 使用 Sa-Token 完成权限认证
    消极型人格分析,如何改变消极型性格?
    java基于springboot的毕业生简历模板分享管理系统
    ccache加速编译速度
    软件测试技术题目大全【含答案】
    C++ 漫谈哈夫曼树
    CentOS手把手教你搭建Zabbix Server,Zabbix Proxy,Zabbix Agent企业级监控平台
    python中第三方库pyecharts的使用
    方形图片 圆形图片 各种形状
  • 原文地址:https://blog.csdn.net/m0_56079407/article/details/125879686