写点什么

文章:深入浅出 REST

  • 2007-12-25
  • 本文字数:606 字

    阅读完需:约 2 分钟

尽管 Web 无处不在,可许多人还是很难将 Web 的架构原则应用在自己的系统之中。表述性状态转移(REST),Web 背后的架构,正在迅速地成为架构师在开发分布式系统时考虑到的可行方案之一。在这篇发表的 InfoQ 中文站文章中,Stefan Tilkov 深入研究了使用 REST 设计系统的方法,并考察了传统基于接口(interface-based)的设计方法与其的异同。

不知你是否意识到,围绕着什么才是实现异构的应用到应用通信的“正确”方式,一场争论正进行的如火如荼:虽然当前主流的方式明显的集中在基于 SOAP、WSDL 和 WS-* 规范的 Web Services 领域,但也有少数人用细小而洪亮的声音主张更好的方式是:REST。

Tilkov 在一开始就列举了 REST 的关键原则,使得对这个充满争议的架构的学习变得简单了许多:

  • 为所有“事物”定义 ID
  • 将所有事物链接在一起
  • 使用标准方法
  • 资源多重表述
  • 无状态通信

这些关键原则带来的一些好处列举如下:

对事物使用一致的命名规则(naming scheme),这样你就不需要提出自己的规则——依靠某个已被定义,在全球范围中几乎完美运行,并且能被绝大多数人所理解的规则。

还有:

统一接口使得所有理解 HTTP 应用协议的组件能与你的应用交互。通用客户程序(generic client)就是从中受益的组件的例子,例如 curl、wget、代理、缓存、HTTP 服务器、网关还有 Google、Yahoo!、MSN 等等。

对于那些对 REST 背后理论感兴趣的人,Tilkov 还给出了基本情况介绍,以及这个领域权威内容的链接。

阅读全文:深入浅出 REST

2007-12-25 22:312324

评论

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

企业网站搭建避坑指南

姜奋斗

网站 新手指南 企业 网站搭建 避坑

字符串匹配 - Sunday算法

Geek_4z9ami

数据结构与算法 字符串匹配算法

MySQL事物-学习笔记

Edison

MySQL 数据库 数据库事务

Java项目如何分层

老胡爱分享

分层架构 项目

我是如何参与硅谷顶级开源项目并赚得2500美金

阿水

硅谷 Minio

Netty之旅:你想要的NIO知识点,这里都有!

一枝花算不算浪漫

Netty nio

learn go with tests 学习笔记(四)依赖注入

Geek_4z9ami

Go 语言

消息疯狂堆积!RocketMQ出Bug了?

Edison

RocketMQ 中间件

learn go with tests 学习笔记(五)并发

Geek_4z9ami

Go 语言

疫情之年 下半年区块链应用落地会加速么?

CECBC

区块链 场景应用落地

500行代码写一个俄罗斯方块游戏

程序员生活志

learn go with tests 学习笔记(二) 数组与切片

Geek_4z9ami

Go 语言

政策加持迎来区块链技术应用“红利期”

CECBC

Web 开发必须掌握的三个技术:Token、Cookie、Session

华为云开发者联盟

HTTP Token web开发 session Cookie

learn go with tests 学习笔记(七)反射

Geek_4z9ami

反射 Go 语言

零代码/无代码 vs 低代码 如何分类?如何区别?到底有什么不同?分析超过20款零代码低代码产品

代码制造者

编程 低代码 行业资讯 零代码

关于微服务架构思考

Axe

Executor看不懂?教你如何盘它

Edison

后端 线程池

数据采集能力受限?企业数字化运营如何迈出第1步

易观大数据

以区块链为基础 通证经济是下一代互联网的数字经济

CECBC

区块链 落地应用

learn go with tests 学习笔记(一) hello world

Geek_4z9ami

Go 语言

learn go with tests 学习笔记(三) 指针和错误

Geek_4z9ami

Go 语言

learn go with tests 学习笔记(六)进程同步

Geek_4z9ami

Go 语言

《effective-go》 学习笔记

Geek_4z9ami

Go 语言

RocketMQ源码解析-开篇

Edison

RocketMQ 中间件

nested exception is java.lang.IllegalStateException: refreshAfterWrite requires a LoadingCache异常解决

谙忆

人生修炼秘籍

xiaoboey

时间管理 人生修炼 知行合一 熵增 时间复利

Python爬取微信公众号文章保存到数据库

wjchenge

用户体验(UX)设计≠用户界面(UI)设计

刘华Kenneth

敏捷 设计 UX 用户体验

“啰嗦”是成事唯一正确的方法

霍太稳@极客邦科技

团队管理 个人成长 团队协作 沟通

话题讨论 | 特朗普正式封禁微信,iPhone 和微信二选一?

InfoQ写作社区官方

写作平台 话题讨论

文章:深入浅出REST_SOA_Udi Dahan_InfoQ精选文章