HTTP 动词 - 何时使用 GET/POST/PUT/Delete

2024-02-26

当您从事 RESTFUL 服务时,您经常会听到这些术语GET/POST/PUT/DELETE。我的问题是这么多动词背后的想法是什么?我可以在以下人的帮助下实现一切GET动词或者如果我想在消息正文中发布一些大数据,我可以使用POST动词。我认为没有必要考虑这两个动词之外的事情。

关于何时使用哪个动词,我们有任何一般准则吗? 使用一个动词比使用另一个动词有什么好处吗?

PS:我知道背后的想法

GET : Get object
PUT : Modify Object
DELETE: Delete Object
POST : Create Object

每个动词都有不同的目的。虽然可以简单地解析正文并忽略请求方法,但这是非常糟糕的做法,并且使任何人都更难更好地理解您的 Web 服务。

维基百科 http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods总结了请求方法及其预期行为。

一般来说:

  • A GET应用于从网络请求信息 服务。

  • A POST应该用于将数据放入网络服务器,其中有 没有指定 Web 服务应将数据放置在何处。一个 示例可能是 StackOverflow 上的一个问题。这可以被认为等同于插入件。

  • A PUT当您想要指定数据的去向时应该使用。 这是幂等操作,因为重复它不会改变任何内容 在每次重复调用时。一个例子可能是一个答案或评论 StackOverflow,因为它们会链接到资源,例如 回答特定问题。或者,这可以被视为等同于更新。

  • And a DELETE显然是用来删除一些数据或 来自网络服务器的资源。

还有其他请求方法(如维基百科文章中所述),但这些方法涵盖了人们与 Web 服务进行的主要交互。

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

HTTP 动词 - 何时使用 GET/POST/PUT/Delete 的相关文章

随机推荐

  • 卡坦岛地图的数据结构? [复制]

    这个问题在这里已经有答案了 不久前 有人问我是否知道一种对卡坦岛游戏的信息进行编码的好方法 这需要以每个六角形都可以有与其关联的数据的方式存储六角形网格 但更重要的是 我需要某种方法来有效地查找这些六边形侧面的顶点和边 因为这就是所有动作的
  • 如何允许用户移动表单上的控件

    我有一个 winform 我想允许用户在其上移动控件 该控件 目前 是一条垂直线 带有边框且宽度为 1 的标签 上下文不是很重要 但无论如何我都会给你 我有一个带有一些图形的背景 我希望用户能够在图形上方滑动指导线 图形是用 Nplots
  • 区块链为何如此安全? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 昨天我读到一篇关于区块链的文章 根据它 区块链非常安全 我无法理解它如何安全 区块链如何确保数据安全 即使普通人也可以使用 saura
  • 将 IVSHMEM 与 libvirt virt-manager 结合使用

    Using ivshmem in qemu需要执行以下步骤 在主机中启动 ivshmem 服务器 ivshmem server这将创建一个unix域套接字 tmp ivshmem socket 使用以下命令行选项启动 qemu charde
  • 为什么 newList = list.remove(x) 返回 None ? [复制]

    这个问题在这里已经有答案了 我在下面有一个列表 我想删除一个值并将其设置为一个新变量 为什么它返回无 aList 1 2 3 4 5 newList aList remove 1 print newList prints None 但当我这
  • 返回对一个结构体部分的引用作为另一个结构体的字段[重复]

    这个问题在这里已经有答案了 如果可能的话 我希望将一个结构移动到另一个结构中 并获取第一个结构的部分作为其他结构的部分的引用 而无需克隆或复制 如何以正确的方式去做 fn main let foo Foo new let bar Bar n
  • 未将对象引用设置为 MVC 文件(图像)上传的对象实例[重复]

    这个问题在这里已经有答案了 我是 MVC 新手 我正在遵循教程并收到此错误 我按照教程中的每个步骤进行操作 但仍然遇到相同的错误 这是我的观点的代码 model 234CrudDemo Models ComplaintTicket div
  • 具有自定义频率和持续时间的蜂鸣声

    我想在 Mac Os X 中播放蜂鸣声并指定持续时间和频率 在 Windows 上 可以通过使用来完成蜂鸣功能 http msdn microsoft com en us library windows desktop ms679277 2
  • 如何重写 Django 管理列表中的 queryset count() 方法

    为了避免耗时且昂贵的精确数据库计数查询 我想覆盖count Django 管理类中的方法如下所示 from django contrib import admin from django db import connection class
  • 前端与后端端点(spring boot 和 vuejs)

    某种程度上基于本指南 https jaxlondon com blog java core languages put spring boot und vue js practical use project tutorial https
  • BLE扫描记录说明

    我正在尝试获取UUID Major Minor IDs从以以下形式收到的 BLE 广告中byte 我已经使用了建议的代码here https stackoverflow com questions 22016224 ble obtain u
  • Ruby:如何使用 Curb 发送 JSON POST 请求?

    如何将 CURB 请求的请求正文设置为我的 json 字符串 我正在尝试使用 Curb 执行 JSON POST 请求 My code require rubygems require curb require json myarray m
  • Node.js mongodb 设置默认安全变量

    我正在尝试在本地运行 Node js 脚本 但它给了我以下错误消息 Please ensure that you set the default safe variable to one of the allowed values of t
  • 从一个 Activity 更新存储在另一个 Activity 中的对象

    我正在第一个活动中创建一个名为 AppEngine 的对象 此 AppEngine 对象存储事件的数组列表 并以其中的 2 个事件开始 从第一个活动中 我单击一个按钮 该按钮将我带到第二个活动 在其中我通过使用将事件对象添加到 arrayL
  • Openwhisk:增加并发请求数

    我有一个分布式 Openwhisk 设置 当我尝试一次向一个用户执行 30 多个请求时 出现以下错误 错误 无法调用操作 素数 并发数太多 正在处理的请求 计数 30 允许 30 知道如何增加这个数字吗 如果您使用 ansible 方法部署
  • 计算机图形学:光线追踪和 3D 渲染编程

    我注意到许多顶尖大学都为计算机专业的学生提供与计算机图形学相关的课程 遗憾的是 这是我的大学没有提供的东西 也是我非常想在未来几年内进入的东西 我从一些大学发现的一些项目都很棒 尽管我最感兴趣的是两件事 Raytracing 我想在未来两年
  • google chrome实现了哪个版本的websockets协议草案

    我正在尝试在 java 中实现 websockets 服务器 但我无法理解 google chrome 实现的 websocket 协议版本 在this http blog chromium org search label websock
  • XSLT 有数组的概念吗?

    我以前从未真正使用过 XSLT 正在寻求一些建议 我从 GSA 箱中以 XML 形式返回了以下项目
  • SQL 搜索和替换

    不可否认 对于 SQL 命令我是个菜鸟 一名黑客在我的 WordPress 网站上的每个帖子和页面的末尾插入了一个脚本标签 我试图在 wp posts 表中进行查找和替换 但当我运行模拟查询 这是我所拥有的 UPDATE wp posts
  • HTTP 动词 - 何时使用 GET/POST/PUT/Delete

    当您从事 RESTFUL 服务时 您经常会听到这些术语GET POST PUT DELETE 我的问题是这么多动词背后的想法是什么 我可以在以下人的帮助下实现一切GET动词或者如果我想在消息正文中发布一些大数据 我可以使用POST动词 我认