GET、POST、PUT、DELETE的介绍及其安全和幂等性

2023-05-16

先介绍一下安全和幂等的概念—

    所谓幂等是指不管进行多少次操作,结果都一样。比如,调用GET方法只是去请求资源,自然每次调用结果都是相同的,就是幂等的。对于POST请求,两次调用POST请求,可能就会在服务器创建两份资源,所以当然不是幂等的。

    安全指的是是否会给服务器带来副作用,意思就是发送请求会不会改变服务器的状态,就比如说发送GET请求其实只是会获取服务器的资源,而不是去更改了服务器的资源,但是POST请求就会去更改服务器的状态,去更改服务器的资源,这样有的时候可能就会发送一些错误,所以说它不安全。

GET

安全且幂等

获取表示

变更时获取表示(缓存)

200OK- 表示已在响应中发出

204(无内容) - 资源有空表示

301Moved Permanently- 资源的URI已被更新

303See Other- 其他(如,负载均衡)

304not modified- 资源未更改(缓存)

400 bad request- 指代坏请求(如,参数错误)

404 not found- 资源不存在

406 not acceptable- 服务端不支持所需表示

500 internal server error- 通用错误响应

503 Service Unavailable- 服务端当前无法处理请求

POST

不安全且不幂等

使用服务端管理的(自动产生)的实例号创建资源

创建子资源

部分更新资源

如果没有被修改,则不过更新资源(乐观锁)

200OK- 如果现有资源已被更改

201created- 如果新资源被创建

202accepted- 已接受处理请求但尚未完成(异步处理)

301Moved Permanently- 资源的URI被更新

303See Other- 其他(如,负载均衡)

400bad request- 指代坏请求

404 not found- 资源不存在

406 not acceptable- 服务端不支持所需表示

409 conflict- 通用冲突

412 Precondition Failed- 前置条件失败(如执行条件更新时的冲突)

415 unsupported media type- 接受到的表示不受支持

500 internal server error- 通用错误响应

503 Service Unavailable- 服务当前无法处理请求

PUT

不安全但幂等

用客户端管理的实例号创建一个资源

通过替换的方式更新资源

如果未被修改,则更新资源(乐观锁)

200 OK- 如果已存在资源被更改

201 created- 如果新资源被创建

301Moved Permanently- 资源的URI已更改

303 See Other- 其他(如,负载均衡)

400 bad request- 指代坏请求

404 not found- 资源不存在

406 not acceptable- 服务端不支持所需表示

409 conflict- 通用冲突

412 Precondition Failed- 前置条件失败(如执行条件更新时的冲突)

415 unsupported media type- 接受到的表示不受支持

500 internal server error- 通用错误响应

503 Service Unavailable- 服务当前无法处理请求

DELETE

不安全但幂等

删除资源

200 OK- 资源已被删除

301 Moved Permanently- 资源的URI已更改

303 See Other- 其他,如负载均衡

400 bad request- 指代坏请求

404 not found- 资源不存在

409 conflict- 通用冲突

500 internal server error- 通用错误响应

503 Service Unavailable- 服务端当前无法处理请求

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

GET、POST、PUT、DELETE的介绍及其安全和幂等性 的相关文章

  • 使用 libsoup 进行 HTTP POST

    我想使用 libsoup 执行一个简单的 POST 请求 我想要发送数据的网站的 api 只需要一个名为 内容 的字段 使用curl我这样做 curl si F content mycontent http mywebsite org ap
  • RESTful API 设计:更新 (PUT) 中不可更改的数据是否应该是可选的?

    我正在实现 RESTful API 并且我不确定对于无法更改的数据的存在是否存在 社区接受 行为 例如 在我的 API 中 有一个 文件 资源 该资源在创建时包含许多在创建后无法修改的字段 例如文件的二进制数据以及与其关联的一些元数据 此外
  • 在 Swift 中执行 POST 请求

    我正在尝试做这样的事情 NSMutableURLRequest request NSMutableURLRequest requestWithURL NSURL URLWithString http google com request H
  • 循环遍历 POST 数组

    我需要循环遍历 post 数组并提交它 stuff 1
  • Curl,发布当前时间

    我每小时使用 cronjob 我在 Mac 上 触发此命令 usr bin curl s data gr 0123 press OK http www myurl com myphp php gt dev null 有没有办法以 HH MM
  • Cakephp 验证后,所有表单字段都为空,并出现表单错误

    我有问题 我尝试填写表单 然后单击提交按钮 然后它显示表单错误 但所有文本框字段都变为空白 并且可以显示表单错误 我希望它变得与验证之前相同的值 就像我不想在验证后清除 清空值一样 我做了这样的事情 在视图中 div class regfo
  • 如何在 http POST 请求中发送 HTML 代码?

    我正在从 Google Web Toolkit 应用程序向 php 脚本发送 HTTP POST 请求 内容类型现在是 application x www form urlencoded 所以我可以将变量发送到 php 并使用 POST 在
  • c# http Post 在 webresponse 中没有得到任何内容

    这是我的请求和响应代码 System IO MemoryStream xmlStream null HttpWebRequest HttpReq HttpWebRequest WebRequest Create url xmlStream
  • Elasticsearch:如何查询连接数?

    如何询问我的 Elasticsearch 服务器现在有多少个连接 这与插座数量相同吗 我也不知道如何获得这些数字 这与客户端的数量不同 对吧 因为每个客户端可能打开多个连接 找不到任何相关信息 但我确实发现您可以在 Elasticsearc
  • 使用PHP获取http url参数而不自动解码

    我有一个像这样的网址 test php x hello world y 00h 00e 00l 00l 00o 当我将它写入文件时 file put contents x txt GET x gt hello world file put
  • 检查隐藏是否等于 true 或 false jQuery

    我有这个 div attr hidden true i tried var a div attr hidden var b div attr hidden val var c div hidden var a div disabled 我只
  • 无法在服务器端 NodeJS 启用 CORS

    我无法启用CORS在服务器端 我的前端和后端服务器有不同的端口 服务器端的实现方式如下 http createServer function req res Here you can create your data response in
  • 防止刷新时提交双重表单

    我有一个简单的问题 我知道当用户使用 Post Redirect Get 模式重新加载页面时 我可以防止表单重新提交自身 但我的问题是 如果我将用户重定向回提交表单的同一页面 这种模式是否有效 我的意思是 我不想将用户重定向到另一个页面 请
  • 是否可以在ajax get请求中获取页面的一部分?

    我知道我们可以在向服务器发出 GET 请求时获取整个页面 但是如果我只对该页面上的一个特定 div 感兴趣 或者更准确地说对其内容感兴趣 该怎么办 这里唯一的选择是获取整个页面 例如使用 jquery find 从中获取 div 内容吗 或
  • 表单未使用 AJAX 提交

    再次更新 如果有人关心的话 我之前发布的解决方案由于某种原因停止工作 我在 ajax 请求中包含了 beforeSend 并将验证表单的 js 部分粘贴到其中 现在就像一个魅力 form on submit function e e pre
  • 在 Objective-C iPad 开发中发布

    我正在尝试发出 POST 请求 但我似乎无法弄清楚出了什么问题 我从服务器收到响应 但我的电子邮件 密码对似乎没有正确发送 读取 由服务器 它告诉我不存在这样的帐户 这是我的代码 它包含在一个函数中 当用户按下我创建的 登录 按钮时调用该函
  • 将 MIME 编码的附件发布到 Ariba Supply Network 时出现问题

    我在尝试使用 VB NET 和 WebRequest 对象发布一些 cXML 文本和附件时遇到问题 我相信我正在格式化我希望正确发布的数据文本 因为它与 Ariba 提供的示例相匹配 我不确定的是我是否正确使用 WebRequest 对象来
  • 在 HTML
    中发布额外的值

    我有一个简单的表单 它传递一个值
  • 使标签充当输入按钮

    我怎样才能做一个 a href http test com tag test Test a 就像表单按钮一样 通过充当表单按钮 我的意思是 当单击链接执行操作时method get 或 post 以便能够通过 get 或 post 捕获它
  • 如何在使用cmake完成make后打印消息?

    我正在尝试使用 CMake 完成构建过程后打印消息 我只是想在之后通知用户make命令已完成 没有任何错误 我该怎么做 我试过add custom target 但我无法选择何时跑步 另外 我尝试过add custom command 它再

