Session会话与Cookie简单说明

原文链接


Facebook、Gmail、Twitter "是我们每天都会用的网站" 。它们的共同热点在于都需要你登录进去后才能进一步操作,只有你通过认证并登录后才能在twitter 发推,在Facebook 上评论,以及在Gmail 上处理电子邮件。经常有人会疑惑:Session 会话与Cookies的区别是什么?用户登录的原理是什么?网站是如何认证的?它怎么知道是哪个用户从哪来登录进来的?下面将对这些问题进行--解答。

1)Session与cookie的简单区别

session和cookid本质上确实是两个东西,但是cookie同时也是session id 的载体,cookie保存seesion id。

cookie数据存放在用户的浏览器上,session数据放在网站的服务器上。

session 保存在服务器端有浏览器设置无关,cookie在客户端受浏览器设置限制。

cookie是在你的电脑浏览器上保存的,session是在网站服务器上的,也就是说换一个电脑你的cookie就不起作用了,而session只要你的浏览器不关就还能访问到。

通常的都是两个结合着用的,cookie的话你自己就可以通过浏览器的设置禁用掉,这样就不起作用了

cookie 不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应用当使用session。

session是服务器端缓存,cookie是客户端缓存。

cookie机制采用的是客户端保持状态的方案,而session机制采用的是服务端保持状态的方案。

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

session你是服务器保持客户端状态信息的方案,一般是保存在服务器中的一块内存中,session超时时间在服务器端进行设置

cookie是客户端保持用户信息的方案,一般是文件形式保存,cookie清空时间时在客户端浏览器设置。

从开发角度说,session信息可以通过技术方案写到客户端保存,cookie中的用户信息,也可以再用户访问该网站时,通过技术手段自动更新用户的session信息。

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

建议:将登陆信息等重要信息存放在session;其它信息如果需要保留,可以放在cookie中。

2)用户登录的原理是什么?

每次用户在网站的登录页面中输入用户名和密码时,这些信息都会发送到服务器。服务器随后会将你的密码与服务器中的密码进行验证。

如果两者不匹配,则你会得到一个错误密码的提示。如果两者匹配,则成功登陆。

3)用户登录时发生了什么?

登录后,web服务器会初始化一个会话session并在你的浏览器中设置一个cookie变量。该cookie变量用于作为新建会话的一个引用。

让我们说的再简单一点。

4)会话的原理是什么?

服务器在用户名和密码都正确的情况下会初始化一个会话。会话的定义很复杂,可以理解他为“关系的开始”

 

认证通过后,服务器就开始跟用户展开一段关系了。由于服务器不能象我们人类一样看东西,她会在我们浏览器中设置一个cookie来将我们的关系从其他人与服务器的关系标示出来。

 

什么是cookie?

cookie 是网站在用户的浏览器中存储的一小段数据,当用户登录后,服务器为用户创建一段关系或者说是一个会话。然后将唯一表示这个会话的会话id以cookie 的形式存储在用户的浏览器中。所以这些东西存在的原因在于识别出用户来,这样当用户写了评论或者发推时,服务器能知道是谁在发评论,是谁在发推。当用户登录后,会产生一个包含会话id 的cookie,这样, 这个会话id被赋予了那个输入正确用户名和密码的人了。也就是说,会话id被赋予给了拥有这个账户的人了,之后,所有在网站上产生的行为,服务器都能通过他们的会话id 来判断是由谁发起的。

如何让用户保持登录状态?

会话有一定的时间限制,这一点与现实生活中不一样,现实生活中的关系可以在不见面的情况下持续很长时间,而好UI华具有时间限制,用户必须要不断通过一些动作来告诉服务器用户还在线,否则的恶化,服务器会关掉这个会话,而用户会被登出,不过在某些网站上可以启用“保持登录”功能,这样服务器会将另外一个唯一变量以cookie的形式保存到我们的浏览器中,这个唯一变量会通过服务器上的变量进行对比来实现自动登录。若有人盗取了这个唯一标示(我们称之为cookie stealing),他们就能访问用户的账户了

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值