Sessions-Study Guide
Sessions(会话)
有时,Web 开发人员更喜欢将某些信息存储在服务器端而不是客户端; 这样做是为了隐藏应用程序逻辑,或者只是为了避免典型的 cookie 来回数据传输。
会话是一种机制,可以让网站在服务器端存储特定于给定访问的变量。
每个用户会话都由服务器分配给客户端的会话 ID (session id)或令牌(token)标识。
客户端然后为每个后续请求呈现此 ID,从而被服务器识别。
通过会话 ID,服务器检索客户端的状态及其所有相关变量。 服务器将会话 ID 存储在其存储器中的文本文件中。
Sessions Example
Sessions Cookies(会话Cookie)
Web 应用程序如何在 Web 浏览器上安装会话 ID?
通过使用会话 cookie。
现在是时候看看如何使用 HTTP 会话了!
会话 cookie 只包含一个指向会话的参数值对。
1
2
3
SESSION=0wvCtOBWDH8w
PHPSESSID=13Kn5Z6Uo4pH
JESSIONID=W7DPUBgh7kTM
运行 PHP 的网站使用“PHPSESSID
”参数名称安装会话 cookie,而 JSP 网站使用“JSESSIONID
”。 每种开发语言都有自己的默认会话参数名称。
当然,Web 开发者也可以选择使用自定义参数名称。
如果需要,服务器会在浏览器执行某种活动后安装会话 cookie,例如:
- 打开特定页面
- 更改 Web 应用程序中的设置
- 在登录
然后浏览器在后续请求中使用 cookie。 一个会话可能包含许多变量,因此发送一个小 cookie 可以保持较低的带宽使用率。
在以下示例中,您可以看到会话 cookie 的作用。
Session Cookies Example
客户端使用登录表单来POST用户的凭据。
服务器发回带有 Set-cookie 标头字段的响应。
cookie 包含会话 ID。
浏览器会根据cookie协议发回cookie,从而发送会话ID。
GET Requests(GET请求)
会话 ID 也可以通过 GET 请求传输。
http://example.site/resource.php?sessid=k27rds7h8