随机推荐

  • UBUNTU 下编译POKY

    记录一下我在UBUNTU下编译POKY的一些TIPS xff0c 防止以后再编的时候忘掉 xff0c 又要重新GOOGLE 1 解开pinky的包 2 进入pinky目录输入 source poky init build env 3 修改b
  • LLVM编译collect2: fatal error: ld terminated with signal 9

    报错 xff1a collect2 fatal error ld terminated with signal 9 查了一下这个报错 xff0c 可能是内存不足 xff0c 看到有前人的解决方法 xff0c 创建了20G的交换空间 xff1
  • Rust安装与编写第一个rust程序

    Rust 是 Mozilla 开发的注重安全 性能和并发性的编程语言 下边来演示一下如何安装rust xff0c 并尝试创建第一个rust项目 使用 rustup 脚本安装 xff1a 第一步 xff1a 执行 curl https sh
  • (C语言)栈应用简易计算器实现

    利用栈实现简易计算器 进行包含 43 间的计算 include lt stdio h gt include lt string h gt define MaxSize 100 typedef struct CharStack 字符栈 cha
  • 【实战原创】Centos7下Samba服务器配置(实战)

    这篇文章主要介绍了 Centos7 下 Samba 服务器配置 xff08 实战 xff09 xff0c 文中通过示例代码介绍的非常详细 xff0c 对大家的学习或者工作具有一定的参考学习价值 xff0c 需要的朋友们下面随着小编来一起学习
  • 批量修改word中的公式--mathtype

    1 用word打开一个需要编辑公式的文档 2 编辑公式的格式 xff0c 首先 xff0c 双击一个公式 xff0c 打开数学公式编辑器MathType xff0c 进入编辑状态 xff0c 点击大小菜单中的自定义选项 xff0c 修改字号
  • 免费使用office365和5TOneDrive空间

    免费使用office365和5TOneDrive空间 免费使用office365和OneDrive空间 免费使用office365和OneDrive空间 个人版本的office账号只可以拥有5G的存储空间 xff08 可以通过邀请的方式免费
  • UBUNTU 22.04 使用 SUNSHINE 和 MOONLIGHT 进行串流

    参考 ubuntu22 04 sunshine安装使用总结 xff0c 远程游戏 哔哩哔哩 bilibili sunshine README md at master loki 47 6F 64 sunshine GitHub GitHub
  • 学习LUA,使用IUP进行GUI程序设计

    原创 visualfc 在LUA中进行GUI程序设计 xff0c 可以选择的GUI库一般有wxLua和IupLua wxLua具备典型的面向对象风格 xff0c 功能相对强大 而IUP的LUA绑定则非常简洁易用 本文主要介绍IupLua I
  • poj 细菌实验分组

    include lt cstdio gt include lt cstdlib gt struct my int id double rate int cmp const void a const void b return my a ra
  • 在TreeATE的Python环境中: import paramiko出现问题 ModuleNotFoundError: No module named ‘paramiko‘

    在TreeATE的Python环境中解决import问题 一般在Python环境中没有出现问题 ModuleNotFoundError No module named paramiko xff0c 而在TreeATE的Python调试窗口中
  • 【仙女踩坑实录】Ubuntu20.04系统设置打开后闪退

    时隔数月 xff0c 我又踩坑了 今天打开设置想 我已经忘了当时想干啥了 xff0c 反正是想打开设置 xff0c 然后突然发现 xff0c 设置打不开了 xff0c 或者说打开后界面都看不到就闪退了 于是我看到有人在评论区中说是因为显示在
  • Nginx进程项说明

    说明 xff1a 在Windows中nginx服务每次点击启动之后 xff0c 都会生成2个进程项 注意事项 xff1a 在Windows中nginx只能启动一次 关于与启动2项说明 进程项1 xff1a nginx主要进程信息 进程项2
  • 如何设置go环境变量GOPATH?

    如何设置go环境变量GOPATH xff1f 安装 gin gonic gin 报错 cannot download GOPATH not set For more details see go help gopath go get u g
  • vs2022发生生成错误,但错误列表没有报错的一个解决办法

    如题 xff0c 事件的起因是我在编译程序时 xff0c 遇到了这个问题 我写的是最基本的c 43 43 控制台应用程序 然而观察错误列表 xff0c 没有错误 xff0c 也没有警告 进一步尝试后发现 xff0c 即使是原先可以正常运行的
  • Google开源框架AutoFlip 实现视频智能剪裁

    Photo by Kyle Loftus from Pexels Google宣布开源视频剪裁框架AutoFlip xff0c 实现智能化自动裁剪视频 编译 xff1a 郑云飞 amp Coco Liang 技术审校 xff1a 郑云飞 原
  • 如何使用FFmpeg将AVI转换为MP4(有损转换和无损转换)

    翻译 编辑 xff1a Alex 技术审校 xff1a 刘歧 本文来自OTTVerse xff0c 作者为Krishna Rao Vijayanagar 扫描图中二维码了解音视频技术大会更多信息 Easy Tech 021 在本篇文章中 x
  • Web渗透测试之XSS攻击:反射型XSS

    文章目录 前言反射型XSS最简单的反射型XSS利用反射型XSS获得cookie获得cookie的最简单的方法DNSlog辅助获得cookie 总结 前言 在上一篇文章中我们基本了解了XSS的类型和危害 xff0c 在本篇中我们将通过具体的例
  • Web渗透测试之XSS攻击:基于DOM的XSS

    文章目录 前言基于DOM的XSS什么是DOM基于DOM的XSS产生的原因如何手工挖掘基于DOM的XSS漏洞如何利用基于DOM的XSS漏洞 总结 前言 本篇主要讲解什么是基于DOM的XSS漏洞 xff0c 基于DOM的XSS漏洞产生的原因以及
  • GET、POST、PUT、DELETE的介绍及其安全和幂等性

    先介绍一下安全和幂等的概念 所谓幂等是指不管进行多少次操作 xff0c 结果都一样 比如 xff0c 调用GET方法只是去请求资源 xff0c 自然每次调用结果都是相同的 xff0c 就是幂等的 对于POST请求 xff0c 两次调用POS