- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * 1-* * 1-* 10 * 1-* * 1-* * 1-* * 1-* * 1-* * 1-* * 1-* * 1-* * 1-* * 1-* RESTful架构 理论课 什么是REST REST(Representational State Transfer):表述性状态转移,分布式超媒体软件的一种架构风格。 一套简单的设计原则、一种架构风格(或模式),不是一种具体的标准或架构。 基于使用HTTP、URI等现有的广泛流行的协议和标准,并由几个核心抽象概念支撑。 对Web的本质回归:一种真实描述Web的方式,不被特定时期的特定应用程序概念歪曲。 提供区分良好实践和糟糕实践的途径:判断特定实践是否与Web架构一致。 资源 URI规范(RFC 2396)指出: “资源可以是任何有标示的东西”; “并非所有的资源都是通过网络能够获取的”。 任何事物,只要有被引用的必要,就是一个资源(resource)。它可以是一个实物,也可以是一个抽象的概念。 通常一个资源是某个可以存放在计算机上并体现为比特流的事物。在Web中,可以这样认为——资源是URI标示的东西。 表示 资源和表示不是一码事。Web上获取的不是资源,而是资源的表示。 对于给定的资源,可以有很多不同的表示。 表示 表示 表示 HTML XML Flash Text 资源 表示 标识符(URI) 状态 在客户-服务端模式下,让客户端维护应用状态,并确保客户端向服务器发出的请求都包含理解请求所需的全部信息,而服务器不应该维护该状态。 REST式解决方案是使用URI。每个概念上独立的资源都可使用单个URI,不希望通过Cookie或隐藏在有效负载的参数来提供额外信息。 例:查看john在某网站2008-10-10的所有文档资料/user/john/2008-10-10/stuff REST约束和风格 Url表示资源 CRUD操作 状态表述转移 无状态服务 Http状态码、 Cache控制 Proxy REST核心是构架以资源为核心的模型 REST关键原则 为所有资源定义ID 将所有资源链接在一起 使用标准方法 资源多重表示 无状态通信 为所有资源定义ID 思考一下人们构建的系统,通常会找到一系列值得被标识的关键抽象。每个资源都应该是可标识的,都应该拥有一个明显的ID——在Web中,代表ID的统一概念是:URI。URI构成了一个全局命名空间,使用URI标识你的关键资源意味着它们获得了一个唯一、全局的ID。 举例如下: /customers/1234 /orders/2007/10/776654 /products/4554 /processes/salary-increase-234 注意:以上URI都是对一个Web中的资源的标识。 为所有资源定义ID /orders/2007/11 /products?color=green 注意:以上两个URI不是对一个资源的标识,而是对一类资源集合的标识。由于资源集合自身也是资源,也可以被标识。 总结:无论Web中的资源代表单一数据项、数据项集合、虚拟亦或实际的对象还是计算结果等,都可以使用URI标识。 将所有资源链接在一起 注意:以上xml片段中有两个超链接,通过超链接可以将更多的资源链接在于一起。 使用URI表示链接的优势之处在于,链接可以指向由不同应用、不同服务器提供的资源——因为URI命名规范是全球标准,构成Web的所有资源都可以互相通信。 总结:任何可能的情况下,使用链接指引可以被标识的资源 使用标准方法 常用的HTTP标准方法是GET/POST。除此之外,标准方法集合中还有PUT、DELETE、HEAD、OPTIONS等八种方法 使用标准方法 在实现REST原则的架构中,可以通过组成HTTP应用协议的通用接口访问服务程序 注意:以上通过使用标准方法映射服务程序中的特定操作 使用标准方法 总结:为使客户端程序能与Web中的资源相互协作,资源应该正确地实现默认的应用协议(即HTTP协议),并使用协议标准的GET、PUT、POST和DELETE方法。 资源多重表示 HTTP采取的方式是允许数据处理和操作调用之间关系分离的。如果客户程序知道如何处理一种特定的数据格式,那就可以与所有提供这种表述格式的资源交互。 举例如下: 以上HTTP/GET请求的结果是xml格式表示的客户信息 以上HTTP/GET请求的结果是Vcard格式表示的客户信息 总结:尽可能针对不同的需求提供资源多重表示 无状态通信 REST要求状态要么被放入资源状态中,要么保存在
文档评论(0)