幂等性和安全性是http请求方法的特性, 比如 get请求方法是具有安全性的

安全性(此次请求不会修改后台):

   仅指该方法的多次调用不会产生副作用,不涉及传统意义上的“安全”,这里的副作用是指资源状态。
即,安全的方法不会修改资源状态,尽管多次调用的返回值可能不一样(被其他非安全方法修改过)。

幂等性(多次请求一个url,返回值不变):

    是指该方法多次调用返回的效果(形式)一致,客户端可以重复调用并且期望同样的结果。
一次调用和多次调用产生的效果是一致的,都是对一个变量进行赋值。
方法名 安全性 幂等性 请求方法的作用
get 请求指定的页面信息,并返回实体主体
head 只请求页面的首部
options 允许客户端查看服务器的性能
delete × 请求服务器删除指定的数据
put × 从客户端向服务器传送的数据取代指定的文档的内容
post × × 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体

head方法:

 head方法和get方法差不多 , 但是head方法只会获取response响应头的信息, 并不会获取response.body的信息拿django来说, 如果有head方法, 他会走head方法, 如果你没定义head方法, 他会走get方法



响应体是空的

响应头有信息

options方法:

options方法响应体是这样的:

django中并不会走你定义的视图函数,但是会把视图的注释给返回

request请求走完中间件,然后通过下面这个方法,获得的响应体

如何避免options请求

put和delete方法为什么是幂等的?

(幂等性和安全性是由RESTful API接口设计标准及规范提出的)简单的说,HTTP 的 method 就是一个残缺不全的设计缺陷,而 RESTful 则非要想去合理使用这个 method。
实际上设计接口用 GET、POST 就足够了,GET 做幂等操作(查询类),POST 做非幂等的修改类。
但实际上你还会遇上条件复杂的组合查询不得不用 POST 来实现( GET 有参数长度限制),
这时 RESTful 会推荐你使用 POST,这是 RESTful 的妥协,也恰好证明了 HTTP 的缺陷。不要纠结这种问题了,好的文档比什么都重要。。
摘自:  https://www.v2ex.com/t/373770

POST和GET谁更安全

get更安全

get比post安全? -->get对于服务器是安全的–> get是幂等的,post是非幂等的

post更安全

① GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
② 浏览器有跨域访问的限制,如果是get的话,jsonp很容易突破跨域的限制。但是post跨域比较不容易。
参考资料:https://blog.csdn.net/qq_38610536/article/details/83584681
https://blog.csdn.net/qq_41635167/article/details/83720985

HTTP各种请求方法的的幂等性和安全性相关推荐

  1. http 安全性和幂等性_HTTP方法:幂等性和安全性

    http 安全性和幂等性 幂等性和安全性是HTTP方法的属性. HTTP RFC定义了这些属性,并告诉我们哪些HTTP方法是安全且幂等的. 服务器应用程序应确保正确执行安全和幂等的语义,如客户端期望的 ...

  2. HTTP方法:幂等性和安全性

    幂等性和安全性是HTTP方法的属性. HTTP RFC定义了这些属性,并告诉我们哪些HTTP方法是安全且幂等的. 服务器应用程序应确保正确执行安全和幂等的语义,如客户端期望的那样. 安全的HTTP方法 ...

  3. HTTP请求方法详解

    Web开发最常见的就是HTTP(超文本传输协议)通信协议,该协议(HTTP)设计的目的是确保服务器与客户端之间的正确通信, HTTP请求方法并不是只有GET和POST,只是最常用的.据RFC2616标 ...

  4. HTTP 请求方法(GET、POST 和 PUT)

    HTTP 请求方法包括 GET.POST 和 PUT 等,它们在用途.语义和实现方式等方面有所不同. GET 方法:该方法用于从服务器获取资源,是一种安全的请求方法,因为它只是从服务器获取信息,不会对 ...

  5. HTTP请求方法:GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE 说明

    平时的Rest开发,用到的都是GET,POST,PUT,DELETE类型的请求.但Rest支持的请求类型不止前面4种,还有其他几种. 超文本传输协议(HTTP, HyperText Transfer ...

  6. HTTP协议漫谈 - HTTP协议请求方法

    前言 在上一篇文章<HTTP协议漫谈 - HTTP协议历史和报文结构>中介绍了HTTP协议的历史和版本变化,以及HTTP协议报文的总体结构. 按照HTTP/1.1 RFC文档中的定义,HT ...

  7. Http请求方法的区别

    HttpRequest Method 一.HttpRequest 请求方法 二.POST和PUT请求的区别 1.POST请求非幂等性操作 2.根据幂等性区分POST与PUT的使用 三.GET和POST ...

  8. HTTP简介、请求方法与响应状态码

    点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! Https相关的文章,请看这一篇:TCP.IP协议族之数字签名与HTTPS详解 接下来想系统的回顾 ...

  9. restful可以转发么_什么是RESTFUL?REST的请求方法有哪些,有什么区别?

    大家好,我是IT修真院上海分院第3期学员,一枚正直善良的java程序员,今天给大家分享一下,修真院java任务中的一个知识点:什么是RESTFUL?REST的请求方法有哪些,有什么区别? restFu ...

最新文章

  1. 没有顶会的CV/NLP方向的博士生毕业出路在哪里?
  2. python计算特征与目标的相关性并可视化
  3. lr mysql 增删改查_Python对MySQL进行增删查改
  4. 启动ucosii之OSInit()
  5. mysql dql_Mysql中的DQL查询语句
  6. 【java】JDK8的HashMap
  7. 诊断域帐号被锁定的原因
  8. Java-线程中sleep()、wait()和notify()和notifyAll()、suspend和resume()、yield()、join()、interrupt()的用法和区别
  9. AI 时代,中国技术创新如何弯道超车?
  10. Goland的常用快捷键
  11. Vue项目部署到SpringBoot工程下
  12. 【学习】在Windows10平台使用Docker ToolBox安装docker(一)
  13. jar包里面文件修改
  14. 数据仓库:金融/银行业主题层划分方案
  15. wangEditor - 支持word上传的富文本编辑器
  16. 瑞士酒店管理大学计算机专业,瑞士DCT国际酒店管理学院生活费用详细介绍
  17. 2021-2027全球及中国远红外桑拿行业研究及十四五规划分析报告
  18. 说得清的Epoll原理
  19. R语言统计分析之方差分析
  20. 小傻蛋的妹妹跟着小甲鱼学习Python的第七节007

热门文章

  1. Xilinx ip核之FIFO和RAM
  2. 新版unity toggle组件汉化名字
  3. 指向的驱动器或网络连接不可用
  4. 十种常用算法之分治算法(java版)
  5. android加载二维码带中间logo
  6. MAC修改jar包并打包
  7. 细说2类骗人的物联卡,满满的都是套路!
  8. Heritrix配置
  9. 【通信原理】复习笔记
  10. ExcelVBA之传递函数