HTTP1.1 2000年 Roy Fielding Apache,Adobe
Representational state transfer : 表现性状态转移
?
- 客户端用url去访问一个资源,服务器端返回该资源的信息
- 客户端也可以通过url去触发一个动作,进行状态转移,状态信息在url请求和响应中包含,服务器端不保存状态。比如用户访问/login,服务器端返回一个cookie,表示当前用户的状态已经由 not logged in 转变成logged in ,用户接下来的请求都带上这个cookie信息,服务器就能识别该用户已经登陆了,服务器端不保存用户的登陆信息。常见的服务器端保存用户信息的形式:通过jsp的session对象保存loggedIn = true),通过数据库保存当前登录的用户信息等等。
- 状态转移之后,用户通过同一个url访问同一个资源,得到的响应可能不一样了,因为状态变了。
使用REST设计,简单,可扩展性好。
- 简单,用url标识一个资源,发起一个动作;比soap rpc等复杂协议简单得多
- 可扩展性好,服务器端无状态、可以灵活部署。