COOKIE与SESSION的区别

2023-11-07

Web基础——COOKIE与SESSION的区别

一、COOKIE:
1)、COOKIE是什么?
cookie可以理解是服务器暂存在客户端的文本信息(.txt文件)。

2)、COOKIE从哪来?
cookie从服务端来,它是由服务端生成的。
客户端可以清除cookie。

3)、COOKIE往哪去?
A、cookie的归宿是客户端,由服务端生成后,发送给客户端;
B、它是存放在客户端的硬盘上的。
在这里插入图片描述
PS:客户端与服务器通信时,服务器首次返回给客户端的set-cookie是包含在响应header中的;同时,客户端向服务器发送请求时,cookie也是包含在请求header里的。
4)、COOKIE干什么用的?
cookie其实可以看成是http协议的一个扩展,因为http协议是无状态的协议,服务器无法识别客户端,cookie可以帮助服务器辨别客户端,以便它们之间更好地通信。
通俗地讲,cookie就类似一个通行证,每次客户端向服务器发送请求时,带上这个通行证,服务器就能通过这个同行证,准确地确认客户。

二、session:
1)、session是什么?
如果把cookie比作是服务器发给客户端的通行证,那么,可以把Session理解为程序在服务器上建立的一份客户档案,记录的是客户的状态等信息。

2)、session从哪来?
A、session是服务端为客户端开辟的,它是服务器端程序运行的过程中创建的,不同语言实现的应用程序有不同创建Session的方法。
B、生成session的同时,也会生成唯一的sessionID与之对应,类似于键值对的形式{sessionID:session}。

3)、session往哪里去?
A、session是存放在服务端的,是服务端开辟的空间存储的,是存在内存中的;
B、当会话关闭时,session会被清除;
C、session的默认失效时间是20分钟,服务器会把长时间没有活动的session从服务器内存中清除。
4)、session有什么用?
还是因为http是无状态的协议,session也是为了保持客户端与服务器更好的连接状态,更好地通信。
通信过程,大致可以理解为:
A、客户端—>服务端:客户端给服务端发送请求,服务端创建session,同时生成sessionID;
B、服务端—>客户端:服务端给客户端发送响应,并告诉客户端对应的sessionID;
C、客户端---->服务端,两者之间发请求,通信时,请求头里就可以带上sessionID,服务端就能更好地识别客户端。

三、总结COOKIE与SESSION的区别:
1)、cookie存储在客户端,SESSION存储在服务器;
2)、cookie机制保持连接,通信时压力在客户端;SESSION机制保持连接,通信时压力在服务器;
3)、SESSION机制更安全,因为cookie存放在客户端,容易被窃取。但是session机制依赖于sessionID,而sessionID保存在cookie中,一旦客户端禁用了cookie,session也将失效;
4)、cookie是以文本的形式存储在客户端,存储量有限(<=4KB);
session可以无限量地往里面添加内容。
5)、Cookie支持跨域名访问,Session不支持跨域名访问;
6)、Cookie可以设置为长期有效,而Session会随会话窗口关闭而失效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

