cookie和session的区别 - 千年霜雪

qnsx 2018-04-14 原文


cookie和session的区别


了解cookie & session

  Web应用程序使用http协议,而这个协议是没有状态的协议。当服务器一旦响应客户的请求之后,就会断开 连接,而同一个客户的下一次请求将重新建立网络连接。服务器应用程序有的时候是需要 判断出请求是否是同一个客户发出的,比如 当购买端口时,有必要跟踪同一个客户发出的一系列请求。

  当客户端 (浏览器)和服务器之间交互了多次,那么 就需要将交互所涉及的数据即状态保存下来。而这个状态就是数据。管理指的是多次交互时对数据的修改。

  那么 状态管理就有两种模式。即客户端状态管理技术cookie,它负责将状态保存在客户端,即本地。还有一种猜也猜得出,自然是服务器状态管理技术session,它将状态保存在服务器端 。

  上面讲得是比较专业,那么通俗一些讲,比较你登录某种教育平台或其他网站,经常会看到“你好,账号XXXXXX”,这种形式。因为这种数据会经常在你切换不同的页面的时出现。还有,当你登录QQ号的时候,你先删除原先的账号,再输入两个你原来账号的开头数字,那接下来它会自动跳出来你的账号。这种数据就是用cookie存放,它是存放在本地浏览器上。所以是比较不安全的,涉及到一些安全问题,密码个人隐私 机密等等,那就用session了,它可以安安全全地放在服务器上。

  再深入一点,cooKie是存放在浏览器上,虽然不安全,但是与服务器无关。而session存放在服务器上,当数据量过大,访问量造成一定的压力,但是它安全。

关于cookie的编码方式。

  • cookie 只能保存合法的ASCII字符,如果要保存中文,需要 – – – 将中文转换成合法的ASCII字符,即编码 Cookie c = new Cookie(“city”,URLEncoder.encode(“北京”,”utf-8″));
  • cookie生存时间 setMaxAge(n)
  • 保存中文 存数据时使用URLEncoder对中文转码
  • 取数据时使用URLDecoder对中文解码
  • 有效路径 setPath(“”)

session常用语句

  • 销毁数据 session.invalidate();
  • 设置数据 session.setAttribute();
  • 取数据 session.getAttribute();
  • 删数据 session.removeAttribute();

session 超时

  • 比如我登录了淘宝,一登录 就会被创建到一个session,如果用了然后空闲三十分钟
  • 那么 这个session将会被销毁。 当然可以修改配置文件设置这个时间
  • <session-config>
  • <session-timeout> 30 </session-timeout>
  • </session-config>
  • 缺省的时间通过编程来实现: void session :setMaxInactiveInterval(int seconds)

浏览器禁用了cookie session就不能用了

  • 但是可以URL重写的方式来使用 但是仍较烦。当然最好不要禁cookie。
  • 例如google浏览器设置里就有cookie禁用选项

session优缺点

  • 优点: 安全(将状态保存在服务端),能够保存的数据类型更丰富,而cookie只能保存字串 – session能保存更多的数据,cookie大约保存4k
  • 缺点
  • session将状态保存在服务端 ,占用了服务器的内存,如果用户量过大,会影响服务器的性能
发表于
2018-04-14 19:17 
千年霜雪 
阅读(171
评论(0
编辑 
收藏 
举报

 

版权声明:本文为qnsx原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/qnsx/p/8834438.html

cookie和session的区别 - 千年霜雪的更多相关文章

  1. [原创]Java项目统一UTC时间方案 – Gods_巨蚁

    [原创]Java项目统一UTC时间方案 Java项目统一UTC时间方案 作者:Gods_巨蚁 引言 近期团队的 […]...

  2. JavaWeb之项目实战-网上书店(二十一) – Coding永无止尽

    JavaWeb之项目实战-网上书店(二十一) 简介 作为这篇博客花费了些许时间练习和整理,最终能掌握,也算上没 […]...

  3. 17 . Go之网络编程

    互联网的本质 两台计算机之间的通信与两个人打电话原理是一样的. # 1. 首先要通过各种物理连接介质连接 # […]...

  4. Android eMMC 分区详解(转载) – 各各他

    Android eMMC 分区详解(转载) 原文链接:http://blog.csdn.net/firefox […]...

  5. ftp自动上传下载文件脚本 – 万里驰骋

    ftp自动上传下载文件脚本 FTP自动登录批量下载文件 从ftp服务器192.168.1.60 上的/home […]...

  6. C# Redis分布式锁(RedLock) – 多节点

    Redis单节点的分布式锁只需要注意三点就可以了: 1.加锁并设置锁的过期时间必须是原子操作; 2.锁的val […]...

  7. 查看数据库版本 – 渺晓

    查看数据库版本 select @@VERSION 发表于 2015-06-23 22:34  渺晓  阅读(1 […]...

  8. 如何将一个HTML页面嵌套在另一个页面中 – 唐宏昌

    如何将一个HTML页面嵌套在另一个页面中 一 在原页面嵌入其他页面   1、使用iframe框架 客户端页面嵌 […]...

随机推荐

  1. 绘图和可视化知识图谱-《利用Python进行数据分析》

    所有内容整理自《利用Python进行数据分析》,使用MindMaster Pro 7.3制作,emmx格式和p […]...

  2. DFS(二):骑士游历问题

    DFS(二):骑士游历问题       在国际象棋的棋盘(8行×8列)上放置一个马,按照“马走日字”的规则,马 […]...

  3. WebBrowser中屏蔽弹出窗口

    WebBrowser中有这样一个事件NewWindow2,其中有两个参数:var ppDisp: IDispa […]...

  4. QQ,新浪,SNS等公众平台的登录及api操作

    QQ的写法地址:http://www.oschina.net/code/snippet_930167_1988 […]...

  5. 点盾云播放器dolit格式视频防录像检测方法

    简单分析一款名为点盾云的视频加密播放器,观看视频时会有多种检测。防录像和虚拟机运行。说说自己的猜测:如何过翻录 […]...

  6. 5.cookie、session,localStorage、sessionStorage

    必须在服务器下运行 cookie/session 存东西 cookie 时间 过期时间 4k 服务器把一部分数 […]...

  7. 拓扑图

    HTML5 (canvase)拓扑图、关系图:http://www.jtopo.com/demo/layout-circle.html vis.js网址:https://visjs.org/ go.jshttps://g...

  8. Spring MVC教程——检视阅读

    Spring MVC教程——检视阅读 参考 Spring MVC教程——一点——蓝本 Spring MVC教程 […]...

展开目录

目录导航