⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 网络 「网络」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

最近在逛知乎的时候发现一个有趣的问题:《公司规定所有接口都用 post 请求,这是为什么?》

原问题:https://www.zhihu.com/question/336797348

看到这个问题的时候其实我也挺有感触的,因为我也曾经这样问过我自己。在19的时候接到一个项目是从零开始搭建一个微服务,当时就有了解过接口的一些规范,比如耳熟能详的Restful规范,就被应用到这个微服务项目中。

今天再次看到这个问题,我也有了一些新的理解和感触,临时回顾了一下getpost的请求的一些区别:

  1. post更安全(不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中)
  2. post发送的数据更大(get有url长度限制)
  3. post能发送更多的数据类型(get只能发送ASCII字符)
  4. post比get慢
  5. post用于修改和写入数据,get一般用于搜索排序和筛选之类的操作
  6. get请求的是静态资源,则会缓存,如果是数据,则不会缓存

查看上面的区别,就会发现post在发送数据量大的请求时优势很显示,get则更适合获取静态资源、简单的查询等接口。

我个人在开发接口的时候也会注意,将简单的查询请求使用get方法,其他增、删、改、复杂的查询请求都可以使用post,但不会像题主的公司一样全部使用post

网友程墨Morgan提出如果是自己会按照『业界最佳实践』制定规范:

另外一个知友提出:就是为了迁就低水平不思进取的架构师和前后端程序员们。

对此,如果是你来设计公司的API规范,会规定所有接口都用 post 请求吗,这是为什么?

文章目录