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 ...
随机推荐
- oracle 计算机改名后监听无法启动
oracle改计算机名后,简单办法是利用oracle自带监听配置重新配置一下,或者修改host.listner.ora.tnsname.ora.我改了没起作用,原来是因为加入了域,计算机名字要全名的.
- [mysql] 修复问题表Table '.xxxx' is marked as crashed and should be repaired
程序执行的过程中,出现 Table '.xxxx' is marked as crashed and should be repaired 错误,上网查了一下,原来是表遭到损坏所致,具体修复办法如 ...
- WEB部分题目writeup
MEIZIJIU_PHP 题目链接: http://202.112.51.184:20001/ 打开网页出现一段PHP代码: 代码大意就是如果得到的code不为空则执行下列操作: 如果code长度大于 ...
- Python 正则表达式 flags 参数
flags参数 re.I IGNORECASE 忽略字母大小写 re.L LOCALE 影响 “w, “W, “b, 和 “B,这取决于当前的本地化设置. re.M MULTILINE 使用本标志后, ...
- JDBC编程六部曲
今天初学jdbc,明白了大致的编程流程,在此总结一下: JDBC编程可以分为六步——六部曲: * 第一步:注册驱动. * 1.1 获取驱动对象 * 1.2 注册驱动 * 第二步:获取数据库连接 * 第 ...
- MUI底部导航切换子页面
1.登陆页面进入之后,进入到main页面,main页面只有一个底部导航,然后引入子页面进行渲染. <nav class="mui-bar mui-bar-tab" id=&q ...
- docker镜像常用操作
- PHP获取服务器IP和客户端IP
<?php echo '前端机IP:'.$_SERVER['REMOTE_ADDR']; echo '<br />'; echo '后端机IP:'.$_SERVER['SERVER_ ...
- 自定义URL Protocol 协议
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\fuck] @="fuck Protocol" "URL ...
- JAVA取数两个数组交集,考虑重复和不重复元素
1.考虑不重复元素,重复元素不添加 import java.awt.List; import java.util.ArrayList; import java.util.TreeSet; public ...