写点什么

李锟谈 Fielding 博士 REST 论文中文版发布

  • 2007-07-02
  • 本文字数:1284 字

    阅读完需:约 4 分钟

日前,Roy Thomas Fielding 博士关于 REST 的论文 Architectural Styles and the Design of Network-based Software Architectures 中文版(《架构风格与基于网络的软件架构设计》)正式对外发布。在这个2000 年所著的论文中,首次系统阐述了REST 的架构风格和设计思想,对理解Web 架构和HTTP、URI 等标准背后的原理非常有帮助。InfoQ 中文站编辑霍太稳就此采访了主导此次公益性翻译的 Ajaxcn.org 网站站长李锟

Fielding 博士是 HTTP 和 URI 等 Web 架构标准的主要设计者,也是 Apache HTTP 服务器的主要设计者,他的这篇论文是 Web 发展史上的一个重要的技术文献。深入理解 REST 等 Web 架构背后的工作原理,对于开发者设计和构建高效的 Web 应用,这也是李锟决定发起这个翻译项目的主要原因:

翻译这篇论文就是为了将 REST 的思想介绍到中国。我们翻译了《Ajax 模式与最佳实践》,这是一本关于 REST 架构设计的非常好的书籍,内容非常深入。但是如果不懂 REST,就难以理解这本书中介绍的架构。而这本书的作者对于 REST 的来龙去脉也语焉不详,似乎认为每个读者都已经读过了 Fielding 的论文,对于母语不是英语的中国读者而言,这个假设是不成立的。而 Fielding 的论文阅读的难度非常大,如果不翻译过来,普通的读者肯定无法读懂(这个判断是客观的,因为我们自己也是在初稿翻译出来后,又费了很大功夫才真正理解了这篇论文)。为了帮助这本书的读者,我启动了这个公益性的翻译项目。

翻译的过程也是一次学习的过程,在这篇论文的翻译过程中,李锟充分理解了 REST 的各种架构约束,例如通用接口、操作语义的可见性、支持大粒度的数据通信等等。也理解了 HTTP 和 URI 的正确的使用方式,因为 HTTP 和 URI 正是基于 REST 的思想设计出来的。所有 HTTP 的扩展或者使用 HTTP 的 Web 应用,都应该与 REST 的各种架构约束相匹配,否则肯定无法在 Web 上面取得成功。

在过去的 7 年中,Web 技术的发展验证了本论文所主要阐述的 REST 技术的有效性,李锟举例说:

一个典型的反例就是 SOAP,尽管它在企业应用中取得了一些成功,并且被某些人吹嘘的天花乱坠,但是在 Web 应用中,却几乎没有人愿意使用 SOAP。我的判断是,主要的原因在于 SOAP 违反了 REST 的通用接口和语义可见性等架构约束。它仅仅是将 HTTP 作为一种传输协议来使用的,这种将 HTTP 仅仅作为一种能够穿越防火墙的传输协议来使用的扩展不只 SOAP。

但李锟表示虽然理解 REST 对 Web 开发非常重要,这一技术在国内的应用现状却并不乐观:

REST 应用目前在国内刚刚萌芽,还谈不上有什么应用。在 REST 的思想传入国内之前,国内绝大多数开发者并不理解 HTTP 和 URI 是用来做什么的,当然也包括我在内。

这篇论文由李锟和他的几个朋友共同翻译,如 91yee 翻译社区的负责人廖志刚、 Matrix 技术社区负责人刘丹和《重构与模式》的译者杨光等,由李锟负责全文的审校和润色。在这期间还得到了国内技术社区一些专家的支持,比如庄表伟、李琳骁、孟岩骆古道范凯、刘新生、刘江等。全程用时两个半月时间。

Update:

本论文于 2013 年被李锟重新翻译,新版经马国耀审校后于 2014 年发布于 InfoQ 中文站:查看新版论文译本

2007-07-02 21:2614479

评论 1 条评论

发布
用户头像
thx
2020-10-09 11:11
回复
没有更多了
发现更多内容

Druid 连接池源码阅读 10

石小天

Amazon MSK Serverless 现已正式推出,无需再为托管式 Kafka 集群进行容量规划

亚马逊云科技 (Amazon Web Services)

kafka Serverless

实现compact table command

Asha

零基础学Java第四节(字符串相关类)

编程攻略

java编程

百尺竿头更进一步丨拓展 Amazon Aurora 的读写能力之 Gaea 篇

亚马逊云科技 (Amazon Web Services)

Amazon 环境搭建

单片机上常用-GB2312、GBK汉字取模与字库偏移地址的计算与汉字描点

DS小龙哥

5月月更

数据结构之时间复杂度和空间复杂度

芒果酱

数据结构 算法 5月月更

代码之外:校招该如何准备开发项目

宇宙之一粟

校招 项目开发 5月月更

Amazon Personalize 个性化效果评估,从准确性到多样性、新颖性和偶然性

亚马逊云科技 (Amazon Web Services)

Amazon 模型

【LeetCode】在长度 2N 的数组中找出重复 N 次的元素Java题解

Albert

LeetCode 5月月更

【刷题第15天】剑指 Offer 09. 用两个栈实现队列

白日梦

5月月更

在线HTML转TSV工具

入门小站

工具

大模型走向产业的一小步,AI走向普惠的一大步

脑极体

Linux环境编译多个C程序文件

Loken

音视频 5月月更

druid 源码阅读 10—— 过一下流程图中的getConnectionDirect

张大彪

Tech Talk 活动回顾|化“被动”为“主动”,如何构建安全合规的智能产品

亚马逊云科技 (Amazon Web Services)

产品 安全 解决方案

深入剖析 | snowflake算法

九叔(高翔龙)

算法 雪花算法 uuid 全局唯一ID snowflake

druid源码学习十

Nick

Apache Druid

区块链技术已站上真正意义的风口,如何把握?

CECBC

【中国信通院 x ShardingSphere 金融用户社区】成立,多家知名金融机构正式入驻

SphereEx

Apache 数据库 开源 ShardingSphere SphereEx

Kubectl-ice 插件展示集群容器配置信息更强大、更便捷

Marionxue

kubectl插件 kubectl-ice 容器配置

SAP UI5 OData V4 模型的构造方式

汪子熙

JavaScript 前端 SAP ui5 5月月更

模块六:作业

本人法海

「架构实战营」

css基本概念学习篇【四】

恒山其若陋兮

5月月更

Vite 与 Vue Cli 对比 - 尤雨溪: Vite 会取代 vue-cli 吗?

蒋川

Vue vite vue cli

druid 源码阅读(十一)maxWait 参数

爱晒太阳的大白

5月月更

Kitex 源码解析活动发布!

baiyutang

Go 字节跳动 微服务 5月月更

设计者模式之装饰者模式

乌龟哥哥

5月月更

Docker下Java文件上传服务三部曲之三

程序员欣宸

Java Docker 5月月更

如何在你的 wordpress 网站中添加搜索框?

海拥(haiyong.site)

WordPress 5月月更

【Meetup 预告】OpenMLDB x DolphinScheduler 链接特征工程与调度环节,打造端到端 MLOps 工作流

第四范式开发者社区

人工智能 机器学习 数据库 调度 特征工程

李锟谈Fielding博士REST论文中文版发布_Java_霍太稳@极客邦科技_InfoQ精选文章