关于session和cookie的简单理解


Posted in Javascript onJune 08, 2016

0. 引子,我们为什么要cookie和session

因为http请求是无状态的(不能记录用户的登录状态等),所以需要某种机制来保存用户的登录状态等信息,在下次访问web服务的时候,不用再次校验是否登录等状态,session机制和cookie机制分别是在服务器端和浏览器端的解决方案。

1.关于cookie

1.1  什么是cookie

cookie,原意饼干。用来在浏览器端存储用户的状态信息,然后在访问后端的时候将这部分信息带回到后端。

cookie的内容主要包括:名字,值,过期时间,路径和域

1.2 cookie的分类

会话cookie  不设置过期时间的cookie 保存在浏览器的内存中,关闭浏览器,cookie便被销毁。(常常被用作session)

普通cookie  设置了过期时间   保存在硬盘上

1.3怎么应用

发起请求时:浏览器检查所有存储的cookie,如果某个cookie所声明的作用范围(由路径和域决定)大于等于将要请求的资源所在的位置,则把该cookie附在请求资源的HTTP请求头上发送给服务器。

处理请求时:在服务器端, 一般会对请求头中带的cookie信息做检查(比如说登录检查),如果检查通过,才能进行实际的业务处理。

如果校验不通过,例如没有找到cookie或者cookie信息不正确(可能是伪造),跳转让其登录,然后登录完成之后,在响应中返回cookie信息,浏览器会根据返回的cookie信息,保存在硬盘或者内存中供下次使用。、

2.关于session

2.1什么是session

session 用来在服务器端保存用户的状态信息。

2.2怎么使用

浏览器发起请求时:服务器首先会读取请求头中session信息。如果没有找到session信息或者本地检索不到此sessionid,如果没有就新生成一个sessionid,存储到服务器硬盘或者memcache中。

浏览器接收到响应:会将这个返回的sessionID在本地内存也保存一份,供下一次请求使用。session保存在本地的其中一种实现方案是保存信息在cookie上,但是实际上cookie并不是session保存唯一解决方案,使用url重写的方式也可(把session id直接附加在URL路径的后面 )。

3.cookie和sessiond的主要区别

1、保存位置稍有区别

cookie数据存放在客户的浏览器上,服务器端不用保存。session数据放在服务器上,本地内存也有一份。

2、安全性不同

cookie安全性不如session。因为普通cookie保存在本地硬盘上,黑客可以伪造url等方式发起xss攻击,获取本地硬盘保存状态的cookie,进而窃取用户的敏感信息。

session则不同,只有在用户登录此网站时发起xss攻击才能获取session信息,关闭浏览器之后,session即被销毁,安全性较cookie要好

3.跨域支持上的不同

Cookie支持跨域名访问,例如将domain属性设置为“.biaodianfu.com”,则以“.biaodianfu.com”为后缀的一切域名均能够访问该Cookie。跨域名Cookie如今被普遍用在网络中,例如Google、Baidu、Sina等。而Session则不会支持跨域名访问。Session仅在他所在的域名内有效。

4.服务器压力的不同

Session是保管在服务器端的,每个用户都会产生一个Session。假如并发访问的用户十分多,会产生十分多的Session,耗费大量的内存。因而像Google、Baidu、Sina这样并发访问量极高的网站,是不太可能运用Session来追踪客户会话的。考虑到减轻服务器性能方面,应当使用COOKIE。

5. 存取方式的不同

Cookie中只能保管ASCII字符串,假如需求存取Unicode字符或者二进制数据,需求先进行编码。Cookie中也不能直接存取Java对象。若要存储略微复杂的信息,运用Cookie是比拟艰难的。

而Session中能够存取任何类型的数据,包括而不限于String、Integer、List、Map等。Session中也能够直接保管Java Bean乃至任何Java类,对象等,运用起来十分便当。能够把Session看做是一个Java容器类。

