一、简述RESTful无状态
RESTful的无状态,即http的无状态。
服务端不保存任何请求状态信息,客户端的每一个请求都能被任意可用的Server应答。
没有cookie,也没有session。
二、RESTful设计原则
- 通过 URI 来标识资源:
系统中的每一个对象或是资源都可以通过一个唯一的 URI 来进行寻址,URI 的结构应该简单、可预测且易于理解,比如定义目录结构式的 URI。
- 统一接口:
建立创建、检索、更新和删除操作与 HTTP 方法之间的一对一映射:
若要在服务器上创建资源,应该使用 POST 方法;
若要检索某个资源,应该使用 GET 方法;
若要更新或者添加资源,应该使用 PUT 方法;
若要删除某个资源,应该使用 DELETE 方法。 - 资源多重表述:
URI 所访问的每个资源都可以使用不同的形式加以表示(比如 XML 或者 JSON),具体的表现形式取决于访问资源的客户端。在 REST 的世界中,资源即状态,每个网页是其一个状态;URI 是状态的表述;REST 风格的应用则是从一个状态迁移到下一个状态的状态转移过程。早期互联网只有静态页面的时候,通过超链接在静态网页间浏览跳转的 page->link->page->link… 模式就是一种典型的状态转移过程。
- 无状态:
客户端对服务器端的请求应该是无状态的,请求不要求服务器在处理请求时检索任何类型的应用程序上下文或状态。无状态约束使服务器的变化对客户端是不可见的,因为在两次连续的请求中,客户端并不依赖于同一台服务器。