cookie和session的简单介绍以及session保存和获取流程

1.会话

会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份Session通过在服务器端记录信息确定用户身份

2.cookie

1.定义:保存在浏览器中的键值对格式的文本信息
    
2.Django中写cookie:  response.set_cookie(键,值,max_age=秒), 默认浏览器关闭过期
    
3.Django读cookie:  request.COOKIE.get(键) 
        当浏览器保存了某个域名的cookie后,再次访问这个域时,会自动将这些cookie信息包含在请求报文头中,发给服务器

3.session

1.定义====>保存在服务器中的键值对格式的信息,内容会被加密
        
2.保存方式
        1.关系型数据库
        2.缓存====> 本地内存
                    文件
                    nosql数据库,如 redis=====>最常用
        3.上面两种方式的混合
    
3.在Django中操作session,保存在redis中的简单步骤
        1.配置setting.py
        2.写:request.session[键]=值
        3.读:request.session.get(键)

4. session保存/获取流程流程图

           需要明确的是:session依赖于cookie

步骤如下:

第一步: 浏览器访问A网站====>1.服务器端首次写入session,如session["name"] = "ywk"
                                                   2.服务器端生成
唯一标识符(随机字符串)
                                                   3.服务器端向
redis中保存=====>格式:键值对
                                                                   键:唯一标识符
                                                                   值:加密的字典:{"name":"ywk"} # 在redis中保存的键值对并不是name:ywk
        
                                                   4.服务器端将唯一标识符保存到
cookie中===>格式:键值对
                                                                                                                                 
键:session_id
                                                                                                                                  值:唯一标识符(如图所示)
                                                                            
                                                   5.到此就能保存每个用户的浏览器保存的session信息都不一样
                                
第二步:  浏览器
保存服务器返回的cookie信息
        
第三步:  当用户
再次访问该网站时,浏览器自动携带所有相关的cookie信息(包括session_id)
            ====>1.服务器
读取cookie,从中获取到session_id
                       2.根据session_id获取对应的唯一标识符
                       3.通过唯一标识符,作为键 ,去redis中获取对应的值(加密的字典{"name":"ywk"})
                       4.解密字典,
获取session真正的信息

如果你和我有共同爱好,我们可以加个好友一起交流!

扫描二维码关注公众号,回复: 3633603 查看本文章

猜你喜欢

转载自blog.csdn.net/ywk_hax/article/details/83153755