cookie和session一般存什么信息呢?
session存在服务器上的,相对安全
那这两个的应用场景是什么呢?一般存的啥?
首先需要理解的是 http 协议是一个无状态(stateless)的协议。
什么叫无状态呢,就好比你去银行的柜台办事,柜员给你办完了你就离开了。柜员接着接待下一位顾客。
柜员不会把为你办的那一摊事和材料摊在桌上,等你下次再来。
因为你可能一个月或者一年都不来了。当然也可能明天还来。
你既可能下次还遇到这个柜员,也可能你下次通过银行的另一个网点来办事,和另一个柜员打交道。即便你找到这个柜员,但是柜员因为接待很多顾客,也不记得你了。
你访问http服务器也是一样,web服务器每次把你的访问当成一个全新的“顾客”。但是这就有一个问题了。
有时候你需要多次访问一个网站,并且让网站需要知道你的身份。比如说登录网站,总不能你每打开一个页面都要输入一次你的用户名和密码。
这里就要一种机制,来跟踪你的状态。
还是拿银行打比方。比如有的事情,你跑1次柜台就搞不定。那么怎么办?银行也不能保证柜员个人记住你的一切,或者收着你的材料等你来。银行的办法就是,通过你的身份证和银行卡来识别你的身份,你拿着相同的身份证或者卡号,那么你就是同一个人。银行有时候在办理业务的时候会给你一张凭条或者什么文件,嘱咐你,下次来办事,把这个纸条带上。但是,有些内容涉及机密,不能给你,怎么办,银行的工作人员有一个电脑,把你的身份证扫了一下以后,巴拉巴拉把一些信息输入了进去。
web网站也是一样的道理,这里银行给你的材料,让你每次都带来的,就是cookie,而银行根据你的身份,在他那里的计算机里做记录的,就是session。为什么说禁用了cookie,session不能工作呢?这就好比你没有带身份证,银行肯定不给你办事。
那么cookie在网站里的使用场景一般有什么呢,比如说,一些网站的草稿箱功能,暂时存储你的编辑的文本。还有的网站有记住用户名的功能,让你下次访问直接登录,就用cookie,而session一般起到单机应用里全局变量的作用。
1、session保存在服务器,客户端不知道其中的信息;cookie保存在客户端,服务器能够知道其中的信息。
2、session中保存的是对象,cookie中保存的是字符串。
3、session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。
作者:北方的璐
来源:CSDN
原文:https://blog.csdn.net/qq_34917069/article/details/82350807
版权声明:本文为博主原创文章,转载请附上博文链接!
cookie 是一个非常具体的东西,指的就是浏览器里面能永久存储的一种数据,仅仅是浏览器实现的一种数据存储功能。
cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie发送给服务器。由于cookie是存在客户端上的,所以浏览器加入了一些限制确保cookie不会被恶意使用,同时不会占据太多磁盘空间,所以每个域的cookie数量是有限的。
Session
session 从字面上讲,就是会话。这个就类似于你和一个人交谈,你怎么知道当前和你交谈的是张三而不是李四呢?对方肯定有某种特征(长相等)表明他就是张三。
session 也是类似的道理,服务器要知道当前发请求给自己的是谁。为了做这种区分,服务器就要给每个客户端分配不同的“身份标识”,然后客户端每次向服务器发请求的时候,都带上这个“身份标识”,服务器就知道这个请求来自于谁了。至于客户端怎么保存这个“身份标识”,可以有很多种方式,对于浏览器客户端,大家都默认采用 cookie 的方式。
服务器使用session把用户的信息临时保存在了服务器上,用户离开网站后session会被销毁。这种用户信息存储方式相对cookie来说更安全,可是session有一个缺陷:如果web服务器做了负载均衡,那么下一个操作请求到了另一台服务器的时候session会丢失。