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表中,也可以存在一个文件当中,或者缓存当中,这个取决于自设定.
  • 相关阅读:
    HTTP报文(转)
    批处理增加开机启动项(转)
    HTTP代理服务程序介绍(copy)
    MP3文件格式说明 (转)
    [sql] SQL Server判断对象是否存在
    MSSQL 链接远程数据库 读取并操作数据
    将无线网卡变成“无线路由器(无线AP)”
    :DOS命令大全(经典收藏)
    java 使用 poi 操纵 excel2003 经验总结
    log4j.properties的配置详解(根据网络资料整理)
  • 原文地址:https://www.cnblogs.com/wylshkjj/p/11605951.html
Copyright © 2011-2022 走看看