原文:http://www.cnblogs.com/lijihong/p/4743818.html

今天主要学习了Cookies和Session,网络上关于这方面的知识可谓很多,让人眼花缭乱,在此作一个小结。本文不讲多,不讲什么高大上的,只是抛出一块砖,讲三个问题:①什么是Cookies和Session?②为什么要用Cookies和Session;③Session什么情况下被销毁。下一篇文章将以Java为例,简单实践一下。

  1. 什么是Cookies,什么是Session?

  关于这两个概念,很多文章都会给你来一长串定义,balabala一大堆。其实我个人认为这两个东东本质上做了一件事情——记录用户数据(也就是一小段文本)!!!比如,我们登陆论坛的时候,都是自动登陆的,这些数据就是以Cookies或Session方式给你记录下来的。那这两个东东有什么区别呢?最根本的:Cookies是由服务器生成,发送给客户端浏览器,由浏览器保存;Session则保存在服务器端,当然,服务器上有许多Session对象,怎么索引,这里会生成Session ID,以Cookies的方式发送给客户端,之后请求,服务器端就根据Session去索引Session对象,从而获取所需信息。

  关于Cookies结构及相关知识,见参考文献:[2]。

  关于Cookies和Session更多描述,见参考文献:[1]。

  2. 为什么要用这两个东东?

  个人理解:主要是为了方便用户使用,提升用户体验;如果被一些流氓公司利用,做了一些不道德的事,这也让我们很头疼,我们只能禁用Cookies了。。。^_^。

  3. Session什么时候会被销毁?

  Session,中文翻译为会话,顾名思义,我以为Session对象是在访问网站建立,在退出网站是销毁的。其实我错了!其实用户退出浏览器或退出网站,虽然session ID可能找不到了(注意我这里用的是可能,假设Session ID以Cookies方式给客户端保存,并且设定了MaxAge(最大有效时间),则SessionID将会保存到硬盘上,这样Session ID仍然存在),但是服务器上Session对象仍然存在。只有下述三种情况会使session对象被删除:

  • 服务端程序主动删除,即调用HttpSession.inValidate()函数;
  • 距离上一次收到客户端发送session ID的时间间隔超过session的最大有效时间;(哦,Session也是有有效时间的啊!!!)
  • 服务器进程被停止。

  所以,大家别被Session这个名字给误导了~一次会话结束,不会把服务器上的Session对象删掉的。

  最后提一下:

  本文讲的都是一些个人理解,或者在阅读一些知识后的总结,可能有错,请帮忙指出,谢谢;

  关于Cookies,Session其他理论问题,都可以参考文献[1],不想再抄袭;

  关于在Java中,Cookies怎么使用,怎么创建、怎么设置值、Session怎么创建、怎么设置值,等等,这些我们准备下一文具体实践一下。

附:参考文献

[1] cookie、session及实现记住密码,自动登录: http://blog.163.com/xiexueyong1987@126/blog/static/126267342201031993557704/

[2] Java之Cookie详解:http://www.cnblogs.com/z941030/p/4742188.html

Cookies和Session的区别的更多相关文章

  1. Cookies和Session的区别和理解

    Cookies和Session的区别和理解 cookie机制 Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器.IETF RFC 2965 HTTP State Man ...

  2. Cookies 和 Session的区别

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

  3. 官方解析Cookies和Session的区别

      官方理解: Cookie机制 Cookie机制 Cookie是服务器存储在本地计算机上的小块文本,并随每个请求发送到同一服务器. IETF RFC 2965 HTTP状态管理机制是一种通用的coo ...

  4. 简述 cookies 和 session 的区别

    1.cookie 和 session 的区别是:cookie数据保存在客户端,session数据保存在服务器端: 2.两个都可以用来存私密的东西,同样也都有有效期的说法,区别在于session是放在服 ...

  5. Cookies与session的区别

    Cookies 机制 Cookies是服务器在本地机器上存储的一段文本,并随每一个请求发送至同一个服务器. IETF RFC2965 HTTP State Management Mechanism 是 ...

  6. [转帖]Cookies和Session的区别和理解

    https://www.toutiao.com/a6580918457276039684 官方理解: cookie机制 Cookies是服务器在本地机器上存储的小段文本并随每一个请求发送至同一个服务器 ...

  7. 转:Cookies 和 Session的区别

    转自:http://blog.csdn.net/axin66ok/article/details/6175522 1.cookie 是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在 ...

  8. Cookies 、 Session 和 token 的区别

    这篇文章写的 Cookies 和 Session的区别 比较详细,也很好理解,可以学习下:https://blog.csdn.net/axin66ok/article/details/6175522 ...

  9. Cookies和Session的定义与区别

    Cookies和Session二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择,都纪录下来.当下次你再光临同一个网 ...

随机推荐

  1. 101个MySQL 的调节和优化的提示

    MySQL是一个功能强大的开源数据库.随着越来越多的数据库驱动的应用程序,人们一直在推动MySQL发展到它的极限.这里是101条调节和优化MySQL安装的技巧.一些技巧是针对特定的安装环境的,但这些思 ...

  2. java的HashMap与ConcurrentHashMap

    好像今天没有什么源码读,那么就来看看java的这两种HashMap有啥不一样的地方吧,在这之前先普及一下HashMap的一些基本知识: (1)放入HashMap的元素是key-value对. (2)底 ...

  3. JSCore的基本使用

    一.简单介绍 JSCore全称为JavaScriptCore,是苹果公司在iOS中加入的一个新的framework.该framework为OC与JS代码相互操作的提供了极大的便利.该工程默认是没有导入 ...

  4. php-fpm的重启/关闭

    php 5.3.3 下的php-fpm 不再支持 php-fpm 以前具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,需要使用信号控制: ...

  5. 分形树Fractal tree介绍——具体如何结合TokuDB还没有太懂,先记住其和LSM都是一样的适合写密集

    在目前的Mysql数据库中,使用最广泛的是innodb存储引擎.innodb确实是个很不错的存储引擎,就连高性能Mysql里都说了,如果不是有什么很特别的要求,innodb就是最好的选择.当然,这偏文 ...

  6. Snappy压缩

    Snappy压缩时,碰到不能解压问题,所用服务器Tomcat8.经验证,降低Tomcat版本为7,才可正常解压文件. 若碰到偶尔不能解压的问题,试着换个浏览器试试.

  7. Hive的Transform功能

    Hive的TRANSFORM关键字提供了在SQL中调用自写脚本的功能,适合实现Hive中没有的功能又不想写UDF的情况.例如,按日期统计每天出现的uid数,通常用如下的SQL SELECT date, ...

  8. mysql 在insert 时防止出现主键冲突错误的方法

    在mysql中插入数据的时候常常因为主键存在而冲突报错,下面有两个解决方法: 1.在insert 语句中添加ignore 关键字,如:insert ignore into table (id,name ...

  9. java面向对象编程——第二章 java基础语法

    第二章 java基础语法 1. java关键字 abstract boolean break byte case catch char class const continue default do ...

  10. 导航栏视图设置 tabbleView 是设置总背景图

    //导航栏视图设置 tabbleView 是设置总背景图 //默认的时白色半透明(有点灰的感觉), UIBarStyleBlack,UIBarStyleBlackTranslucent ,UIBarS ...