COOKIE和Session的原理及异同
COOKIE和Session的原理及异同
1. cookie的创建和读取
cookie是客户端技术,服务器把每个用户的数据以cookie的形式写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去,这样,web资源处理的就是用户各自的数据。
服务器在客户端保存用户的信息,比如,登录名,密码等,数据量不大,服务器在需要的时候可以从客户端读取,保存在客户端的浏览器缓存目录下。换一台电脑的浏览器就不能读到了,但如果不同浏览器的cookie文件存放目录是一样的话,使用同一个电脑的不同浏览器仍然可以读到,因为此时浏览器间的cookie是共享的。
1.1 创建cookie
用户使用浏览器访问一个服务器,服务器端就可以创建一个cookie,并且设置它的生命周期,通过response将cookie返回给浏览器。
浏览器会在本地产生临时文件,这个文件中存放的就是cookie内容,使用的是明文(可以加密后保存),所以比较危险,这个临时文件是有存在时间限制。如果cookie重名的话,就会替换掉以前的值。一个站点可以创建多个cookie。
创建cookie:

1.2 读取cookie
浏览器向某个服务器发送请求的时候,会携带跟这个服务器相关的cookie信息,存在request中,所以服务器可以通过解析request中的内容来获取cookie信息。由于不能通过键值对的键来直接读取,读出来的cookie是个数组,先读取所有信息,再选出需要的信息。
读取cookie:

