Cookie
一.前言
1.http协议是无状态的.
无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响
应情况直接影响,也不会直接影响后面的请求响应情况.
2.cookie产生背景;
状态可以理解为客户端和服务器在某次会话中产生的数据,那无状态的就以为这些数据不会被保留。会话中产生的数据又是
我们需要保存的,也就是说要“保持状态”.
3.什么是cookie?
Cookie具体指的是一段小信息,它是服务器发送出来存储在浏览器上的一组组键值对,下次访问服务器时浏览器会自动携带
这些键值对,以便服务器提取有用信息。
4.cookie的原理:
由服务器产生内容,浏览器收到请求后保存在本地;当浏览器再次访问时,浏览器会自动带上Cookie,这样服务器就能通过
Cookie的内容来判断这个是“谁”了。
5.cookie的劣势
Cookie虽然在一定程度上解决了“保持状态”的需求,但是由于Cookie本身最大支持4096字节,以及Cookie本身保存在客户端,可能被拦截或窃取
二.Django 中操作Cookie
1.获取Cookie
request.COOKIE[‘key’] 普通
request.get_signed_cookie(‘key’,default=RAISE_ERROR, salt=’ ‘,max_age=None)
get_signed_cookie方法的参数:
default: 默认值
salt: 加密盐
max_age: 后台控制过期时间
2.设置Cookie
rep = HttpResponse(…)
rep = render(request, …)
rep.set_cookie(key,value,…)
rep.set_signed_cookie(key,value,salt=’加密盐’,…)
参数:
key, 键
value=”, 值
max_age=None, 超时时间
expires=None, 超时时间(IE requires expires, so set it if hasn’t been already