RESTful 笔记

REST(Representational State Transfer)是 Roy Fielding 提出的一个描述互联系统架构风格的名词。

Another way to say REST is in HTTP, any request a client can make involves a URL and an HTTP method. With REST, the URL is designed to represent a noun and the HTTP method always maps to one of several standard verbs, which will be performed against that noun.

In summary, each HTTP method will cause a well-defined action on the resource represented by the URL it operates on. The methods can be compared to SQL commands: GET is like "SELECT," DELETE is like "DELETE," POST is like "INSERT" with an auto-generated ID, and PUT is like "INSERT OR UPDATE IF EXISTS" with an ID specified.

REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。

1. stateless

有利于scalabilty,cluster

客户端可用cache提高性能

2. 分层

这表示组件无法了解它与之交互的中间层以外的组件,这是博士论文中提到的,不是很理解

3. Get/Put/Delete方法的幂等性

4. Security

与SOAP架构相比,REST架构的优点是:

SOAP接口隐藏在SOAP Envelope中了,对外暴露的是相同的URL(对于同一个web service), 不利于代理服务器根据HTTP method做安全控制, 除非解析SOAP Envelope 内容。

 而且SOAP 采用HTTP Post也不利于浏览器做cache

相关推荐