更新时间:2020年08月07日17时11分 来源:黑马程序员 浏览次数:
学习目标:
掌握 Cookie 的定义和使用
Cookie 定义
Cookie,有时也用其复数形式Cookies。
指的是由服务端生成, 保存在客户端的一种数据存储形式,内部以 key-value 键值对形式存储, value大小有限制(最大为4kb), 数据不安全。
背景:
Cookie 最早是网景公司的前雇员 Lou Montulli 在 1993 年 3 月的发明。Cookie 是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将 Cookie 的 key/value 保存到某个目录下的文本文件内,下次请求同一网站时就发送该 Cookie 给服务器(前提是浏览器设置为启用 cookie )。Cookie 名称和值可以由服务器端开发自己定义,这样服务器可以知道该用户是否是合法用户以及是否需要重新登录等。服务器可以利用 Cookies 包含信息的任意性来筛选并经常性维护这些信息,以判断在 HTTP 传输中的状态。Cookies 最典型记住用户名。
建议:
Cookie 是存储在浏览器中的一段纯文本信息,建议不要存储敏感信息如密码,因为电脑上的浏览器可能被其它人使用。
Cookie 的特点
·Cookie 以键值对 Key-Value 形式进行信息的存储
·Cookie 基于域名安全,不同域名的 Cookie 是不能互相访问的
例如:
保存在 www.baidu.com 域名下面的 cookie 不能够被其他域名的访问
设置 Cookie
可以通过 HttpResponse 对象中的 set_cookie 方法来设置 cookie。
参数解析:
key: cookie 中保存信息的名称
value: cookie 中保存信息时, 名称对应的值部分
max_age: cookie 中保存信息的有效期, 超过有效期, key-value 失效
其中 max_age 单位为秒, 默认为 None. 如果设置 None 值, 则关闭浏览器失效。
例如:
读取 Cookie
可以通过 **HttpRequest** 对象( request )的 **COOKIES** 属性来读取本次请求携带的 cookie 值。
例如:
request.COOKIES 为字典类型, 可以使用字典的 get( )
例如:
总结:
·cookie 用于保持前后端状态
·cookie 的设置为: response.set_cookie( key, value, max_age=时间(s))
·cookie 的获取: request.COOKIES.get( key )
猜你喜欢: