zoukankan      html  css  js  c++  java
  • Cookie与Session

    Cookie与Session
    Cookie:
    cookie是保存在浏览器端的键值对,可以用做登录
    1.保存在用户浏览器
    2.可以主动清除
    3.可以被“伪造”
    4.跨域名cookie不共享
    5.浏览器设置不接收cookie
    服务端设置Cookie
    v=datetime.datetime.utcnow() + datetime.timedelta(seconds=10)
    #设置cookie超时时间,系统默认一个时间,也可以用此方式添加一个时间,但以系统默认时间为基准。
    obj.set_cookie('k1','v1',max_age=10,expires=v,path="",domain="",secure=False,httponly=False)
    #max_age时间周期,给某个url生效设置cookie,如果path="/"表示全局生效。
    #domain参数:用域名设置访问权限
    secure参数(证书访问)执行https的cookie设置等操作的时候用ture
    httponly参数:(安全)禁止了js使用时获取cookies,仅仅Http网络传输使用
    获取cookie数据:.request_COOKIES.get()
    cookie
    客户端可修改
    服务端也可修改
    保存在客户端
    cookie 应用:
    登录认证:
    普通的cookie
    敏感信息,不适于放在cookie中,放在数据库中,频繁操作数据库
    签名的cookie(可能会被解密):
    加密的cookie使用(签名):
    .set_signed_cookie()
    解密数据:request.get_signed_cookie()
    cookie时做认证的时候,将不敏感的信息放在cookie中,频繁操作数据库
    Session
    session都是request操作的,session是保存在服务器上的键值对,依赖于cookie
    1.设置session
    request.session['key'] = value
    request.session.setdefault(key,value)#存在就不设置
    2. 获取session
    request.session['key']
    request.session.get(key,'')
    3. 删除session
    request.session.pop(key) #删除某一个键值对
    del request.session['key']
    request.session.delete() #删除所有的session键值对
    request.session.flush() #删除所有的session键值对.删除了cookie
    4. 设置超时时间
    request.session.set_expiry()
    5. 清除当前过期的session
    request.session.clear_expired()
    用户session的随机字符串(key):request.session.session_key
    将所有session失效日期小于当前日期的数据删除:request.session.clear_expired()
    检查用户session的随机字符串 在数据库中是否存在:request.session.exists("session_key")
    删除当前用户的所有session数据:request.session.delete()
    删除当前用户的数据并删除Session的Cookie:request.session.flush()
    确保用户前面的数据不可以再次被用户的浏览器访问,调用函数:django.contrib.auth.logout()
    注:设置会话Session和Cookie的超时时间
    request.session.set_expiry(value)
    (1).如果value是个整数,session会在些秒数后失效。
    (2).如果value是个datatime或timedelta,session就会在这个时间后失效。
    (3).如果value是0,用户关闭浏览器session就会失效。
    (4).如果value是None,session会依赖全局session失效策略。
    6,流程:浏览器首次访问服务器的时候没有cookie,然后访问服务器,服务器会生成一个session_ID字典,
    字典的值为浏览器的数据和cookie(一个随机字符串),然后返回session_ID给浏览器,下次浏览器再来的时
    候携带session_ID访问服务器,可以唯一找到对应的服务器存储的session,并且打开这个字典,并从中取到
    值做对应校验,检验是否正确能否访问
    注:一个session对应一个cookie,并且一个浏览器对应一个session数据
    session存在数据库中,默认存在django_session表中,也可以存在一个文件当中,或者缓存当中,这个取决于自设定.
  • 相关阅读:
    HDU 6143 Killer Names【dp递推】【好题】【思维题】【阅读题】
    HDU 6143 Killer Names【dp递推】【好题】【思维题】【阅读题】
    POJ 3974 Palindrome【manacher】【模板题】【模板】
    POJ 3974 Palindrome【manacher】【模板题】【模板】
    HDU 6127 Hard challenge【计算机几何】【思维题】
    HDU 6127 Hard challenge【计算机几何】【思维题】
    HDU 6129 Just do it【杨辉三角】【思维题】【好题】
    HDU 6129 Just do it【杨辉三角】【思维题】【好题】
    HDU 3037 Saving Beans【Lucas定理】【模板题】【模板】【组合数取余】
    8.Math 对象
  • 原文地址:https://www.cnblogs.com/wylshkjj/p/11605951.html
Copyright © 2011-2022 走看看