与Java中心应用程序一样,Play框架是无状态的,并且提升框架是有状态的,就像任何像Tomcat或GlassFish这样的servlet或Java EE容器是有状态的,是像zend或cake php无状态或有状态的PHP Web框架。为什么呢?
答案 0 :(得分:12)
PHP本身没有状态。每个请求都是完全独特的。在这方面,它非常接近HTTP的裸机。
要实现状态,您可以使用会话,数据库,共享内存,文件或以某种方式保留状态的任何其他内容。像Zend或Cake这样的框架为这些机制提供了抽象,使得它在不同程度上看起来很有条理。 PHP永远不会真正保持状态。
答案 1 :(得分:4)
不仅仅是Java或PHP。 HTTP是无状态协议。
为使其成为有状态,开发人员(程序员)必须确保存储所有相关信息,并确保在调用脚本时回读所有相关信息。
大多数服务器都为统计管理提供会话管理。
至于为什么无状态 - 有状态会话增加了大量内存和性能开销,请参阅:
答案 2 :(得分:3)
Web应用程序中唯一的'状态'是持久存储的内容(如数据库),Web请求 - 响应流是无状态的。它取自或放入持久存储,因此它的行为就像它是有状态的一样。恕我直言,会话和cookie都包含在这个持久存储中。