COOKIE与SESSION的区别 的相关文章

  • 从网站获取数据的vba代码

    我是这个网站和 VBA 编程的新手 我遇到了一个问题 我必须从中获取数据这一页 http www kieskeurig nl zoeken index html q 4960999543345 我需要有超链接网址Check Rates 10
  • 如何在 Laravel 5.2 控制器中使用会话

    我登录并将用户名保留在会话中 然后刷新此页面 但会话不保留值 这是我的代码 class WelcomeCtrl extends Controller public function gotoWelcome return view welco
  • 如何让用户会话持续24小时?

    我搞乱了我的 apache 和 php ini 文件 我的网站的用户仍然抱怨网站在很短的时间后或每次关闭并打开同一个浏览器时都会将他们注销 我正在运行 Apache 和 PHP 我应该进行哪些设置才能使用户会话持续 24 小时 这样他们就不
  • IIS 7.5:对网站的初始请求永远不会加载

    当我第一次浏览我的网站时 互联网不断旋转 加载 如果我两秒钟后尝试再次加载它 一切都会正常 就好像它 睡着了 一样 我想这一定和 回收 有关 我已将 空闲超时 设置为 0 将回收 定期时间间隔 设置为 0 在浏览我的网站之前 我查看了 工作
  • Rails 3 session_store 域 :all 的作用是什么?

    更新了问题以使其更清楚 据我所知 您可以设置 session store 的域以在子域之间共享会话 如下所示 Rails application config session store cookie store key gt my key
  • 无法加载请求的类:会话

    我的配置文件看起来像这样 gt config sess cookie name ci session config sess expiration 7200 config sess expire on close TRUE config s
  • 通过站点到站点 VPN 将 Azure 网站连接到本地数据库

    我的目标是运行一个天蓝色的网站 该网站可以访问我们本地公司数据库中的数据 我按照网络上的教程设置了一个 Azure 虚拟网络 并通过站点到站点 VPN 将其连接到我们本地公司网络 在天蓝色门户中 我可以看到连接实际上正在工作 并且数据已被接
  • 最长和最短的 HTML 字符实体名称是什么? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 管子周围有
  • 为什么呼叫会话不起作用? (代码点火器 3)

    我的配置是这样的 config sess driver database select database driver config sess save path ci sessions name of the mysql table co
  • 关于 PHP 范围的问题 - 从 Java 程序员的角度来看

    我对 PHP 还很陌生 所以我试图理解 PHP Web 应用程序中的范围概念 在 Java 世界中 Java Web 应用程序 使用 Java Server Pages JSP 及以上 将允许 Java Bean 具有以下级别的范围 Pag
  • 如何在会话自动加载的同时在 vim 中打开文件?

    我在 vimrc 中有以下代码 可以在 vim 启动时自动保存 加载会话 Session saving Automatically save rewrite the session when leaving Vim augroup leav
  • 创建默认应用程序时 FirebaseOptions 不能为 null

    我正在尝试在 Flutter 集成电子邮件和基于 google 的登录中尝试一个示例项目 并计划使用 firebase 初始化来执行此操作 同时我已按照教程中提到的所有步骤进行操作 一旦尝试使用 firebase 我就会收到此错误已初始化
  • Rails:跟踪用户的 ID

    在我的 Rails 应用程序中 我有一个登录页面 该人登录后 我的应用程序继续跟踪已登录人员的最佳方式是什么 例如 如果用户移动到不同的页面 我的控制器 操作将失去对该用户的跟踪 除非我继续传递用户随后访问的每个页面之间的变量 有更好的方法
  • Laravel,2 个域中的 2 个项目同一会话

    我正在 2 个不同的域 domain1 tld 和域 2 tld 中创建 2 个项目 domain1 tld 是主要事件生成器页面 domain2 tld 是其事件之一 我想共享相同的会话 它们实际上共享相同的数据库和相同的 apache
  • Meteor js:使Session对象部分持久化

    在我的流星应用程序中 我使用会话来存储有关用户活动的临时信息 我想使用 amplify js 将此信息的某些部分保留到浏览器 但不是全部 我想要一种拥有 临时 会话密钥和 持久 会话密钥的方法 例如我可以打电话 Session set pe
  • 对过期会话进行休息调用:HTTP 401 响应导致浏览器显示登录窗口

    我编写了一个 HTML 5 应用程序 它使用 AngularJS 并与在 Tomcat 上运行的 Java REST 后端进行交互 我使用 Spring Security 来处理登录和安全性 当用户进入网站时 他将被转发到登录页面 该页面创
  • 如何在odoo中重写js函数

    我想加载 shop checkout url 函数是 odoo define change info order website sale change info order function require use strict oe w
  • Django - 缺少 1 个必需的位置参数:'request'

    我收到错误 get indiceComercioVarejista 缺少 1 个必需的位置参数 要求 当尝试访问 get indiceComercioVarejista 方法时 我不知道这是怎么回事 views from django ht
  • PHP if in_array 表示多个值

    我有一个由 3 到 12 个值之间的任意位置生成的数组 它根据帐户信息生成该数组 result ad gt user gt groups user username 我想检查这个数组是否有多个值 大约 4 或 5 个 如果其中有任何一个值
  • 使用“邮递员”chrome 应用程序的肥皂请求正文

    假日网络服务 的肥皂请求正文会是什么样子 http www holidaywebservice com HolidayService v2 HolidayService2 asmx wsdl http www holidaywebservi

随机推荐