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失效策略。

       

最新文章

  1. RadioGroup 和 ViewPager 绑定 实现切换
  2. [转载]AxureRP学习成长之路
  3. Linux系统安装及初始化(ubuntu14.04)
  4. 学习 Message(5): 关于 TApplicationEvents.OnMessage 的第二个参数 可以屏蔽 TWebBrowser右键菜单:
  5. Android样式的开发:Style篇
  6. Windows-006-映射网络驱动器图文详解
  7. jython学习笔记3
  8. 利用 Ant 和 Eclipse 有效地提高部署工作效率
  9. 数理方程:Laplace变换 & 留数(更新中)
  10. shape 填充 圆角矩形 圆形 环形
  11. MAP--复杂map结构的构造
  12. R自带数据包
  13. Useful Git Commands for me
  14. golang str 首字母大写
  15. C++入门程序作业1
  16. 算法分析(2)——大O和大Θ
  17. Oracle 创建 DBLink 的方法
  18. TopShelf 自动配置Service测试
  19. jsp页面错误的全局处理
  20. Pipelines - .NET中的新IO API指引(三) 边看边记

热门文章

  1. Postman中如何实现接口之间的关联?
  2. 企业是否可以用CRM做邮件营销?
  3. nohup /usr/local/node/bin/node /www/im/chat.js >> /usr/local/node/output.log 2>&1 &
  4. Linux ln命令:在文件之间建立链接(硬链接和软链接)详解版1
  5. OS_FLAG_GRP_DEPLETED
  6. Linux进阶之bond链路聚合
  7. 安全漏洞扫描工具 burpsuite V1.7.32 资料
  8. 阿里云轻量服务器价格及轻量与ECS服务器区别比较
  9. 实操笔记:为 NSQ 配置监控服务的心路历程
  10. xshell 终端 中文乱码