问题:浏览器与服务器请求与返回过程中,cookie跟session有什么用?
1.cookie
# 服务器端产生cookie,cookie是存在浏览器中; # 浏览器在请求服务器端之后,服务器端想在浏览器端保存一些数据; # 服务器就会创建一个cookie,在返回请求相应时,带回到浏览器中; >>>> # 在用户登录时选择‘记住用户名‘,服务器端处理请求创建一个cookie; # 将cookie带到浏览器中,浏览器中就显示这个用户名; # 第二次登录的时候就携带这个cookie以及自己输入的密码,到服务器端; # 服务器直接将cookie以及密码写到html里; # 响应返回给浏览器,显示页面;
2.session
# 保存用户登录状态 # 浏览器端在首页发出登录请求,服务器端处理返回登录页面; # 在浏览器端输入用户名与密码,提交服务器端; # 服务器端进行用户名密码检测,进入登入状态页面; # 在服务器端产生一个session值,以键值对方式存入数据库中; # 每一个键值对都存有一个sessionid来标记; # # 注意:这里的键值对中的key,是一对多的形式; # # 每台电脑都对服务器端进行访问,没有sessionid来标记的话, # # 谁知道那个值是你这台电脑的浏览器发出的? # # 所以在产生一个session的同时,服务器端又产生一个cookie, # # 来存储{key(sessionid): value(num_id)}; # 服务器端返回这个cookie到浏览器; # 当浏览器再次请求访问页面的时候,就会带着这个cookie到服务器端; # 服务器端发现这个存有sessionid的cookie时, # 就会从数据库中查询/调取对应存好的session数据; # 到request对象中,这个过程在中间键中执行; # request.session[‘uname] = obama # # 请求先到中间键,再到视图; # # 视图中再从session里取值; # # 写入页面中;
原文地址:http://13269293.blog.51cto.com/13259293/1973796