1.3 cookie的作用
- 保存上次登录时间等信息
- 保存用户名、密码,在一定时间内不用重新登录
- 记录用户访问网站的喜好(比如有误背景音乐,网页的背景色等)
- 网站的个性化,比如定制网站的服务,内容等
2.session原理:
1、session是保存在服务器端,理论上是没有是没有限制,只要你的内存够大
创建一个Cookie对象key为JSSIONID,value为ID的值,将这个Cookie写回浏览器
那么会重新创建一个新的session再返回一个新的JSESSIONID通过Cookie返回到浏览器
如:你在tomcat上同时部署了两个web项目,分别是web1、web2。当你在一个浏览器上同时访问web1时创建的session是A1,访问web2时创建的session是A2。
后面你再多次访问web1使用的session还是A1,多次访问web2时使用session就是A2
因为Cookie在关闭浏览器后就会消失,但是原来服务器的Session还在,只有等到了销毁的时间会自动销毁
那可以强制让你用户开启接收Cookie后再让其访问即可。
当你第二次访问的时候浏览器会携带这把钥匙到服务器端打开对应的空间,如果该空间已经销毁又重新返回开辟一块新的空间返回新的钥匙到浏览器。
3.cookie 和session 的区别:
1、Cookie和Session都是会话技术,Cookie是运行在客户端,Session是运行在服务器端
2、Cookie有安全隐患,通过拦截或本地文件找得到你的cookie后可以进行攻击。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。Session是没有大小限制和服务器的内存大小有关。
4.cookie 和session 的联系:
session是通过cookie来工作的
session和cookie之间是通过$_COOKIE['PHPSESSID']来联系的,通过$_COOKIE['PHPSESSID']可以知道session的id,从而获取到其他的信息。
个5.人理解
关于同一个浏览器访问一个网站,前后登录两个人的账号,会发现,用的是一个session容器,不过sessionid这个属性会被覆盖,所以一个浏览器同一段时间只会存在一个的账号,不可能并行进行两个人的账号。而如果采用不同的浏览器登录两个人账号,那么将各自分配一个sessionid,前者一个浏览器登两个账号可理解成前一个账号的sessionid就被杀死了,或者说值被覆盖了。每个账号在登录网站时,会分配sessionid,与userid会相对应,并且保存到服务器的数据库中,接下来每个sessionid在访问服务器的时候,就会去查找相应的表,显示相对应的用户信息。
所以cookie和session最大的区别是,客户端技术和服务器端技术,数据存放的位置不一样,技术原理不同,可实现的功能侧重点也不同。
COOKIE和Session的原理及异同的更多相关文章
- Cookie和Session的原理和异同
Cookie和Session的原理和异同 原理: cookie: 1.创建Cookie 当用户第一次浏览某个使用Cookie的网站时,该网站的服务器就进行如下工作: ①该用户生成一个唯一的识别码(Co ...
- 编写一篇博文介绍COOKIE和Session的原理及异同
一.什么是cookie 1.概念 Cookie是存储在客户机的文本文件,它们保存了大量轨迹信息.在servlet技术基础上,JSP显然能够提供对HTTP cookie的支持. Cookie 是在 HT ...
- 正确理解cookie和session机制原理
php中cookie和session是我们常用的两个变量了,一个是用户客户端的,一个用在服务器的但他们的区别与工作原理怎么样,下面我们一起来看看cookie和session机制原理吧. cookie和 ...
- cookie和sission的原理及异同
Cookie Cookie是存储在客户机的文本文件,它们保存了大量轨迹信息.在servlet技术基础上,JSP显然能够提供对HTTP cookie的支持. 通常有三个步骤来识别回头客: 服务器脚本发送 ...
- cookie和session的原理机制
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端 ...
- cookie、Session工作原理
一.cookie机制和session机制的区别 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案. 同时我们也看到,由于在服务器端保持状态的 ...
- day4(cookie与session的原理及区别)
1.COOKIE使用和优缺点 1.1 cookie原理:用户名+密码 cookie是保存在用户浏览器端,用户名和密码等明文信息 1.2session使用原理 session是存储在服务器端的一段字符串 ...
- 转:cookie和session(一)——原理
文章来自于:http://blog.csdn.net/half1/article/details/21645545 一.cookie和session是什么? cookie是服务器留在客户端中的小文 ...
- Session 的原理及最佳实践
Http协议是基于请求和响应的一种无状态的协议,而通过session可以使得Http应用变得有状态,即可以"记住"客户端的信息.今天就来说说这个session和cookie. Se ...
随机推荐
- HTTP协议详解(三)
接着第二篇继续学习... 6 HTTP的几个重要概念 6.1连接:Connection 一个传输层的实际环流,它是建立在两个相互通讯的应用程序之间. 在http1,request和reponse头中都 ...
- Typescript04---模块、命名空间
在Typescript1.5 中,内部模块称作命名空间,外部模块成为模块 一.什么是模块? 模块就是一个或一组功能模块. 模块在其自身的作用域里执行,而不是在全局作用域里.意味着,模块中的变量.函数. ...
- C程序设计实验报告
试验项目:1.字符与ASCLL码 2.运算符与表达式的运用 3.顺序结构应用程序 4.数学函数的算法描述 5.鸡兔同笼的算法描述 6.确定坐标的算法描述 姓名:郭薪 实验地点:514实验室 试 ...
- WPF自定义仪表盘控件
闲来无事,分享一个仪表盘 源码: 直接复制代码即可运行,=.=! <Window x:Class="TGP.InstrumentationDemo.MainWindow" x ...
- sql server实现简繁转换
/*--调用示例 gb_to_big和big_to_gb表存放着常用的简繁字 --可以百度到常用的简体汉字,然后用excel转换成繁体 再导入数据库. --转换为繁体 select dbo.f_GB ...
- Cocos Creator中使用事件中心
export class EventCenter { /** 监听数组 */ private listeners = {}; /** * 注册事件 * @param name 事件名称 * @para ...
- 【Linux】在Win10上搭建WSL(适用于Linux的Windows子系统)
1.打开WSL ,控制面板 -- 程序 -- 程序和功能 -- 打开或关闭Windows功能 - 选中[适用于Linux的Windows子系统] 2.开启后重启电脑 3.在Win10自带的Micro ...
- PostGIS导出SHP中文乱码
设置系统的环境变量 PGCLIENTENCODING=GBK,退出PostgreSQL重新登錄,执行成功!
- Spring 1 控制反转、依赖注入
1.1 Spring的核心是控制反转(IoC)和面向切面(AOP) 学习spring之前的开发中通过new创建一个对象,有了spring之后,spring创建对象实例-IoC控制反转,之后需要实例对象 ...
- python基础day3
一.文件管理 文件管理是很多应用程序的基本功能和重要组成部分.Python可以使文件管理极其简单,特别是和其它语言相对比. 1. 读操作 1.1r模式 1.1.1读取其他路径下文件 首先在D盘创 ...