写点什么

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

  • 2007 年 7 月 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 年 7 月 02 日 21:2611082

评论 1 条评论

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

一文了解JDK12 13 14 GC调优秘籍-附PDF下载

程序那些事

GC JDK14 秘籍 JDK12 JDK13

股权交易中心+区块链试点将开始

CECBC

防篡改 股权交易 可追溯 信息存证

性能测试 + 操作系统 + 锁

Arvin

拥抱400GE新引擎,跨越新基建的时代龙门

脑极体

TOGAF实用教程(IT帮)

周金根

企业架构实施简介

周金根

Java架构-不要成为项目风险的奴隶

我是苞谷

Java

在线互动课堂低延迟交互利器:高性能异步化设计与监控

徐敏

线程模型 异步 Task 在线课堂

Zookeeper从入门到放弃之Zookeeper典型应用场景

小隐乐乐

zookeeper 分布式 分布式锁

搞事情?Spring Boot今天一口气发布三个版本

YourBatman

Spring Boot 新特性

实战案例丨ModelArts在数据标注、数据过滤上的应用技巧:自动分组

华为云开发者社区

人工智能 数据 图像识别 图片 分类

如何去学好JS的8条小建议

华为云开发者社区

html 编程 大前端 js 代码

ARTS WEEK6

紫枫

ARTS 打卡计划

面试题:Java 中的 ==, equals 与 hashCode 的区别与联系

简爱W

【API进阶之路】无法想象!大龄码农的硬盘里有这么多宝藏

华为云开发者社区

容器 层次 API 网关 华为云

设计模式之外观模式解析

Seven七哥

程序员 设计模式 外观模式

安全系列之——RSA的前世今生

诸葛小猿

安全 加密解密 非对称加密 rsa

Golang新手常犯错误之【循环迭代篇】

卓丁

常见错误 引用迭代 Go 语言

浅析区块链如何改变生活

CECBC

数字银行 供应链 身体监测 资产管理

区块链如何切入供应链金融市场?

CECBC

应用程序研发之基础知识分层与进化

superman

JVM系列-读懂 GC 日志

Rayjun

Java JVM GC

没想到 Hash 冲突还能这么玩,你的服务中招了吗?

程序猿石头

Java 安全攻防 后端 hashmap hash

LeetCode题解:206. 反转链表,JavaScript,While循环迭代,详细注释

Lee Chen

大前端 LeetCode

影响企业架构项目成功的8个重要步骤

周金根

推荐一款技术人必备的接口测试神器:Apifox

狂师

测试 测试驱动开发实战营 接口测试 测试框架

Unix路径是如何简化算法,架构师性能优化 John 易筋 ARTS 打卡 Week 10

John(易筋)

ARTS 打卡计划

高并发系统设计要点

南方有乔木兮

Java

癌症筛查清单

Lee Chen

大前端 随笔杂谈

Java架构-代码分层的设计之道

我是苞谷

OMG组织的企业架构建模规范

周金根

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