HTTP 方法:DELETE 与 POST

2024-02-09

假设我有一个名为“Session”的资源。客户端将调用 PUT 来创建并开始新会话。当客户端完成会话后,它不应该再被访问,但由于历史/责任原因应该持续存在。

要结束会话,发出 DELETE 请求(这在语义上看起来更接近预期效果)是否更合适,或者发出 POST(因为资源实际上并未永久删除)是否更合适?


这里的问题是:请求是幂等的 https://en.wikipedia.org/wiki/Idempotence#Examples?如果执行同一个请求两次,会产生副作用吗?就像您订购一篇文章一样,执行两次订单请求就会获得两次该文章。

在这种情况下,POST是你想要的方法。如果没有,那么你想要PUT or DELETE.

由于您似乎没有删除会话,只是更改其状态,PUT将是一个更好的方法,因为这意味着资源被更改,而不是被删除,这就是您的情况。

Edit:

如果资源似乎已从客户端删除,DELETE似乎更合适。后面如何实现对于客户来说并不重要。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTTP 方法:DELETE 与 POST 的相关文章

随机推荐

  • Bootstrap 移动菜单不会保持打开状态

    第一个问题 谢谢大家的耐心解答 我寻找了一个类似的问题 但很惊讶我没有找到一个诚实的问题 我也学到了足够的知识来为此创建一个小提琴 你可以在这里看到它 https jsfiddle net jhallwebdev gm6r6mLu 5 HT
  • 将大文本分割成小块的最快方法

    我使用下面的代码来分割字符串 但这需要很多时间 using StreamReader srSegmentData new StreamReader fileNamePath string strSegmentData string line
  • java spring boot 是否提供像 php CodeIgniter 查询生成器一样的查询生成器

    我们正在 Spring Boot 中开发一个应用程序 我们将在运行时创建动态表单并将其发布到我们的应用程序中 以 JSON 格式将表单数据发布到数据库 MySql 中 我们想要创建一个通用的 api 来处理所有动态表单的 CRUD 操作 我
  • 如何将 SSL 从 Tomcat 迁移到 Apache HTTPD?

    我正在将我的单服务器 tomcat 迁移到集群 由 Apache HTTPD 使用 mod proxy 进行反向代理 进行负载平衡和缓存 是否可以将证书和密钥转换为 apache 格式 或者我必须重新颁发整个内容 直接使用提取证书非常容易k
  • 返回字符串第一次出现之前和之后的单词

    我有一个从搜索查询返回的文本正文 我们称之为 body 现在 我想做的是让脚本找到搜索查询 query 的第一次出现 我知道我可以用 strripos 找到第一次出现的情况 一旦找到 我希望脚本在字符串第一次出现之前返回几个单词 以及在第一
  • 如何处理多个构建目标,例如开发、测试、主要?

    我目前正在从 Maven 迁移到 SBT 并且我正在努力理解如何处理多个构建目标 开发 测试 训练 生产等 例如 我有一个persistence xml看起来像这样
  • R markdown:使用for循环生成文本并显示图形/表格

    我认为 R markdown 可以使用 for 循环生成文本部分 请参阅这个帖子 https stackoverflow com questions 36674824 use loop to generate section of text
  • 如何将包含图像信息的 .xml 文件转换为 jpeg 或 png

    我的任务是为人体动作检测算法准备数据 总而言之 我收到了一些图像 xml 文件 使用 Kinect 传感器拍摄的 我想将其转换为 jpeg 或 png 以便从算法中读取 我想我必须使用 OpenCV 我确信这是一个初学者的问题 但我在互联网
  • 如何使“git log”仅显示提交日期,而不显示其他内容

    我只是想快速浏览一下项目的历史git log show only提交日期 没有其他 我们怎样才能最好地做到这一点 Update 事实证明我实际上是在要求author日期 显示的是git log 为了看到提交者日期也可以不同 运行git lo
  • python-polars使用字典按列值将数据帧分割成许多dfs

    我想使用字典通过唯一列值将单个 df 拆分为多个 df 下面的代码展示了如何使用 pandas 来完成此操作 我怎样才能在极地中执行以下操作 import pandas as pd Favorite color of 10 people d
  • 如何在 Subversion 服务器中搜索文件?

    有没有办法在颠覆存储库中搜索文件 类似于 Unix 的东西find命令 用它我可以找到存储库中文件的位置 我知道有svn list 但这给了我一个目录中所有文件的列表 我想找到文件所在的目录 您可以在服务器上使用以下命令和 grep svn
  • 无法在两个账户之间使用 Amazon S3 跨区域复制

    我希望有人可以帮助我处理 Amazon S3 跨区域复制查询 我有两个 Amazon AWS 账户 每个账户在不同区域都有一个存储桶 我想将数据从一个存储桶复制到另一个存储桶 据我了解 这应该是一个简单的创建过程 然而 我真的很挣扎 我不知
  • 浮点数如何存储在内存中[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 由于计算机只能理解下面的 0 和 1 像 12 1234 这样的浮点数如何在内存中表示为一组 0 和 1 它是否通过相应的 ASCII
  • C#中通过串口访问蓝牙数据

    所以我在Unity3D中工作 用C 编程 我听说可以通过串行端口从蓝牙适配器读取数据 我尝试使用此方法将多个蓝牙 USB 适配器连接到我的电脑上 但是 当我尝试打开串行端口时 收到一条错误消息 指出端口不存在 我只包含与问题相关的代码 但
  • Rails 分页与 Kaminari 和 has_many :through 关系

    我有三个相关模型 一个用户has many photos and belongs to dorm 一个宿舍has many users and has many photos through gt users 和一个照片类belongs t
  • 动态格式化字符串[重复]

    这个问题在这里已经有答案了 如果我想让我的格式化字符串动态可调 我可以更改以下代码 print 20s 20s Python Very Good to width 20 print str width s str width s Pytho
  • 即使安装了 gem,Ruby 也找不到所需的库

    我花了几天时间尝试安装 ruby 1 9 2 并让它与 gems 一起工作 我最终放弃了我的 Mac OSX 10 6 机器 下面是我的 Ubuntu 机器上的当前状态 任何建议将不胜感激 ruby test rb
  • 如何在 AngularJS 中观察 $stateProvider 的状态变化?

    我知道我可以运行 scope watch someItem function 但我想不出一种方法来观察变化 state current name在我的应用程序中 它在文档中 https github com angular ui ui ro
  • 调用 mysqli_error() 时发出警告[重复]

    这个问题在这里已经有答案了 可能的重复 PHP警告有帮助吗 https stackoverflow com questions 1654958 php warning help 我试图连接数据库中的三个表以显示用户选择的类别 但出现以下错误
  • HTTP 方法:DELETE 与 POST

    假设我有一个名为 Session 的资源 客户端将调用 PUT 来创建并开始新会话 当客户端完成会话后 它不应该再被访问 但由于历史 责任原因应该持续存在 要结束会话 发出 DELETE 请求 这在语义上看起来更接近预期效果 是否更合适 或