会话和 Cookie 有什么区别?


用户在网站多个页面中输入的数据可以使用 Cookie 和会话的组合来保存。Cookie 和会话都至关重要,因为它们会出于各种目的记录用户提供的数据。

Cookie 和会话用于存储信息。Cookie 仅存储在客户端机器上,而会话则存储在客户端和服务器上。

阅读本文以了解更多关于 Cookie 和会话的信息,以及它们之间如何不同。

什么是 Cookie?

Cookie 是保存在用户计算机上的小型文本文件,并且只有该用户的浏览器可以访问。Cookie 的大小最多可以达到 4 KB。Cookie 也被称为 HTTP Cookie、在线 Cookie 和互联网 Cookie 等。

当一个人第一次登录网站或应用程序时,该网站会以 Cookie 的形式向用户的计算机传输大量信息。

当用户打开网站时,这些 Cookie 会跟踪他们在网站上进行的所有活动和浏览。信息使用字符串类型保存。Cookie 收集的信息不被认为是安全的,因为信息保存在易于阅读和理解的文本中。用户可以随时根据自己的意愿控制是否启用或禁用 Cookie。只有最初创建 Cookie 的用户才能访问 Cookie 的信息;其他用户无法看到它。

Cookie 在 HTTP 标头 的帮助下创建,然后在浏览器和服务器之间传输。Cookie 由 Internet Explorer 保存在临时 Internet 文件文件夹中,但保存位置由使用的浏览器决定。Cookie 读取我们在 YouTube 上搜索和播放某些歌曲时生成的数据。然后,下次我们打开 YouTube 时,会显示相同的歌曲或类似的推荐。

为什么要使用 Cookie?

由于 HTTP 是一种无状态协议,因此它不会在其服务器上保存任何有关用户的信息。Cookie 是实现此目标的有用工具。它使我们能够将信息保存在用户的计算机上,并监视任何正在使用的应用程序的状态。

什么是会话?

会话用于在服务器上临时存储数据,以便可以在各种不同的网站上使用它。简单来说,会话是指用户参与特定活动的时间量。这段时间从用户访问任何网站或程序开始,直到用户退出应用程序或关闭计算机为止。

由于 HTTP 协议不会跟踪用户的状态,因此当用户浏览互联网上可用的应用程序时,Web 服务器无法识别该用户。用户在主页或任何其他页面上输入到程序中的信息不会移动到应用程序中的任何其他页面。会话用于消除此限制。如果选择这样做,则用户的数据可以保存在会话变量中,这些变量可以是任何类型。会话变量存储的数据在服务器上会被加密或转换为二进制形式,从而保护数据免受第三方访问。

当应用程序的用户退出该应用程序或关闭其计算机时,会话值会自动分离。如果要保留会话值更长时间,则需要将其保存在数据库中。每个会话对于单个用户都是唯一的,并且在一个应用程序中可以使用任意数量的会话,因为没有对其施加任何限制。借助会话,可以识别用户,会话是一个在服务器上以 Cookie、表单字段或 URL 形式保存的唯一编号。

会话 ID 是一个在服务器上临时存储的唯一编号,用于识别用户。它是一个保存的 Cookie、表单字段或 URL。

为什么要使用会话?

会话用于更安全地存储诸如用户 ID 之类的信息,这些信息存储在服务器上,无法被修改。这可以防止信息被篡改。

此外,会话可以以值的形式将信息从一个网页传输到另一个网页。

会话可以用作不支持 Cookie 的 Web 浏览器中 Cookie 的替代方案,允许以更难以穿透的方式存储变量。

Cookie 和会话的比较

下表重点介绍了 Cookie 和会话之间的主要区别:

比较依据
Cookie
会话
定义
Cookie 是存储在本地计算机上的客户端文件,其中包含用户信息。
会话是存储用户信息的服务器端文件。
过期
Cookie 在用户指定的生命周期后过期。
当用户关闭浏览器或退出程序时,会话结束。
数据存储
它只能存储有限数量的数据。
它能够存储无限量的信息。
容量
Cookie 在浏览器中最多只能存储 4 KB 的数据。
脚本一次最多可以消耗 128 兆字节的内存限制。但是,我们可以在一个会话中自由维护任意数量的数据。
功能
我们无需执行函数即可启动 Cookie,因为它们存储在本地计算机上。
在开始会话之前,需要使用 session_start() 方法。
数据格式
Cookie 用于在文本文件中存储信息。
在会话期间,数据以加密格式保存。
存储
Cookie 存储在有限数量的数据上。
会话可以存储无限量的数据。

结论

总之,尽管 Cookie 和会话都是存储服务器或网页上数据的方法,但两种方法访问数据的方式却有所不同。存储在 Cookie 中的数据仅保存在客户端,而存储在会话中的信息则保存在客户端和服务器端。

Cookie 被认为比会话不太安全,因为第三方可以操纵其中存储的数据,而会话则以只有用户可以读取的加密形式存储。

会话还会在计算机上保存密码和表单数据,这意味着每次用户访问应用程序时,该程序都不会再次要求用户登录。这是因为密码和表单数据已保存。

更新于: 2023 年 10 月 31 日

48K+ 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告