cookie与session简介

 大家都知道http协议是一个无连接协议,无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

 虽然可以节省传输时间,但是这种无连接方式会导致服务器不知道发送的请求用户是谁,所以web开发中要确认是哪个用户发送的请求,就有了session和cookie来标示用户

来说说他们产生的流程吧

一般情况下,用户注册完成开始登陆后,后台会生成一个sessionid,然后会把session夹杂在cookie中发给用户,如果浏览器没有禁用cookie的话,就会保存在浏览器的缓存中,当然cookie的有效期可以由后台规定,这样用户可以保存这段cookie在一段之间内用cookie去访问该网站的其他页面就会相当于登录的用户去访问(一般情况)

后台会根据传过来的request里的cookie(在有效期内)截取对应session字段内容,与服务器上保存的session进行匹配,匹配成功会判断该用户处于登录状态

用户再次登录服务器会检查缓存cookie里的sessionid是否过期,过期了就再往你客户端里重新发一个cookie

总的来说session 在服务器端,cookie 在客户端(浏览器)

为什么不直接存cookie?

首先cookie是不是太长了,你存这么大一串会浪费你的资源

其次可以使用cookie来分担后端服务器的压力而且对于用户是透明的机制

再然后安全session的sessionID是放在cookie里,要想破解session的话,第一要破解cookie。破解cookie后,你才能得到 sessionID,sessionID是有人登录,或者启动session创建才会有,你不知道什么时候会有人登录。第二,sessionID是加密的,第二次session创建的时候,前一次的sessionID就没有用了,session过期时sessionid也会失效,想在短时间内功破加了密的 sessionID很难。session是针对某一次通信而言,会话结束session也就随着消失了,而真正的cookie存在于客户端硬盘上的一个文本文件,谁安全很显然了。如果你说这样还是会被破解,那我在后台还可以对session进行多次加密,然后再对cookie多次加密,你的破解难度会成指数级上升

所以别想知道session是多少了

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值