Cookies 和 Session的区别

2023-05-16

1.cookie 是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在某个WEB站点会话间持久的保持数据。

 

2.session其实指的就是访问者从到达某个特定主页到离开为止的那段时间。 Session其实是利用Cookie进行信息处理的,当用户首先进行了请求后,服务端就在用户浏览器上创建了一个Cookie,当这个Session结束时,其实就是意味着这个Cookie就过期了。
注:为这个用户创建的Cookie的名称是aspsessionid。这个Cookie的唯一目的就是为每一个用户提供不同的身份认证。


3.cookie和session的共同之处在于:cookie和session都是用来跟踪浏览器用户身份的会话方式。


4.cookie 和session的区别是:cookie数据保存在客户端,session数据保存在服务器端。
  简单的说,当你登录一个网站的时候,

 

·         如果web服务器端使用的是session,那么所有的数据都保存在服务器上,客户端每次请求服务器的时候会发送当前会话的sessionid,服务器根据当前sessionid判断相应的用户数据标志,以确定用户是否登录或具有某种权限。由于数据是存储在服务器上面,所以你不能伪造,但是如果你能够获取某个登录用户的 sessionid,用特殊的浏览器伪造该用户的请求也是能够成功的。sessionid是服务器和客户端链接时候随机分配的,一般来说是不会有重复,但如果有大量的并发请求,也不是没有重复的可能性.

 

·         如果浏览器使用的是cookie,那么所有的数据都保存在浏览器端,比如你登录以后,服务器设置了cookie用户名,那么当你再次请求服务器的时候,浏览器会将用户名一块发送给服务器,这些变量有一定的特殊标记。服务器会解释为cookie变量,所以只要不关闭浏览器,那么cookie变量一直是有效的,所以能够保证长时间不掉线。如果你能够截获某个用户的 cookie变量,然后伪造一个数据包发送过去,那么服务器还是认为你是合法的。所以,使用 cookie被攻击的可能性比较大。如果设置了的有效时间,那么它会将 cookie保存在客户端的硬盘上,下次再访问该网站的时候,浏览器先检查有没有 cookie,如果有的话,就读取该 cookie,然后发送给服务器。如果你在机器上面保存了某个论坛 cookie,有效期是一年,如果有人入侵你的机器,将你的  cookie拷走,然后放在他的浏览器的目录下面,那么他登录该网站的时候就是用你的的身份登录的。所以 cookie是可以伪造的。当然,伪造的时候需要主意,直接copy    cookie文件到 cookie目录,浏览器是不认的,他有一个index.dat文件,存储了 cookie文件的建立时间,以及是否有修改,所以你必须先要有该网站的 cookie文件,并且要从保证时间上骗过浏览器

 

5.两个都可以用来存私密的东西,同样也都有有效期的说法,区别在于session是放在服务器上的,过期与否取决于服务期的设定,cookie是存在客户端的,过去与否可以在cookie生成的时候设置进去。

(1)cookie数据存放在客户的浏览器上,session数据放在服务器上
(2)cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,如果主要考虑到安全应当使用session
(3)session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的
性能,如果主要考虑到减轻服务器性能方面,应当使用COOKIE
(4)单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能3K。

(5)所以:将登陆信息等重要信息存放为SESSION;其他信息如果需要保留,可以放在COOKIE中

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

