b) cookie
i. 什么是cookie
Cookie 就是一段文本信息。
ii. cookie 原理:
- 当浏览器第一次发生请求的时候,服务器端生成一个cookie ,并服务器响应的时候,将cookie 信息设置在响应头中,返回给浏览器。当浏览器下次请求的时候,会在请求头中携带cookie 到服务器。
iii. 使用方法 - 设置cookie
response = HttpResponse(‘’)(render、redirect)
response.set_cookie(key,value) - 读取cookie
request.COOKIES[key] - 设置过期时间:
response.set_cookie(key,value,max_age=3) 单位是s
默认的过期时间:关闭浏览器。
iv. Cookie特点 - 以键值对的格式保存信息。
- Cookie是基于域名安全。
- 当浏览器访问某个网站时,浏览器将当前网站的所有cookie 都携带过去。
- Cookie 是有过期时间。
c) session
i. session是有服务器端生成的默认保存在数据库中的一段信息。
ii. 原理: - 当浏览器第一次访问时,服务器端生成session 然后保存到数据库 django_session表格中。表格中有一个唯一的session_key 对应session信息。当服务器响应的时候,将session_key 中的内容设置给cookie, cookie 的key 叫session_id 值是 session_key 的内容。
iii. Session操作
- 设置session : request.session[key]=value
- 获取session: request.session.get(key)
- 删除session:
a) request.session.flush() 将整个记录删除。
b) request.session.clear() 删除内容部分。
c) del request.sesion[key]
个人理解区别:
cookie中不能有中文,没有session安全,但更快