【HTTP】http方法及其幂等性 前后端交互必备

在前后端分离的最为常见的软件开发过程中,http的RESTFUL API成为了其中最为重要的桥梁,所以学习HTTP的一些方法也是后端开发的必备知识点。

HTTP方法就像后端取出数据然后提供API给前端,让前端根据这个API地址去取所需的数据,并且不同的数据根据不同的方法去取。

幂等性

幂等是从数学引入的术语,表示某个元素经过多少次特定的运算之后结果仍然不变。

所以假设双十一网站访问量突然增加,不少人点支付按钮会点两三下,那么,怎么保证这两下触发的事件只发生一次呢,这里就被定义为幂等性,意思为同样的操作不管执行多少次都不会影响系统状态的请求。

在HTTP方法中,GET,HEAD,PUT,DELETE是幂等的
所以在HTTP方法中,有些请求肯定是需要保证幂等性的,所以有些方法满足幂等性,有些不满足,根据需求进行选择。

安全方法

RFC提出了一个安全方法的概念,简单来说任何只读方法都应该属于安全方法,服务器收到标明为这些方法的请求不应该导致其资源状态上的改变,或者产生任何副作用。一般而言GET,HEAD,OPTIONS,TRACE都属于安全方法

常用的HTTP方法

GET

一般是请求固定或者说已有的资源,比如访问某个网站的hem文件:page.com/index.htm或者访问某个网站的固定资源page.com/download/down.exe。
GET主要关于于传输性能上的优化,通常大家所说的获取一些资源/页面/信息,默认都是用GET方法来执行

HEAD

于GET方式基本一致,都是用于传输资源或者信息的,但是HEAD只传输头部,不需要传输消息正文,也就是说用HEAD和GET访问同一个资源,GET的头部其实就是HEAD,所以HEAD常用于检测某个资源是否存在,只需要返回较小的头部就好了

POST

POST不具备幂等性,向执行的资源提交数据请求,比如提交申请表单或者上传文件,所以POST从一定程度上来说可以看成是数据库的ADD操作

对于POST操作,HTTP服务器应当选择合适的HTTP状态码来作为POST的返回码,比如正常的200,201等, POST既不安全也不是幂等的

PUT

PUT常用来更新现有资源(如果资源不存在,则API可能决定是否创建新资源,如果PUT创建新资源,源服务器需要返回HTTP状态码201(created)客户端,如果修改成功,那么返回200(OK)或者204(not content only head)给客户端,以指示请求成功完成

PATCH

PATCH是对PUT的补充,PUT是针对一整个资源,PATCH可以更新某个资源里面的一部分信息,比如用户的id,等细节类的信息

PUT在针对的单个资源不存在的时候有点类似POST操作,如果资源存在的话,PUT操作就是我们熟悉的Update操作

DELETE

DELETE就很好理解了,就是删除某个资源,
一般HTTP服务器对于DELETE请求返回的状态码

  • 200(OK)如果对于该请求有相应的描述请求体的话,
  • 202(Accepted)请求已经被接收,但是还没处理,可能在排队等候,
  • 204(No Content)如果操作成功,但是没有相应的描述体,就返回204,和200相似
    DELETE操作是幂等的,如果重复删除某个资源,第二次开始的操作不会发生改变,并且会返回404的状态码

现在常用的代码注释自动生成API接口描述是Swagger有兴趣的可以去了解一下。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值