HTTP 是一种无状态协议,那么如何在 Web 浏览器和 Web 服务器之间维护会话呢?
HTTP 是一种“无状态”协议,这意味着每次客户端检索网页时,客户端都会打开与 Web 服务器的单独连接,并且服务器不会自动保留任何先前客户端请求的记录。
维护 Web 客户端和服务器之间的会话
现在让我们讨论一些在 Web 客户端和 Web 服务器之间维护会话的选项:
Cookie
Web 服务器可以为每个 Web 客户端分配一个唯一的会话 ID 作为 Cookie,并且对于客户端的后续请求,可以使用接收到的 Cookie 来识别它们。
这可能不是一种有效的方法,因为浏览器有时不支持 Cookie。不建议使用此过程来维护会话。
隐藏表单字段
Web 服务器可以发送一个隐藏的 HTML 表单字段,并附带一个唯一的会话 ID,如下所示:
<input type = "hidden" name = "sessionid" value = "12345">
此条目表示,当提交表单时,指定的名称和值会自动包含在 **GET** 或 **POST** 数据中。每次 Web 浏览器发送请求时,都可以使用 **session_id** 值来跟踪不同的 Web 浏览器。
这可能是跟踪会话的一种有效方法,但点击常规(<A HREF...>)超文本链接不会导致表单提交,因此隐藏表单字段也不能支持常规会话跟踪。
URL 重写
您可以在每个 URL 的末尾附加一些额外的数据。这些数据标识会话;服务器可以将该会话标识符与其存储的有关该会话的数据相关联。
例如,对于 **https://tutorialspoint.com/file.htm;sessionid=12345**,会话标识符附加为 **sessionid = 12345**,可以在 Web 服务器上访问以识别客户端。
URL 重写是维护会话的一种更好方法,并且在浏览器不支持 Cookie 时也可以使用。这里的缺点是,您必须动态生成每个 URL 以分配会话 ID,即使页面是一个简单的静态 HTML 页面。
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP