欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
1.状态保持——cookie和session:
 
http协议是无状态的:每次请求都是一次新的的请求,不会记得之前通信的状态。
 
客户端与服务端的一次通信,就是一次会话实现状态保持的方式:在客户端或服务端存储与会话有关的数据。
 
存储方式包括cookie,session,会话一般指session对象。
 
使用cookie,所有数据存储在客户端,注意不要存储敏感信息。
 
使用session方式,所有数据存储在服务器端(以键值对形式存储),在客户端cookie中存储session_id,用户的重要信息是不会存储在客户端的,下次用户登录只需校验session_id即可,安全!!!
 
状态保持的目的是在一段时间内跟踪请求者的状态,可以实现跨页面访问当前请求者的数据。
 
注意:不同的请求者之间不会共享这个数据,与请求者一一对应。
 
session依赖于cookie!!!
 
2.来讲讲session的由来:
 
Cookie虽然在一定程度上解决了“保持状态”的需求,但是由于Cookie本身最大支持4096字节,以及Cookie本身保存在客户端,可能被拦截或窃取,因此就需要有一种新的东西,它能支持更多的字节,并且他保存在服务器,有较高的安全性。这就是Session。
 
问题来了,基于HTTP协议的无状态特征,服务器根本就不知道访问者是“谁”。那么上述的Cookie就起到桥接的作用。
 
我们可以给每个客户端的Cookie分配一个唯一的id(sessionid),这样用户在访问时,通过Cookie(获取其内的sessionid值),服务器就知道来的人是“谁”。然后我们再根据不同的Cookie的sessionid,在服务器上保存一段时间的私密资料,如“账号密码”等等。
 
总结而言:Cookie弥补了HTTP无状态的不足,让服务器知道来的人是“谁”;但是Cookie以文本的形式保存在本地,自身安全性较差;所以我们就通过Cookie识别不同的用户,对应的在Session里保存私密的信息以及超过4096字节的文本。
 
另外,上述所说的Cookie和Session其实是共通性的东西,不限于语言和框架。
 
3.Session的特点:
 
session是以键值对进行存储的。
 
session依赖于cookie。唯一的标识码保存在sessionid cookie中。
 
session也是有过期时间。
 
4.讲一讲Session流程:
 
当用户登录以后,生成一个字典{key, value},将字典存入服务端session,key是自动生成的一段字符串标识,配合value是一个自定义格式的字典类型,返回cookie保存到用户浏览器端
 
在1步骤生成的字典value中自定义格式来存储用户的信息,如user信息,iflogin等。
 
当我们在django中用到session时,cookie由服务器端随机生成,写到浏览器的cookie中。每个浏览器都有自己的cookie值,是session寻找用户信息的唯一标识。每个浏览器请求到后台接收的request.session等价于在1中session字典的key(cookie)对应的value。这样我们就能识别出用户,并判断其状态!

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h64977.shtml