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