Fifty-one cookie/session/图书馆终版
1、cookie
1、为什么需要Cookie
日常中,当客户端和服务端连接期间,需要做其它如请求购买东西、结算等都可能用到连接之初的用户请求信息,以确保用户端及服务端的安全性,而HTTP是无状态协议,也就是说每个请求都说独立的,无法记录前一次请求的状态,所以要使用Cookie来完成跟踪,web中则利用Session来完成跟踪。
2、什么是Cookie
一种key-value的形式(类似字典),随着服务器端的响应发送给客户端浏览器,然后客户端浏览器会把Cookie保存起来,并标注出Cookie的来源,当客户端向服务端发出请求会把所有这个服务器Cookie包含在请求中发送给服务端,这样服务端就能识别客户端(给响应对象设置)
3、Cookie规范等更多详细内容尽在

4、语法
# 设置Cookie rep.set_cookie("key",value,...) # 目前用这个 rep.set_signed_cookie("key",value,salt='加密盐',...) # 获取Cookie request.COOKIES.get("key") # 删除 response.delete_cookie("cookie_key",path="/",domain=name)
2、Session
1、基于Cookie,也是类字典类型,更加安全,用户在浏览器Cookie里面什么信息都看不到(Cookie是可以看到的),唯一的区别是放在服务器,Cookie是放在浏览器

2、语法
# 设置session 值 request.session['is_login'] = True # 写入键值 request.session['username'] = user_obj.username # 获取session 值 request.session.get("is_login") # 删除 del request.session["is_login"]
3、设置时发生3件事(给请求对象设置):
1、生成一个随机字符串
2、将随机字符串存在django-session 表里,将字典存在session_data这个字典(加密)
3、将session=随机字符串设置给cookie
4、获取时
1、在cookie 中获取sessionid的值(随机字符串)
2、将字符串,在django_session表中过滤出相应的对象
3、从类字典中获取相应的值
3、图书馆终版



浙公网安备 33010602011771号