RESTful是一种架构风格。REST ( Representational State Transfer ) 指的是一组架构约束条件和规范。满足这些约束条件和规范的应用程序就是 RESTful。REST的核心是面向资源,降低开发的复杂性,提高系统的可伸缩性。
REST提出设计概念和准则为: 网络上的所有事物都可以被抽象为资源 每个资源都有唯一的资源标识,对资源的操作不会改变这些标识
统一接口,所有的数据的元操作,即CRUD GET (SELECT):从服务器取出资源 (一项或多项)。 POST (CREATE):在服务器新建一个资源。 PUT (UPDATE):在服务器更新资源 (客户端提供完整资源数据)。 PATCH (UPDATE):在服务器更新资源 (客户端提供需要修改的资源数据)。 DELETE (DELETE):从服务器删除资源。
无状态,指的是请求的状态,而不是资源的状态。是两个关联用户 (Client与Server) 进行交互操作时所留下来的公共信息(工作流、用户状态信息等数据)。这些信息可以被指定在不同的作用域中,如page、request、session、application或全局作用域,一般由Server中的Session来保存这些信息。 在基于状态的Web服务中,Client与Server交互的信息 (用户登录状态) 会保存在Server的Session中。再这样的前提下,Client中的用户请求只能被保存有此用户相关状态信息的服务器所接受和理解,这也就意味着在基于状态的Web系统中的Server无法对用户请求进行负载均衡等自由的调度 (一个Client请求只能由一个指定的Server处理)。同时这也会导致另外一个容错性的问题,如果指定的Server在Client的用户发出请求的过程中宕机,那么此用户最近的所有交互操作将无法被转移至别的Server上,即此请求将无效化。 在无状态的Web服务中,每一个Web请求都必须是独立的,请求之间是完全分离的。Server没有保存Client的状态信息,所以Client发送的请求必须包含有能够让服务器理解请求的全部信息,包括自己的状态信息。使得一个Client的Web请求能够被任何可用的Server应答,从而将Web系统扩展到大量的Client中。
如何实现如用户信息的无状态:
将用户信息保存到cookie中,或登录时将token保存至内存数据库,再将token反回给客户端,客户端每一次调用都传送这个token。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。