【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

李锟谈 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:2613490

评论 1 条评论

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

【最不佳实践】Serverless应用优化四则

刘宇

Serverless 优化

2021年五面蚂蚁,从单体到分布式,必须解决的四个问题

策划Java工程师

Java 程序员 后端

区块链技术如何有效应对气候变化

CECBC

2021最新Java面试真题解析!1

策划Java工程师

Java 程序员 后端

2021Java大厂面试集合,java多线程

策划Java工程师

Java 程序员 后端

2021Java面经:Android屏幕适配-重点盘点

策划Java工程师

Java 程序员 后端

2021年Java知识体系总结,部门老大:redis-分布式锁再这么用

策划Java工程师

Java 程序员 后端

TRTC代码示例文档集合完毕!哪里不会点哪里!

腾讯云音视频

腾讯云 音视频 API sdk

基于 Apache APISIX,新浪微博API网关的定制化开发之路

API7.ai 技术团队

Apache 网关 APISIX 微博

频繁出现的分布式拒绝服务 (DDoS) 攻击​,有什么办法可以抵御吗?

九河云安全

关于Spring注解开发教程,打包全送你

华为云开发者联盟

Java spring 容器 注解 组件

2021年Java开发实战!仿微信的网络聊天室项目开发【完整源码讲解

策划Java工程师

Java 程序员 后端

Selenium 4以后,再不相见的API

FunTester

自动化 API selenium

防火墙 Keepalived 异常双活恢复后部分外网访问中断问题分析

Qunar技术沙龙

运维 防火墙 网络 故障诊断 keep-alive

2021Java春招面试真题详解,Git-如何优雅地回退代码

策划Java工程师

Java 程序员 后端

2021金三银四,开发者进阿里必看的30道经典数据库面试题【附详细解析

策划Java工程师

Java 程序员 后端

双非本化学跨专业,投岗阿里/滴滴后端三面,最终拿下offer

编程菌

Java 编程 程序员 面试 计算机

面试官:你了解JVM的锁优化吗?

百度开发者中心

Java 最佳实践 方法论 语言 & 开发

从河南暴雨、疫情反弹看区块链“灾疫”治理

CECBC

2021Java笔试题总结!Java个人学习之旅(第十天)

策划Java工程师

Java 程序员 后端

Linux 网络管理技术 OSI 七层模型和 TCP/IP 四层模型

学神来啦

Linux 运维 IP

graphql计算指令之@filter:查询中实现集合过滤

杜艮魁

开源 后端 低代码 graphql

Python代码阅读(第2篇):数字转化成列表

Felix

Python 编程 Code Programing 阅读代码

Hologres揭秘:深度解析高效率分布式查询引擎

阿里云大数据AI技术

2021程序员进阶宝典!《零基础(1)

策划Java工程师

Java 程序员 后端

graphql计算指令之@sortBy:查询中实现列表字段排序

杜艮魁

开源 后端 低代码 graphql

当企业遭遇分布式拒绝服务 (DDoS) 攻击时,第一时间该如何进行操作?

九河云安全

编译脚本:编写CMakeFile(一)

正向成长

CMakeFile

下一个颠覆的领域:区块链如何影响审计行业?(下)

CECBC

ironSource 在 2021 ChinaJoy 举办多场活动赋能中国开发者

15个经典面试问题,酸!校招进字节跳动

Java 程序员 后端

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