6.cookie的保存内容大小有限制

单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

以上这篇关于session和cookie的简单理解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
一个JS函数搞定网页标题(title)闪动效果
May 13 Javascript
JQuery中extend的用法实例分析
Feb 08 Javascript
深入分析Javascript跨域问题
Apr 17 Javascript
angularjs学习笔记之双向数据绑定
Sep 26 Javascript
jquery.validate使用详解
Jun 02 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
Jul 07 Javascript
js数组常用操作方法小结(增加,删除,合并,分割等)
Aug 02 Javascript
js实现图片放大展示效果
Aug 30 Javascript
Vue下的国际化处理方法
Dec 18 Javascript
React Native 真机断点调试+跨域资源加载出错问题的解决方法
Jan 18 Javascript
微信小程序新手教程之启动页的重要性
Mar 03 Javascript
JS字符串与二进制的相互转化实例代码详解
Jun 28 Javascript
jQuery封装的屏幕居中提示信息代码
Jun 08 #Javascript
Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享
Jun 07 #Javascript
JavaScript基础语法之js表达式
Jun 07 #Javascript
JavaScript必看小技巧(必看)
Jun 07 #Javascript
通过正则表达式获取url中参数的简单实现
Jun 07 #Javascript
点击按钮出现60秒倒计时的简单js代码(推荐)
Jun 07 #Javascript
javascript显示倒计时控制按钮的简单实现
Jun 07 #Javascript
You might like
php中随机显示图片的函数代码
2011/06/23 PHP
php读取excel文件的简单实例
2013/08/26 PHP
PHP文件大小格式化函数合集
2014/03/10 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
laravel Model 执行事务的实现
2019/10/10 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
JS解密入门 最终变量劫持
2008/06/25 Javascript
JavaScript 常见对象类创建代码与优缺点分析
2009/12/07 Javascript
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
2011/06/28 Javascript
一个可拖拽列宽表格实例演示
2012/11/26 Javascript
使用js获取地址栏中传递的值
2013/07/02 Javascript
node.js中的buffer.toString方法使用说明
2014/12/14 Javascript
js关于命名空间的函数实例
2015/02/05 Javascript
js带缩略图的图片轮播效果代码分享
2015/09/14 Javascript
jquery easyUI中ajax异步校验用户名
2016/08/19 Javascript
Vue2组件tree实现无限级树形菜单
2017/03/29 Javascript
JavaScript比较两个数组的内容是否相同(推荐)
2017/05/02 Javascript
JavaScript基础之流程控制语句的用法
2017/08/31 Javascript
VUE预渲染及遇到的坑
2018/09/03 Javascript
Vue 实现从文件中获取文本信息的方法详解
2019/10/16 Javascript
[07:09]2014DOTA2国际邀请赛-Newbee再次发威成功晋级决赛
2014/07/19 DOTA
跟老齐学Python之编写类之一创建实例
2014/10/11 Python
python实现朴素贝叶斯分类器
2018/03/28 Python
python爬虫之xpath的基本使用详解
2018/04/18 Python
python 实现语音聊天机器人的示例代码
2018/12/02 Python
Python实现大数据收集至excel的思路详解
2020/01/03 Python
加拿大领先的牛仔零售商:Bluenotes
2018/01/22 全球购物
外贸公司实习自我鉴定
2013/09/24 职场文书
护理学应聘自荐书范文
2014/02/05 职场文书
党的群众路线教育实践活动心得体会900字
2014/03/07 职场文书
群众路线教育实践活动民主生活会个人检查对照思想汇报
2014/10/04 职场文书
乡镇党的群众路线教育实践活动总结报告
2014/10/30 职场文书
2015毕业实习推荐信
2015/03/23 职场文书
2015年七七事变78周年纪念活动方案
2015/05/06 职场文书
2015年敬老院工作总结
2015/05/18 职场文书
python实现的web监控系统
2021/04/27 Python