Agentic AI、具身智能、强化学习框架、端侧大模型……来QCon上海站,感受AI的未来! 了解详情
写点什么

RESTful 世界里的 Cool URI

  • 2008-04-16
  • 本文字数:1494 字

    阅读完需:约 5 分钟

假想一下,如果要以最小的集成代价实现一个分布在全世界范围的信息空间,用它来共享机器可识别的数据,会怎么样?这是关于 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

.

2008-04-16 06:511750
用户头像

发布了 29 篇内容, 共 49386 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

【FAQ】HarmonyOS SDK 闭源开放能力 —Ads Kit

HarmonyOS SDK

HarmonyOS

ITSM新用法揭秘:构建科技公司售后服务管理体系

嘉为蓝鲸

运维 ITSM 流程管理

小而美:两步完成从源码到应用的极简交付

阿里巴巴云原生

阿里云 Serverless 云原生

大模型在蓝鲸运维体系应用——蓝鲸运维开发智能助手

嘉为蓝鲸

运维 大模型 运维管理

2024深圳国际数字能源展览会

AIOTE智博会

能源展 数字能源展 深圳能源展

对话阿里云云原生产品负责人李国强:推进可观测产品与OpenTelemetry开源生态全面融合

阿里巴巴云原生

阿里云 云原生 可观测

rbenv:Ruby 多版本管理利器

不在线第一只蜗牛

ruby 后端 项目开发

京东面试:SpringBoot同时可以处理多少请求?

王磊

25更敢为 | TATA木门25周年庆典盛大启幕 探索家居品质生活新静界

极客天地

飞天发布时刻|阿里云可观测全速演进

阿里巴巴云原生

阿里云 云原生 可观测

云+AI,火山引擎助力泛互联网行业创新和增长

新消费日报

深入解析:Netty 与 Dubbo 的关系与应用

Liam

程序员 dubbo 后端 Netty 分布式系统

业务功能流程图是什么,怎么做?附带推荐8款流程图软件!

彭宏豪95

效率工具 职场 流程图 在线白板 流程图绘制工具

华为云发布ServiceStage:内置优秀业界实践「云应用管理和运维」模板

云计算 软件开发 华为云

一键自动化博客发布工具,用过的人都说好(公众号篇)

程序那些事

工具 程序那些事 自动发布

看不懂正则表达式?试试可视化工具吧!

京东科技开发者

牛马真的沉默了,入职第一天就干活

秃头小帅oi

一图解锁 | 运维管理到工具体系的建设逻辑

嘉为蓝鲸

运维管理 运维工具

AutoMQ 社区双周精选第十期

AutoMQ

Java 云计算 云原生

面向AI的开发:从大模型(LLM)、检索增强生成(RAG)到智能体(Agent)的应用

京东科技开发者

你还在用工单系统的思维建设ITSM吗?

嘉为蓝鲸

ITSM 运维管理 平台化

反射API与AOP:打造可插拔的插件式架构

技术冰糖葫芦

API Explorer API 文档 API 性能测试

基于Python的性能优化(线程、协程、进程)

我再BUG界嘎嘎乱杀

Python 性能优化

如何使用 NFTScan NFT API 在 Mint Blockchain 上开发 Web3 产品和协议

NFT Research

NFT NFTScan API 文档

抖音商品API接口:开启电商自动化和数据洞察之门

Noah

大厂B端/G端数据可视化项目如何做设计评审

京东科技开发者

9 个适用于小型企业的顶级API管理解决方案

幂简集成

API API接口管理 API接口工具 API管理

RESTful世界里的Cool URI_SOA_Thomas Bandholtz_InfoQ精选文章