第十章 Django Cookie和Session
本章所学内容:
10.1 web应用访问请求流程
10.2 Cookie和Session
10.3 Cookie验证原理和实例
10.4 Cookie和Session
10.1 web应用访问请求流程
10.1.1 web应用访问请求流程简介
10.2 Cookie和Session
10.2.1 Cookie和Session简介
- Cookie介绍
当你在浏览网站的时候,WEB服务器会先送上一小段的资料放在你的计算机上,Cookie会帮你在网站上所打的一些文字或者是一些选择,都记录下来。当你下一次就访问同一个站点的时候,WEB服务器会先看有没有他上次留下的Cookie资料,有的话就会依据Cookie里的内容去判断使用者是谁,然后送出特定的网站给你。
- Session介绍
Session机制,session机制是一种服务端的机制,服务端使用一种类似散列表的机构来保存信息,当程序需要为某个客户端的请求创建一个session的时候,服务端首先会检查这个客户端的请求里是否包含了一个session_id标识(唯一的),如果检测出来有,就说明以前已经为这个客户创建过session,服务端就会按照session id把这个session检索出来,如果检测不到就会创建一个新的session id。
10.3 Cookie验证原理和实例
10.3.1 Cookie验证原理和实例详解
- Django的Cookie验证原理
- 当浏览器第一次登录网站的时候,无论登录那个页面,都会被拦截到login界面,因为此时的cookie信息还没有生成,代表着不可以登录。如果输入正确的账号密码登陆成功以后,服务端会写cookie发到客户端,那客户端的一些操作也会被记录在cookie里,再次登陆的时候,服务端会去验证cookie的时候,此时cookie信息已经生成了,即为验证成功。
- Cookie的工作原理是:由服务器产生内容,浏览器收到请求后保存到本地;当浏览器再次访问的时候,浏览器会自动带上cookie,这样浏览器就能通过cookie的内容来判断这个请求是谁。
- Cookie验证登录实例
模板:
Index:
Login:
视图:
- Cookie的缺点和问题
- 因为cookie存储的位置是客户端,所以客户端可以被盗取cookie信息和伪造cookie信息,容易被不法人员所利用,所以不建议单独使用cookie去验证。
- Cookie弥补了http无状态的不足,让服务器知道来的人是谁;当时cookie以文本的形式保存在本地,自身的安全性较差;所以我们就通过cookie识别不同的用户,对应的在session里保存私密的信息以及超过4096字节的文本。
10.4 Cookie和Session
10.4.1 Cookie和Session简介
- 原理图
- Cookie和Session原理分析 sessionid的作用
当浏览器去访问服务端的时候,服务端会给浏览器下发一个session_id,浏览器会把这个session_id存放在我们的cookie里面,下次浏览器在访问服务端的时候,session_id就会匹配成功,则登录成功。Session_id。唯一的,有效的。一旦过期就会重新生成一个新的session_id,会重新下发到浏览器,那浏览器就会在cookie里写入新的session_id。
- Cookie和Session配合使用实例
- Cookie和Session会话保持时间
- Cookie的会话保持时间
max_age 以秒为单位
- Session的会话保持时间
Request.session.set_expiry(value)
*如果value是个整数,session会在数秒后失效
*如果value是0,用户关闭浏览器session就会失效
*如果value是None,session会以来全局session失效策略
- Session的操作
获取session:request.session[key]
设置session:request.session[key] = value
删除session:del request.session[key]
总结:
10.1 web应用访问请求流程
10.2 Cookie和Session
10.3 Cookie验证原理和实例
10.4 Cookie和Session