码迷,mamicode.com
首页 > 其他好文 > 详细

09:Django基础之cookie与session

时间:2021-06-06 19:20:58      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:无法   lazy   style   函数   error   data   exp   mamicode   协议   

cookie与session

技术图片

 

 

由来及简介

HTTP协议四大特性
    1.基于请求响应
    2.基于TCP、IP作用于应用层之上
    3.无连接
    4.无状态
        
基于HTTP协议的通信无法记录客户端状态
但是现在很多软件都需要记录用户的状态 为了解决这个问题
发明了cookie session等一系列的技术
?
cookie
    保存在客户端浏览器上面的键值对数据
    """
    eg:当用户登录成功之后 浏览器保存用户的关键信息
    以后访问的时候浏览器自动发送关键信息从而实现身份识别
    
    关键型数据直接保存在浏览器上不安全
    """ 
session
    保存在服务器上面的键值对数据(数据类型不固定)
    """
    eg:当用户登录成功之后 服务端返回给浏览器一个随机字符串
    之后访问都将随机字符串发送给服务端
    服务端内部做比对
    """
# session需要依赖于cookie才可以工作
客户端浏览器可以保存服务端发送过来的cookie数据也可以选择拒绝

 

cookie操作

视图函数返回的HttpResponse对象
return HttpResponse()
return render()
return redirect()
...
?
?
obj = HttpResponse()
return obj
obj = render()
return obj
obj = redirect()
return obj
?
# 用户登录
    设置cookie
        obj = HttpResponse("登录成功")
        obj.set_cookie(name,jason)
    获取cookie
        request.COOKIES.get(name)
    删除cookie
        obj.delete_cookie("name")

技术图片

 

 

session操作

session设置
    request.session[name] = jason
    """
    1.自动产生一个随机字符串
    2.将随机字符串和数据存入django_session表中
    3.将随机字符串返回给客户端浏览器保存
    """
?
session读取
    request.session.get(name)
    """
    1.客户端请求中获取随机字符串
    2.拿着随机字符串去django_session表中比对
    3.如果比对成功获取对应的数据并且解析放到request.session中
    """
# django session默认的过期时间14d 可以人为修改
?
?
# 删除当前会话的所有Session数据
    request.session.delete()  # 只删客户端浏览器
  
# 删除当前的会话数据并删除会话的Cookie。
    request.session.flush()  # 客户端浏览器和服务端都删
?
 
# 设置会话Session和Cookie的超时时间
    request.session.set_expiry(value)
        * 如果value是个整数,session会在些秒数后失效。
        * 如果value是个datatime或timedelta,session就会在这个时间后失效
        * 如果value是0,用户关闭浏览器session就会失效。
        * 如果value是None,session会依赖全局session失效策略。

 


       
?

 

09:Django基础之cookie与session

标签:无法   lazy   style   函数   error   data   exp   mamicode   协议   

原文地址:https://www.cnblogs.com/chijintao/p/14854891.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!