1>什么是Cookie
其实Cookie是key-value结构,类似于一个python中的字典。随着服务器端的响应发送给客户端浏览器。
然后客户端浏览器会把Cookie保存起来,并标注Cookie来源,当下一次再访问同一服务器时把Cookie再
发送给服务器,这样服务器就可以识别客户端了。
如下,客户端(浏览器)第一次访问服务端的时候,是不带cookie值的,或者cookie是一个空字典,当请求
成功,服务端会返回一个cookie(cookie键值自定义)给浏览器,浏览器会保存这个cookie,当下次再访问该
服务端的时候,会把cookie放到请求里面一并发送给服务端,这样,服务端识别出这个cookie,也就是识别客
户端了,很明显的一个实际场景就是:你首次登录了京东商场输入了账号密码,你再访问京东的商品或者其他
页面时,就不用再次登陆了。
所以,Cookie本质上就是 一个浏览器针对一个服务端存储的键值对。
注意,都是一对一,A浏览器对应B服务端存储的cookie不能在访问C服务端时使用,D浏览器访问B服务端的
时候也不能发送A浏览器的cookie。
2>设置cookie
Django中设置cookie的语法,set_cookie(key:value)
获取cookie的语法:request.COOKIES
实现效果
3>Cookie中的其他参数
set_cookie( key, 键
value='', 值
max_age=None, 超长时间,cookie需要延续的时间(以秒为单位)
如果参数是\ None`` ,这个cookie会延续到浏览器关闭为止。
expires=None, 超长时间,expires默认None ,cookie失效的实际日期/时间。
path='/', Cookie生效的路径,浏览器只会把cookie回传给带有该路径的页面,
这样可以避免将cookie传给站点中的其他的应用。
/ 表示根路径,特殊的:根路径的cookie可以被任何url的页面访问
)
上面摘了一部分参数,还有一些暂时没涉及到的没拿过来,key,value对应键、值
max_age和expires都是设置cookie失效时间的,不同之处在于max_age的时间以秒为单位,就从cookie下发,多少
秒之后就会失效,如 max_age=15,那么登陆成功的15之内可以访问path的一些作用路径,15之后就又要重新登录了;
而expires是指定失效时间,具体的以 “年月日,时分秒”为准,到时间就失效了。
目前好像IE不支持max_age字段,所以,我们就用expires就好了。
path字段,限制cookie的作用范围,就是访问那些路径可以使用这个cookie,默认是根路径,就是该server的所有路径,
我们看下这个path的用法,
如上例子,之前我们在chuze页面登陆成功,访问zhuye和qita页面的时候都带了cookie,不用再次登陆,我们指定cookie的
path为/zhuye,看下访问qita页面时候的效果,如下。
4>利用cookie显示上次的访问时间
思路:登陆成功,记录下当前时间,并加入cookie返回给客户端,客户端再次访问时,取出时间并展示,如下