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、图书馆终版

 

 

posted @ 2019-03-22 09:05  pythonernoob  阅读(156)  评论(0)    收藏  举报