"无状态"的HTTP

了解HTTP协定的无状态,需理解HTTP的“无连贯”性,说的是一个申请产生一个连贯,申请处理完毕,连贯即断开。所以客户端和服务端的信息沟通都是一次性的。
对应的“有连贯”性,可用TCP,或者指定了Keep-Alive的HTTP连贯来示意。

  因为HTTP的无连接性,服务端对客户端的状态信息不做保留,也就是单次申请的内容与上次申请不存在连贯性,客户端需在每次申请时将所有信息进行传递才可实现,并且申请产生的后果相互不存在关联性。

  当然,有了session和cookie,所有都变得不一样了


这一块网上的解释都比拟含混,有一个深究的帖子能够参考: http 协定无状态中的 "状态" 到底指的是什么?!

能“状态转换”的REST

  REST外面的ST(state translate),指的是RE所代表的体现层,也就是针对提供进去的各类对于资源状态的URI来讲的,对于状态转换,我是这么了解的:
  对于所暴露出的服务资源,依照REST的格调要求,应提供对一组CRUD操作方法的服务反对,而CRUD动作,是会对相应资源有显著的状态影响的(除了R),因而这里的状态,是针对资源而讲的,指的是申请的后果。

如,对于一个学生信息资源入口 /student/{studentId}/ ,提交的CRUD申请会导致特定学生信息资源的状态变更为已创立、已获取(如果有)、已更新、已删除

所以,这两个“状态”,指的应该不是同一回事。