博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转]RESTful Web API中的Http协议语义
阅读量:6875 次
发布时间:2019-06-26

本文共 1530 字,大约阅读时间需要 5 分钟。

术语

在讲Http协议语义之前,我们先讲两个术语:资源资源表述

资源(Resource)

在REST的世界中,每种事物,比如一个产品、一个用户或是一个网页都被视为资源(Resource)。

资源表述(Representation of the resource

当浏览器为一个资源发送了HTTP请求后,服务器会发送一个文档作为回应,通常会是一个HTML文档,又或是图片、视频等。不论服务器返回了什么文档,我们都将这个文档称为资源表述(representation of the resource)。

Http语义协义

Http定义了8种不同的类型消息,在RESTful中常用到的有以下几种:

POST

基于给定的表述信息,在当前资源的下一级创建新的资源。

服务器对POST请求最常见的响应码是201(created),告之客户端资源创建成功;或是202(accepted),这表示服务打算按照提供的表述信息来创建一个资源,但是现在还没有真正的创建完成。

DELETE

销毁一个资源。

当客户端想要删除一个资源时,可以发送一个DELETE请求。服务器返回的响应码是204(no content),表示删除成功。如果试图GET一个不存在的资源,服务器会返回错误的响应码404(not found)。

DELETE请求有一个重要的属性:它是幂等的。所谓幂等,就是发送多次请求对资源状态的影响和发送一次请的影响是一样的

幂等性是一个很有用的特性,因为互联网不是一个可靠的网络,假设我们发送了一个DELETE请求,然后连接超时了,我们没有收到响应信息,所以我们无法得知资源是否被正确地删除了,但是我们可以利用DELETE请求的幂等性特性,再次发送DELETE请求并不断重试直到收到服务器响应为止。因为多次执行DELETE请求并不比只执行一次DELETE请求造成多的影响。

PUT

用给定的表述信息替换资源的当前状态。

客户端一般通过GET请求获取资源表述,然后对其进行修改,最后将修改后的表述作为PUT请求的负载数据发送回服务器,修改完成后,服务器返回200或是204响应码。

PUT请求也是幂等的。

GET

获取资源的某个表述(一个资源可以有多个表述)。

客户端通过发送GET请求来获取某个URL所标识的资源表述。服务器以application/vnd.collection+json格式返回资源表述。GET请法语最常见的响应码是200(OK)。

GET被定义为安全的HTTP方法,这是因为向服务器发送一条或是多条GET请求对资源的影响和没有发GET请求一样,不会对既有资源有作何影响。安全方法都是幂等的

 

以上四个协议对应着中的增(Insert)删(delete)改(update)查(select)操作。

下面两个方法是客户端在分析研究API的时候经常使用到的

HEAD

获取服务器发送过来的头信息(不含资源表述信息)。

HEAD请求和GET请求一样,是安全方法,对HEAD请求最简单的理解就是轻量级别的GET请求,因为服务器只返回头信息,不需要返回资源表述信息。

用HEAD请求来代替GET请求,不会节约作何时间,但可以节省带宽的使用。

OPTIONS

获取这个资源所能响应的HTTP方法列表。

OPTIONS请求是HTTP的原生探索机制。一个OPTIONS请求的返回结果包含这个资源所支持的所有HTTP方法,如GET/PUT/DELETE/POST等。

 

 

转载地址:http://blog.csdn.net/chris_mao/article/details/49452523?utm_source=tuicool&utm_medium=referral

你可能感兴趣的文章
设计模式学习(四):结构型模式
查看>>
Intra-Query Parallel Thread Deadlocks
查看>>
[Apache Tomcat]Tomcat能承受的极限压力测试
查看>>
更愉快的书写CSS
查看>>
MUSICA(多尺度图像对比度增强)算法的简要原理及VC实现-1[r]
查看>>
有中国特色的云计算是咋样的
查看>>
Exchange 跨林迁移 Part3 添加域信任关系
查看>>
Java中的增强 for 循环 foreach
查看>>
不需要太阳的向日葵机器人
查看>>
springCloud(12):使用Hystrix实现微服务的容错处理-Hystrix的监控
查看>>
Linux下一款很好用的截屏工具
查看>>
AD-为用户组添加成员命令 Add-ADGroupMember
查看>>
shell特殊符号、cut命令、sort_wc_uniq命令、tee_tr_split命令、shell特殊符号下
查看>>
KVM虚拟化笔记(二)------kvm虚拟机Linux系统安装
查看>>
Filezilla 利用私钥无密码登录
查看>>
PPP验证(PAP和CHAP)
查看>>
怎样使用Secure CRT查看vcenter和esxi主机的日志文件
查看>>
郁金香
查看>>
一个中英文键盘记录源代码
查看>>
机器学习&&深度学习
查看>>