BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

RESTful世界里的Cool URI

| 作者 Thomas Bandholtz 关注 0 他的粉丝 ,译者 王锐 关注 0 他的粉丝 发布于 2008年4月17日. 估计阅读时间: 5 分钟 | 都知道硅谷人工智能做的好,你知道 硅谷的运维技术 也值得参考吗?QCon上海带你探索其中的奥义
假想一下,如果要以最小的集成代价实现一个分布在全世界范围的信息空间,用它来共享机器可识别的数据,会怎么样?这是关于REST的吗?不是的。根据 SWEO 的说法,这跟语义网有关。那些Cool URI有助于实现这种方式。所以,去看看RESTful SOA URI是不是也很“酷”可能是值得的。

语义网教育和拓展兴趣组织(Semantic Web Education and Outreach ,简称SWEO)在3月底执照到期。它的最后一个产品是一个W3C的关于Cool URIs for the Semantic Web的备忘录。URI能很酷吗?这里引用Tim Berners-Lee从1998年开始发表的一篇早期文章 (当时他还没有‘Sir’这一头衔)
“什么使URI很酷?
一个很酷的URI是一个不会变的URI。
URI会怎么变?
URI本身不变:是人改变了它们。”
现在Cool URI没有那么简单了。2005年,经过旷日持久的对“HTTP解除引用(dereference)功能范围”(httpRange-14)的辩论之后,W3C技术体系架构组(Technical Architecture Group ,简称TAG)最后决定“如果得到的HTTP响应代码是200(成功获取),这表示这个URI的确是标识了一个信息资源,但是如果没有得到这个响应,或者得到了一个不同的代码,就不能做这样的假设”,这与2005年的TBL总结一致。目前的SWEO备忘录参考了一个更详细的、由Roy T. Fielding发表的文章
a)如果一个“http”资源对一个GET请求的响应码是2xx,那么被那个URI标识的资源是一个信息资源;
b)如果一个“http”资源对一个GET请求的响应码是303(See Other),那么被那个URI标识的资源是任何资源;
c)如果一个“http”资源对一个GET请求的响应码是4xx(错误),那么这个资源被认为是未知的。

Fielding几乎是REST体系架构的同义词。然而在RESTful SOA中几乎很难看出httpRange-14的决定。例如,无论是在Mark Bakers的“hypermedia constraint”,还是在Anne Thomas Manes的“REST is about Resources”中都没有。

RDF表示资源描述框架(Resource Description Framework),它“允许使用者以一种计算机可处理的方式来描述现实世界的Web文档和概念--人、组织、话题、事物。在Web上发布这些描述,创建语义网。” 同时出现人类可读的Web文档--也可以叫做“信息资源”--与计算机可处理的描述符或者语义概念引起了与HTTP URI代表什么有关的二义性问题。http://www.example.com/people/alice 是代表Alice的设计完美的主页,还是代表一些RDF编码的Alice元数据?它能否也像一个vCard、一个FOAF记录、或者一些HR数据集一样后跟任何公司特定模式(schema)?

这种问题已经超出了协议无关的URI语法的范围,这得由HTTP协议提供内容协商作 为解决方案。HTTP客户端可以用自己喜欢的数据格式和语言,在请求的头部追加目标URI来传送。内容提供者应该提供这些设置服务。SWEO备忘录提供了 一个解决方案,这个解决方案为每一种数据格式实现了一个独立的URI,另外还有一个“通用的”URI。尽管通用URI可以重定向到其中的一个,但是如果必 要,它还允许根据运行时HTTP请求中的‘Accept’设置,直接从多种格式中选择中意的格式。同时,一份更详细的Apache HTTP Server 最佳实践也已发布了。

RESTful SOA可能会认为,这主要适合那些固定文档。一个动态的SOA服务器能够很容易的实现这个“通用”URI概念而无需任何重定向,它只需把请求格式的内容按需提供即可。这个观点对于内容提供来说是正确的,但是重定向体系架构对链接和引用支持更好。这也利用了资源管理和治理,语义网中是这样,RESTful SOA中也是这样。或许,这两个应用领域根本就不能泾渭分明的划清界限。

查看英文原文Cool URIs in a RESTful World

.

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT