今天终于看完了Roy关于REST的论文,6个小时,不到100页的文档,当真是相当的晦涩,坦白说,看得很仔细,但也不是很理解,到底什么是REST?直接我看到了这句:
“HTTP 并不是被设计为一种传输协议(transport protocol),它是一种转移协议(transfer
protocol)(译者注:非常不幸,HTTP刚刚传入我国时,即被翻译为“超文本传输协议”,
因为“transport”和“transfer”在中文中都具有“传输”的含意,之后以讹传讹贻害无穷。为
了以示区别,译文中一律将“transfer”翻译为“转移”)” -- 原文
我才恍然醒悟,原来REST只是点链接,跳转页面呀,非要说成状态转移,都是名词惹得祸。这算是对REST最简单的理解了,我一直以为REST是一种WEB 应用程序架构,以至于会有JSR 311和Jersay。但从论文中所看REST就是WEB本身的架构风格吧,那么基于WEB的应用都至少使用了REST 的一些因素。试问哪个网站不是基于HTTP,不是点链接,跳页面呢?那些所谓RESTful的应用,或许就是支持更多REST特性的应用吧,搞得很复杂似的。
这篇论文写作时间是2000年,论文里还引用了Berners Lee关于 WEB的描述,“Web的主要目的是旨在成为一种共享的信息空间(a shared
information space),人们和机器都可以通过它来进行沟通。”
但十年过去了,WEB改变了很多,WEB的功能再也不是简单的信息共享了。WEB在Berners Lee的时代,或许只有科学家可以在网上发布消息,但现在已经是信息爆炸的信息时代了,每个人都可以是信息的生产者,以至于这些信息中充斥着垃圾,给了搜索引擘机会。WEB上越来越多五花八门的应用,网上购物,银行,REST要求无状态,怎么可以无状态呢?
所以我觉得REST的模型并不对,从技术的角度建模,为了架构风格而对现实应用加约束。JSR 311和Jersay都不用看了。
但REST关于语义URL的论述是极其有道理的,我相信有一天可以通过URL对现实世界建模。