请进一步解释一下“HTTP是无状态协议”的含义。
谢谢。
无状态的含义:
它不会跟踪配置设置、事务信息或下一次会话的任何其他数据。当一个程序“不保持状态”(是无状态的)或当系统基础设施阻止程序保持状态时,它不能将有关上次会话的信息带入下一次会话中,例如用户选择的设置或在处理过程中出现的条件。
HTTP协议:
Web交易的通信工具HTTP协议是无状态的。在Web页面传递给用户后,连接就被关闭了。为了维护用户在网站上从一个页面到另一个页面的状态,已经开发出了一些对策,例如使用cookie。
或者可以简单地定义为:
如果没有后续请求-响应对之间的关系,则协议是无状态的。服务器可以独立处理每个请求,而无需为客户端保持会话状态。
有状态和无状态是形容词,用于描述计算机或计算机程序是否设计为在与用户、另一台计算机或程序、设备或其他外部元素的交互序列中记录并记住一个或多个先前事件。有状态意味着计算机或程序通过设置专门用于此目的的存储字段中的值来跟踪交互状态。无状态意味着没有记录先前的交互,并且每个交互请求都必须基于随附的信息进行处理。有状态和无状态源自状态作为某一时刻的一组条件的用法。(计算机在操作上本质上是有状态的,因此这些术语是用于特定一组交互的上下文中,而不是计算机工作的一般情况。)
互联网的基本协议——互联网协议(IP)是无状态交互的一个例子。每个数据包都是独立的,没有参考其他数据包。当您从网站请求Web页面时,请求会以一个或多个数据包的形式传输,每个数据包都与互联网协议程序本身无关。 (上层传输控制协议 - TCP - 确实将数据包相互关联,但使用数据包内部的信息而不是一些外部信息来完成此操作。)无连接也用于描述每发送一条消息就建立和终止连接的通信。IP既是无连接又是无状态的。
Web的超文本传输协议(HTTP),位于TCP / IP之上的应用层,也是无状态的。用户对Web页面或URL的每个请求都会导致所请求的页面被提供,但Web(HTTP)服务器不会记住稍后的请求。换句话说,没有记录的连续性。每个通信都是离散的,与先前或后续的通信无关。为了进行有状态的通信,站点开发人员必须提供一个特殊程序,服务器可以调用该程序来记录和检索状态信息。 Web浏览器(如Netscape Explorer和Microsoft Internet Explorer)提供了一个子目录,在其中可以存储和访问状态信息。 Web浏览器和服务器应用程序放入此区域的信息称为cookie。
在正式的协议规范中,有限状态机是对有状态系统工作方式的抽象描述,它描述了每个可能状态后跟随的动作。