Cookies 和 Session的区别 的相关文章

  • 仅在第一次使用 localStorage 加载网站时显示 DIV

    我正在尝试完成这项工作 但我遇到了一些问题 就像标题所说 我希望仅在第一次加载网站时显示 DIV 我知道如何使用 PHP 和 Cookie 但我想要使用 localStorage 函数 这是我的代码 div div document rea
  • HttpURLConnection (java.net.CookieManager) 和 WebView (android.webkit.CookieManager) 之间的 cookie 双向同步

    不幸的是 Android 有很多 cookie 管理器 饼干为HttpURLConnection由以下人员维护java net CookieManager和饼干WebView由以下人员维护android webkit CookieManag
  • iOS 全屏 Web 应用程序会丢弃 cookie?

    我经历过 当您启动 退出保存到仪表板 全屏模式 的网络应用程序时 iOS4 会丢弃 cookie 这是真的吗 有解决方法吗 这不是一个错误 这是一个功能 会话 cookie 即生命周期为 0 的 cookie 会在浏览器会话结束时被删除 在
  • 如何跟踪用户在网站上的使用情况?

    我正在使用 PHP MYSQL 每次用户登录时 我们都会插入他们登录的时间和登录日期 虽然我们很容易知道特定一天有多少用户登录 但我不确定如何计算他们在网站上花费的时间 例如 就像用户登录并将记录插入到 login tracking 表中一
  • Safari 不设置 cookie,但 Chrome 和 Firefox 会设置

    我正在将请求从本地主机发送到第三方服务器以使用 REST API 获取数据 后端使用cookies JSESSIONID 来了解是否发送数据 在 Chrome 中一切正常 我可以在 Chrome 浏览器的 应用程序 选项卡中看到 Cooki
  • Rails:跟踪用户的 ID

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

    这是我的设置 我正在构建一个带有用户登录的服务 使用 Negroni 和 Gorilla 登录后 用户会获得一个会话 cookie 服务器使用该会话 cookie 来授权受保护的端点 受保护的端点之一允许用户 客户端与服务器打开 Webso
  • Struts 2 中的 Java 应用程序可以管理多少个会话?

    我正在开发事务管理应用程序 并且正在使用 Struts2 我在内部使用了一个会话来设置和获取值 例如 ActionContext getContext getSession put string string 在应用程序中使用这样的会话是否
  • 使用 CDI+JSF 使会话失效不起作用

    我正在尝试在我的应用程序中实现注销 所以我这样做了 public String logout try FacesContext facesContext FacesContext getCurrentInstance ExternalCon
  • 删除 servlet 中的 cookie 时出现问题

    我尝试使用以下代码删除 servlet 中的 cookie Cookie minIdCookie null for Cookie c req getCookies if c getName equals iPlanetDirectoryPr
  • AngularJS 和 Laravel - 跨域 CORS / XHR 请求缺少(记住)cookie

    当我不使用 Chrome 中的 disable web security 选项时 我的 CORS XHR 请求在请求标头中缺少 Remember xyz cookie 如果我启用该选项 remember xyz cookie 将包含在请求标
  • PHP if in_array 表示多个值

    我有一个由 3 到 12 个值之间的任意位置生成的数组 它根据帐户信息生成该数组 result ad gt user gt groups user username 我想检查这个数组是否有多个值 大约 4 或 5 个 如果其中有任何一个值
  • 使用 ASP.NET 2.0 处理过期会话的最有效方法是什么

    在我们正在建设的网站上 当用户的会话结束时 我们需要能够将用户重定向到默认页面 乍一看 我们使用 Session End 和 Response Redirect 来完成这项工作 Sub Session End ByVal sender As
  • $_COOKIE[] 设置后似乎没有反映更改

    我不记得过去使用 Cookie 时遇到过很多问题 但我在尝试时遇到了一些意想不到的结果 我在本地主机上运行 因此我的域设置 这将产生以下输出 Cookie Set Cookie equals 457718770 shou
  • IdentityServer4 客户端 - 刷新 CookieAuthenticationEvents 上的访问令牌

    我试图在访问令牌过期时使用刷新令牌 类似的问题已回答here https stackoverflow com a 41557598 3501052 And 更新令牌的示例代码 https stackoverflow com question
  • 如何使用express在node.js中使浏览器关闭后会话过期?

    我在用 req session cookie maxAge 14 24 3600 1000 0 让会话在两周后过期 但现在我想让它在浏览器关闭后过期 有什么办法可以做到吗 来自连接会话中间件文档 https github com expre
  • 使用 Python 和 Google App Engine 的 Cookie

    我正在 Google App Engine 上开发一个应用程序 但遇到了问题 我想向每个用户会话添加一个 cookie 以便我能够区分当前用户 我希望他们都是匿名的 因此我不需要登录 因此 我为 cookie 实现了以下代码 def cle
  • 连接多个用户的 R 闪亮会话

    最小可重现示例 library shiny ui lt fluidPage actionButton button1 Run 1 actionButton button2 Run 2 server lt function session i
  • 当用户再次访问同一页面时保持登录状态?

    目前我正在使用会话来登录用户 但是当我关闭浏览器并再次打开它时 我必须再次登录 你如何让用户在 2 周内保持登录状态 那么是通过cookie吗 那么您想要 在这台计算机上记住我 选项吗 这是一种与语言无关的方法 创建一个至少包含以下内容的数
  • 上游太大 - nginx + codeigniter

    我从 Nginx 收到此错误 但似乎无法弄清楚 我正在使用 codeigniter 并使用数据库进行会话 所以我想知道标题怎么会太大 有没有办法检查标题是什么 或者看看我能做些什么来修复这个错误 如果您需要我提供任何conf文件或其他文件

