术语
在讲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等。
相关推荐
可公开访问的服务的预期增长可以从工具支持和自动化中受益匪浅,这两者都是语义Web服务(SWS)框架的重点,特别是解决服务发现,组合和执行的问题。 作为第一个SWS标准,World Wide Web Consortium在2007年产生了一...
这是一个python / Flask Web应用程序,它公开接口(Web GUI和RESTful API)以在词典中查找语义相似(多词)的术语,以及将原始文本适当地预处理为句子和术语的功能令牌。 词典中的单词嵌入是由gensim word2vec实现...
看一下React中围绕此API开发的一个小的搜索引擎。 欢迎反馈。 例 curl ' https://api.feedirss.com/search/entries?q=news ' | json_pp { " data " : [ { " id " : " 86b0f829-e300-4eef-82e1-82f34d03aff6 " , ...
考阿休息路由器 最强大,灵活且可组合的路由器,可轻松构建企业RESTful API! 您可能也对感兴趣-最小功能的600字节客户端路由器。高光生产:准备用于可组合性:将多个资源和多个路由器分组灵活性:覆盖控制器和请求...
它支持所有类型的Fiori应用程序以及Web API的开发。 它基于技术和框架,例如用于定义语义丰富的数据模型的核心数据服务(CDS)和用于创建具有OData协议绑定的OData服务的服务模型基础结构以及用于自定义逻辑和基于...
通过提供工具来处理RDF数据,使用ScalaServerPages创建RESTful Web服务和Renderlet,Clerezza允许轻松开发语义Web应用程序。 内容根据W3C RDF规范存储为三元组。 这些三元组通过Clerezza的智能内容绑定(SCB)存储。...
它的API简化了符合标准的HTTP资源遍历和RESTful Web服务的使用,而不会模糊基础协议。 该库手动实现基于TCP套接字的HTTP。 因此,它不依赖于ext/curl 。产品特点支持HTTP / 1和HTTP / 2安装该软件包可以作为依赖项...
通过提供工具来处理RDF数据,使用ScalaServerPages创建RESTful Web服务和Renderlet,Clerezza允许轻松开发语义Web应用程序。 内容根据W3C RDF规范存储为三元组。 这些三元组通过Clerezza的智能内容绑定(SCB)存储。...
单个本体中的API逻辑 基于SPARQL的约束控制RDF输入质量 SPARQL端点和图存储协议端点 HTTP内容协商和缓存支持 遵循原则,为每个应用程序状态提供单独的RDF资源 AtomGraph对语义技术的直接使用导致了极端可扩展和灵活...
一个 Node.js Web 服务框架,用于构建语义正确的 RESTful Web 服务,可用于大规模生产。 restify 针对内省和性能进行了优化,并用于地球上一些最大的 Node.js 部署。 一些业内最受尊敬的公司使用 restify 为地球上...
使用Ctrl + F或Command + F搜索模块。 欢迎捐款。 其他很棒的列表,有用的jQuery插件有用的Wordpress插件...Restify-一个Node.js Web服务框架,经过优化,可构建语义正确的RESTful Web服务,以供大规模生产使用。 费阿
该服务具有完整的RESTful API,开发人员可以使用它通过各种通信模式在其SaaS的各个组件与移动应用程序之间发送消息。 该API的基础是一个高效的消息传递引擎,该引擎在设计时考虑了可伸缩性和安全性。 其他...
PaddleX GUI安装环境说明3、PaddleX Restful:使用基于RESTful API开发的GUI与Web Demo实现远程的深度学习全流程开发;同时开发者也可以基于RESTful API开发个性化的可视化界面前往PaddleX RESTful API使用教程...
通过提供工具来处理RDF数据,使用ScalaServerPages创建RESTful Web服务和Renderlet,Clerezza允许轻松开发语义Web应用程序。 内容根据W3C RDF规范存储为三元组。 这些三元组通过Clerezza的智能内容绑定(SCB)存储。...
通过提供工具来处理RDF数据,使用ScalaServerPages创建RESTful Web服务和Renderlet,Clerezza允许轻松开发语义Web应用程序。 内容根据W3C RDF规范存储为三元组。 这些三元组通过Clerezza的智能内容绑定(SCB)存储。...
通过提供工具来处理RDF数据,使用ScalaServerPages创建RESTful Web服务和Renderlet,Clerezza允许轻松开发语义Web应用程序。 内容根据W3C RDF规范存储为三元组。 这些三元组通过Clerezza的智能内容绑定(SCB)存储。...
通过提供工具来处理RDF数据,使用ScalaServerPages创建RESTful Web服务和Renderlet,Clerezza允许轻松开发语义Web应用程序。 内容根据W3C RDF规范存储为三元组。 这些三元组通过Clerezza的智能内容绑定(SCB)存储。...
通过提供工具来处理RDF数据,使用ScalaServerPages创建RESTful Web服务和Renderlet,Clerezza允许轻松开发语义Web应用程序。 内容根据W3C RDF规范存储为三元组。 这些三元组通过Clerezza的智能内容绑定(SCB)存储。...
通过提供工具来处理RDF数据,使用ScalaServerPages创建RESTful Web服务和Renderlet,Clerezza允许轻松开发语义Web应用程序。 内容根据W3C RDF规范存储为三元组。 这些三元组通过Clerezza的智能内容绑定(SCB)存储。...
通过提供工具来处理RDF数据,使用ScalaServerPages创建RESTful Web服务和Renderlet,Clerezza允许轻松开发语义Web应用程序。 内容根据W3C RDF规范存储为三元组。 这些三元组通过Clerezza的智能内容绑定(SCB)存储。...