get、post、put、delete?
发布日期:2021-06-20 05:37:30 浏览次数:15 分类:技术文章

本文共 940 字,大约阅读时间需要 3 分钟。

为什么要区分get、post、put、delete?

所有 http 请求,一律用 POST,在业务功能的实现是没有问题的.

post,get,put,delete 是标准, 大家都遵循这样的规则. 这样的api对于它人来说一目了然, get就是获取数据, post就是提交数据, put就是更新数据, delete就做删除操作. 如果一律使用post对一个项目组的内部人员来说是没有问题的, 但是对于对外公开的接口就让调用者摸不着头脑了。

它们有什么不同?

  1. GET操作是安全的。所谓安全是指不管进行多少次操作,资源的状态都不会改变。比如我用GET浏览文章,不管浏览多少次,那篇文章还在那,没有变化。
  2. PUT,DELETE操作是幂等的。所谓幂等是指不管进行多少次操作,结果都一样。比如我用PUT修改一篇文章,然后在做同样的操作,每次操作后的结果并没有不同,DELETE也是一样。顺便说一句,因为GET操作是安全的,所以它自然也是幂等的。
  3. POST操作既不是安全的,也不是幂等的,比如常见的POST重复加载问题:当我们多次发出同样的POST请求后,其结果是创建出了若干的资源。

安全和幂等的意义在于:当操作没有达到预期的目标时,我们可以不停的重试,而不会对资源产生副作用。从这个意义上说,POST操作往往是有害的,但很多时候我们还是不得不使用它

如何使用

以遵循 RFC-2616 所定义的协议的方式显式地使用 HTTP 方法,建立创建、检索、更新和删除(CRUD:Create, Retrieve, Update and Delete)操作与 HTTP 方法之间的一对一映射:

  • 若要在服务器上创建资源,应该使用 POST 方法;
  • 若要检索某个资源,应该使用 GET 方法;
  • 若要更改资源状态或对其进行更新,应该使用 PUT 方法;
  • 若要删除某个资源,应该使用 DELETE 方法。

关于get和post的混淆

  1. GET 请求可被缓存,请求可保留在浏览器历史记录中, 请求可被收藏为书签

  2. POST 请求不会被缓存,比较安全, 请求不会保留在浏览器历史记录中, 不能被收藏为书签。这就是为什么取数据要使用get而不是post.

因为get可以快取, 缓存和保留历史记录及书签等特殊功能。

转载地址:https://blog.csdn.net/h2453532874/article/details/94666585 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:lombok 的var 使用时报错
下一篇:MYSQL JSON的操作函数 -- JSON_SET (), JSON_INSERT(), and JSON_REPLACE()

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月19日 06时56分21秒