REST(RESTful)Web服务是否与HTTP绑定(耦合或需要)?

时间:2014-01-12 21:53:23

标签: web-services rest http protocols

标题基本上都说明了,REST真的与HTTP绑定还是协议无关? 因为我刚刚阅读了几篇关于REST的文章,我遇到了这两个意见所以我不知道哪一个是正确的。

1 个答案:

答案 0 :(得分:7)

请允许我引用这本书"RESTful Web Services"(粗体是我的):

  

REST的故事

     

REST很简单,但它定义明确而不是   将网络服务作为半网站实施的借口是因为   “他们是一样的。”不幸的是,直到现在主要的REST参考   是罗伊菲尔丁2000年博士论文的第五章。论文,这是一个   很好的阅读博士学位论文,但离开了大部分现实世界   问题没有答案。那是因为它表示REST不是一个   体系结构,但作为一种判断体系结构的方式。术语“RESTful”   就像术语“面向对象”一样。语言,框架或者   应用程序可能以面向对象的方式设计,但那样   不会使其架构成为面向对象的架构。甚至   在面向对象的语言(如C ++和Ruby)中,可以编写   不是真正面向对象的程序。 摘要中的HTTP确实如此   很好地遵循REST的标准。(自从菲尔丁以来应该这样做   共同撰写了HTTP标准并写了他的论文来描述   Web的体系结构。)但真正的网站,Web应用程序和   Web服务经常背叛REST的原则。 (...)

请注意,在第二个粗体中,他说:“HTTP非常适合REST”,而不是“REST适合/依赖于HTTP”。

因此,简而言之:没有,术语“REST”不一定与HTTP相关联。 RESTful Web服务只是遵循RESTful架构的Web服务,希望实现Fielding在其论文中列出的好处(例如无状态,可寻址性等)。

创建RESTful Web服务的一种方法是根据资源(而不是SOAP样式使用的操作)来考虑应用程序。这种与正确使用HTTP(其方法和状态代码)相结合的思维方式可以导致支持REST的架构(并且具有所有好处)Fielding的论文枚举。