zoukankan      html  css  js  c++  java
  • cookie<------>session

    什么是cookie:

          保存在浏览器上的一组键值对.

    为什么有cookie:

          http协议是无状态,每次请求都是无关联的,没办法保存状态.使用cookie保存状态.

    cookie的特性:

             1.由服务器让浏览器进行设置的

          2.浏览器有权不设置

          3.下次访问时自动携带响应的cookie

    Django中的操作:

           设置:

              1,设置普通cookie

                response.set_cookie(key,value,max_age=5,)

              2,设置加密cookie

                response.set_signed_cookie(key,value,max_age=5,salt='xxx')

                key(键)

                value(值)

                max_age=None(超时时间)

                salt='xx'(要加密的盐)

                path='/'(路径,/表示根路径,根路径的cookie可以被任何url的页面访问)

                domain=None, Cookie生效的域名

                secure=False, https传输

                httponly=False 只能http协议传输,无法被JavaScript获取(不是绝对,底层抓包可以获取到也可以被覆盖)

           获取:

              1,获取未加密的cookie(两种)

                request.COOKIES[ke]

                request.COOKIES.get(key)

              2,获取加密的cookie

                request.get_signed_cookie(key,salt='xxx',default=' ')

                default: 默认值

           删除:

              response.delete_cookie(key)

    什么是session:

          保存在服务器上的一组键值对.-----(依赖于cookie)

    为什么有session:

            1.cookie保存在浏览器本地,不安全

            2.cookie有长度限制,个数限制.

    Django中的操作:

            设置:

              request.session[key] = value  (存在修改,不存在添加)

              request.session.setdefault(key,value)  (存在不修改,不存在添加)

              request.session.set_expiry(5)  (设置超时时间)

            获取:

              request.session[key]

              request.session.get(key)

            删除:

              del request.session[key]

            request.session.flush() 删除所有的session信息和cookie

            request.session.delete()   删除所有的session信息,不删除cookie

            其他:

              request.session.exists("session_key")       ----/检查会话session的key在数据库中是否存在

              request.session.set_expiry(value)    设置会话Session和Cookie的超时时间

                    如果value是个datatime或timedelta,session就会在这个时间后失效。
                    如果value是0,用户关闭浏览器session就会失效。
                    如果value是None,session会依赖全局session失效策略。

            配置:

               from django.conf import global_settings,settings   # 全局的配置和局部的配置
              from django.contrib.sessions.backends import db  

  • 相关阅读:
    使用SuperWebSocket 构建实时 Web 应用
    slam for Windows 库安装及应用libfreenect2
    《SLAM十四讲》g2o_custombundle在windows轻松调通
    windows下命令行查看库依赖
    zend studio控制台中文乱码
    http协议转
    mysql 字段 增删改
    PHP内部函数
    分层设计
    SecureCRT上传和下载
  • 原文地址:https://www.cnblogs.com/leo-tail-x/p/10098043.html
Copyright © 2011-2022 走看看