随机推荐

  • C语言多文件编程基本格式

    1 背景 xff1a 用一个丢骰子的简单案例熟悉了C语言多文件编程该咋写 2 格式 xff08 1 xff09 主函数文件main c 文件头part1 所有要使用的函数 include include include 文件头part2 放
  • STM32汇编程序及点灯实验

    目录 一 Keil下编写汇编程序1 新建工程2 配置环境3 测试代码 二 HEX文件格式说明1 简介2 格式说明3 举例说明 上述工程生成的 hex文件 三 基于STM32 汇编每间隔1秒钟闪烁一次LED的程序 一 Keil下编写汇编程序
  • c++单向链表逆序

    include lt iostream gt using namespace std struct node int data node next node createlist int n 创建一个链表 xff0c n为存储的数据个数 n
  • 目标检测6--NanodetPlus算法分析

    文章目录 1 简介2 辅助训练模块Assign Guidance Module3 损失函数4 标签匹配策略5 后处理介绍6 特征融合参考资料 欢迎访问个人网络日志 x1f339 x1f339 知行空间 x1f339 x1f339 1 简介
  • Couldn't find executable named map_saver below /opt/ros/indigo/share/map_server

    在使用 Mastering ROS for Robotics Programming PACKT 2015 学习ros xff0c 学习到第四章的时候 xff0c 先是安装Navigation一直找不到dependencies 换了源进行u
  • Linux之索引节点inode(index node)

    inode就是索引节点 xff0c 它用来存放档案及目录的基本信息 xff0c 包含时间 档名 使用者及群组等 inode 是 UNIX Linux 操作系统中的一种数据结构 xff0c 其本质是结构体 它包含了与文件系统中各个文件相关的一
  • String、StringBuffer、Stringbulider的区别

    java中用于处理字符串常用的有三个类 java lang String java lang StringBuffer java lang StrungBuilder 三者共同之处 都是final类 不允许被继承 xff0c 主要是从性能和
  • 常用集合List、Set、Map的比较

    概述 List Set Map都是接口 xff0c 前两个继承至Collection接口 xff0c Map为独立接口 List有序 xff0c 可重复 1 ArrayList 底层 xff1a 数组 xff1b 查询快 xff0c 增删慢
  • Apache中的默认编码

    好吧 xff0c 在Django上测试挺好的GBK编码的静态文件 xff0c 部署到Apache后乱码了 xff0c 默认编码变成了UTF 8 xff0c 可是meta中明明指定了charset为GBK的 xff1a lt meta htt
  • SpringDoc使用

    文章目录 1 SpringDoc简介2 SpringDoc基础使用 1 SpringDoc简介 SpringDoc是一款可以结合SpringBoot使用的API文档生成工具 2 SpringDoc基础使用 POM文件 span class
  • Result统一响应数据

    目录 1 响应数据的格式 1 1 状态码划分 1 3 响应数据的封装 2 统一数据返回 1 响应数据的格式 在分离的环境中 xff0c 我们前后交互就显得尤为重要 前端按照接口文档中的URL地址和参数要求发送请求 xff0c 接着后端对业务
  • SpringBoot实现全局异常处理器

    1 本文使用 64 ControllerAdvice 64 ExceptionHandler 进行全局的 Controller 层异常处理 不用在 Controller 层进行 try catch xff01 package com exa
  • 排序算法的对比

    冒泡排序VS选择排序 两者时间复杂度O n2 冒泡排序找最大值放在最后 xff0c 选择排序找最小值放在前面 选择排序属于不稳定排序 xff1b 选择排序一般情况下优于冒泡排序 xff0c 每轮只交换一次 如果集合有序度高 xff0c 则选
  • Redis基本操作

    安装Redis docker compose安装 单节点 version 34 3 3 34 services master image redis 6 0 container name redis environment 34 disco
  • RabbitMQ初级操作

    MQ 消息队列 xff1a 一种进程通信或同一进程的不同线程的通信方式 采用链表结构实现 xff0c 拥有权限的进程向消息队列写入或读取消息 常用MQ xff1a RabbitMQ ActiveMQ kafka xff0c Redis的Li
  • SpringBoot——邮件模块

    SpringBoot集成邮件模块 邮件协议 原文链接 xff1a https blog csdn net qq 37745470 article details 89094227 什么是SMTP xff1f SMTP全称为Simple Ma
  • JVM内存结构

    JVM JVM xff1a Java Virtual Machine xff0c Java虚拟机 xff0c 识别 class后缀文件 xff0c 解析class的指令 xff0c 调用操作系统函数完成操作 JVM JRE JDK关系 xf
  • JVM类加载机制

    类加载过程3个阶段 xff1a 1 加载 将类的字节码载入方法区 xff0c 并创建 Class对象 加载符号引用到类常量池 xff0c 只是有这个名字UnresolvedClass Name 如果类的父类没有加载 xff0c 先加载父类加
  • nginx 反向代理配置

    Nginx 反向代理 xff1a 其实客户端对代理是无感知的 xff0c 因为客户端不需要任何配置就可以访问 xff0c 我们只需要将请求发送到反向代理服务器 xff0c 由反向代理服务器去选择目标服务器获取数据后 xff0c 在返回给客户
  • Cookies 和 Session的区别

    1 cookie 是一种发送到 客户 浏览器的文本串句柄 xff0c 并保存在客户机硬盘上 xff0c 可以用来在某个WEB站点会话间持久的保持数据 2 session 其实指的就是访问者从到达某个特定主页到离开为止的那段时间 Sessio