会话和 Cookie 有什么区别?
用户在网站多个页面输入的数据可以使用 Cookie 和会话的组合来保存。Cookie 和会话都至关重要,因为它们会记录用户出于各种目的提供的数据。
Cookie 和会话都用于存储信息。Cookie 仅存储在客户端机器上,而会话则存储在客户端和服务器上。
阅读本文,了解更多关于 Cookie 和会话以及它们之间区别的信息。
什么是 Cookie?
Cookie 是保存在用户计算机上的小型文本文件,只有该用户的浏览器可以访问。Cookie 的大小最大可达 4 KB。Cookie 也被称为 HTTP Cookie、在线 Cookie 和互联网 Cookie 等。
当一个人第一次登录网站或应用程序时,该网站会以 Cookie 的形式向用户的计算机传输大量信息。
当用户打开网站时,这些 Cookie 会跟踪他们在网站上的所有活动和浏览行为。信息使用字符串类型保存。Cookie 收集的信息不被认为是安全的,因为信息保存在易于阅读和理解的文本中。用户可以随时控制 Cookie 是否启用。只有最初创建 Cookie 的用户才能访问 Cookie 的信息;其他用户无法查看。
Cookie 使用 HTTP 头 创建,然后在浏览器和服务器之间传输。Internet Explorer 将 Cookie 保存到临时 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 MB 的内存限制。但是,我们可以在会话中自由维护任意数量的数据。 |
| 功能 | 我们不需要执行任何函数来启动 Cookie,因为它们存储在本地计算机上。 | 在开始会话之前,需要使用 session_start() 方法。 |
| 数据格式 | Cookie 用于将信息存储在文本文件中。 | 在会话期间,数据以加密格式保存。 |
| 存储 | Cookie 存储在有限数量的数据上。 | 会话可以存储无限量的数据。 |
结论
总而言之,尽管 Cookie 和会话都是存储服务器或网页上的数据的方法,但两种方法访问数据的方式有所不同。Cookie 中保存的数据仅保存在客户端,而会话中保存的数据则保存在客户端和服务器端。
Cookie 被认为比会话不太安全,因为第三方可以操纵其中存储的数据,而会话则以只有用户才能读取的加密形式存储。
会话还会将密码保存在计算机上并形成数据,这意味着每次用户访问应用程序时,该程序都不会再次要求用户登录。这是因为密码和表单数据已保存。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP