session和cookie的原理与区别

共同点:

session和cookie都是跟踪浏览器用户身份的会话方式

显著不同点:

session的数据存储放在服务器端,cookie的数据存储在浏览器端

工作原理:

cookie:

当浏览器向服务器发送请求时,服务器会创建一个cookie用来保存用户的信息并把cookie返回给浏览器端;当浏览器再次访问服务器时就会根据cookie中的数据来判断不同的sessionid(sessionid会在之后session中提到)来获取不同的用户。

session:

当浏览器第一次向服务器发送请求,服务器会创建一个session,session中包含有name(为sessionid),value(为session对象的id),然后把session中的数据存储到cookie,通过cookie发送到浏览器端。当浏览器端再一次向服务器发送请求时,就会根据cookie中保存的sessionid来判断请求的session对象(这里就是在cookie这种提到的sessionid)。

工做原理的总结:

session和cookie之间的关系是相互依赖的,session需要cookie来保存信息并找到对应的session;cookie需要session返回服务器信息。但是如果没有cookie,session也可以请求。(接下来会讲cookie禁用)

cookie被用户禁用怎么办?

使用URL地址重写是对浏览器端不支持cookie的解决方案;服务器能够解析重写后的URL获取session的id。这样即使浏览器端不支持cookie,也可以使用session来记录用户状态。

区别:

session:

登录一个网站的时候,如果服务器端 使用的是session,那么所有的数据保存在服务器上,客户端每次请求的时候会发送当前的会话sessionid,服务器会根据当前的sessionid判断对应的用户数据标志,判断登陆是否具有权限。因为数据是存储在服务器上,所以是不能伪造的。

cookie:

如果浏览器使用的是cookie,那么所有的数据都保存在浏览器端,比如你登陆以后需,服务器设置了cookie用户名(sessionid),那么当你再次请求服务器的时候,浏览器将用户名一块发送到服务器,这些变量有一定的特殊标记。只要不关闭浏览器,那么cookie变量一直有效。

但是cookie不安全,如果有人入侵你的机器,将你的cookie拷贝走,放到他的机器上就可以登录你的身份,那么他登陆该网站的时候就是用你的身份登陆的。所以你可以在浏览器端自行设置一个cookie时间,来确保安全。

总结:

1.一般我们会把用户私密的信息通过session来保存

2.cookie不安全,别人可以分析存放在本地的cookie进行cookie欺骗

3.session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,如果主要考虑到减轻服务器性能方面,应当使用cookie

4.一般情况下,sessionid保存在cookie中

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值