什么是会话?
会话是用户与服务器之间的一种临时连接,它会记录从用户登录那一刻起,直到用户退出登录或长时间无操作为止的所有活动。正是借助会话,网站才能在您浏览不同页面、将商品加入购物车或保持账户登录状态时记住您的身份。
每个会话都绑定一个由服务器生成的唯一会话 ID。正是这个 ID 让网站能够把您的所有操作串联成一次连续的访问,而不是把每一次点击都当作一个全新的陌生访客。
什么是 Web 会话?
会话是两台交换数据的设备之间的短期连接,最常见的是用户的浏览器与 Web 服务器之间的连接。它从用户打开应用或登录的那一刻开始,到用户退出登录、关闭标签页或闲置时间超过会话超时时限时结束。
在会话有效期间,服务器通过会话 ID 来识别用户身份并跟踪其操作。该 ID 要么存储在浏览器中的 Cookie 里,要么直接存放在 URL 中。没有它,用户一点击下一个链接,服务器就会立刻“忘记”这名用户。
会话如何工作?
会话的工作过程分为四个简单步骤。第一,用户打开网站或应用,服务器创建一个新会话,并生成唯一的会话 ID。第二,服务器将该 ID 发回浏览器,通常放在一个小型 Cookie 中。第三,浏览器在之后的每个请求中都附带该会话 ID,这样服务器始终知道另一端是谁。第四,当用户退出登录或会话超时时,服务器会销毁会话数据,该 ID 随即失效。
整个过程在几毫秒内完成,用户完全察觉不到。正因如此,网上购物、网上银行以及任何需要登录的体验才能保持流畅,而不必在每个页面都要求输入密码。
会话的类型
互联网上的会话不止一种,而且这个词的含义会因所处的层级而略有不同。
- Web 会话。由 Web 服务器创建,用于在同一网站的不同页面之间跟踪用户。当有人问“会话是什么”时,这是最常见的含义。
- 网络会话。网络中两台设备之间的连接,通常用 OSI 模型中的会话层来描述。TCP 连接和 TLS 会话都属于这一类。
- 登录会话。用户登录账户时开启的会话,通常由令牌和双重身份验证加以保护。
- 代理会话。经由代理服务器转发的连接。有些代理使用粘性会话,在设定的时长内保持同一个 IP;另一些则在每次请求时轮换 IP。
- 应用会话。用于桌面或移动应用内部,在不同操作之间记住状态,例如草稿、设置或已打开的文档。
它们都有一个共同点:在两端之间建立一种临时的、可识别的连接,并在需要的时间内一直存在。
为什么要使用 Web 会话?
会话让互联网系统能够跟踪用户的操作。它有助于存储各类信息,例如登录状态、购物车中的商品或其他设置。没有会话,网站在两次点击之间将什么都记不住。它确保用户在互联网上的交互得到顺畅管理,尤其是在浏览多个页面时。
Cookie 与会话:区别
Cookie 和会话常常被混为一谈,因为它们协同工作,但两者存放的位置不同。Cookie 是存储在用户设备浏览器中的小文件;会话则是存储在服务器上的数据,浏览器只保存指向这些数据的会话 ID。
Cookie 在浏览器关闭后仍可保留,并可设置为持续数天甚至数年。会话通常存续时间较短,会在用户退出登录、关闭标签页或达到无操作超时时限时结束。在大多数现代网站中,两者会配合使用:会话 Cookie 携带会话 ID,而实际的用户数据则安全地保存在服务器上。
会话安全与会话劫持
由于会话 ID 是证明您身份的“钥匙”,任何窃取它的人都可以冒充您。这种攻击称为会话劫持,通常发生在不安全的网络上,或通过读取浏览器 Cookie 的恶意软件实施。
最常见的防御措施包括 HTTPS 加密(在会话 ID 通过互联网传输时将其隐藏)以及较短的会话超时时限(限制被盗 ID 的可用时长)。许多网站还会将会话与用户的 IP 地址或设备指纹绑定,这样从其他位置使用被盗 Cookie 的请求就会被拒绝。用完后退出登录、避免在公共 Wi-Fi 下访问敏感账户,以及开启双重身份验证,可以消除用户端的大部分风险。
优点与缺点
会话将数据存储在服务器上,因此非常安全,也非常适合临时存储信息。但它们会占用服务器内存,而且过期很快。尽管如此,对于需要处理多个请求的 Web 应用而言,尤其是在采用较新技术的情况下,会话仍然相当重要。
示例
登录、购物车和管理控制面板会话
这些示例都使用会话 ID 在不同网页之间跟踪操作,同时确保已登录的用户保持连接状态。
会话与代理服务器
当您使用代理时,会话并不会消失,只是多经过一跳。请求先从浏览器发送到代理,然后才到达目标服务器。网站仍会创建会话 ID,但它看到的是代理的 IP 地址,而不是您的 IP 地址。
这一点在两种情况下很重要。使用粘性会话时,代理会在数分钟或数小时内为您的会话保持分配同一个 IP,这正是社交媒体账号、电商结算和网上银行登录所期望的。使用轮换会话时,IP 会在每次请求时更换,适用于抓取、广告验证以及任何需要让每个请求看起来相互独立的任务。在这两者之间做出选择,是挑选住宅代理或移动代理套餐时最常见的决定之一。
常见问题
用简单的话说,会话是什么意思?
会话是用户与网站保持连接的一小段时间,通常从登录开始,到退出登录结束。网站借助它在页面点击之间记住用户。
在计算机术语中,会话是什么?
在计算领域,会话是指两个系统(例如用户与服务器)之间任何有明确开始和结束的临时数据交换。Web 登录、视频通话和数据库连接都属于会话。
会话和会话 ID 有什么区别?
会话是实际的连接以及存储在服务器上的数据。会话 ID 只是用于标识该连接的一个短字符串,让服务器知道每个请求是哪位用户发送的。
一个会话会持续多久?
大多数 Web 会话的持续时间从几分钟到几小时不等,具体取决于网站的超时设置。银行网站使用 5 到 15 分钟的短会话,而社交网络可能会让一个会话保持数周。
什么是会话超时?
会话超时是指服务器自动结束会话之前所允许的最长无操作时间。当用户忘记退出登录时,它可以保护账户安全。
什么是粘性会话?
粘性会话会在整个会话期间让用户保持连接到同一台服务器或同一个代理 IP。当应用需要连续性时(例如结算过程或多步骤登录期间),就会使用粘性会话。
会话可以在没有 Cookie 的情况下工作吗?
可以。会话 ID 也可以通过 URL 或请求头传递。Cookie 只是存储它最方便、最常见的方式。
