Cookie

概念:

  • Cookie,也叫Cookies,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密),好比会员卡或餐票。

特点:

  • Cookie是由服务器端生成的一小段信息,发送给User-Agent(一般是浏览器)保管。
  • 当浏览器请求某网站时,会将本网站下所有Cookie信息提交给服务器。
  • Cookie以键值对的格式进行信息的存储。
  • Cookie基于域名安全,不同域名的Cookie是不能互相访问的。
  • Cookie有过期时间,如果不指定,关闭浏览器就过期
  • 因为电脑上的浏览器可能被其它人使用,建议cookie不要存储敏感信息如密码。
  • 典型应用:记住用户名,购物车,网站的广告推送等。

设置:

  • 需要一个HttpResponse类(或子类)对象,该对象中有一个方法set_cookie,通过[对象.set_cookie(key=“",value="”,max_age=XXX[秒],xxx)]设置 ,过期时间可以用max_age 和 expires 两种形式来设置,max_age 的值为秒数,expires的值为具体过期时间。

获取:

  • cookie保存在浏览器返回的request对象的COOKIES属性里面,(在学习HttpReqeust对象的属性时,说过COOKIES是一个标准的Python字典,包含所有的cookie,键和值都为字符串)可以通过dict['键'] 或 .get('键') 的方法获取。

Session

概念:

  • 类似于cookie,对于敏感、重要的信息,需要在服务器端进行状态保持就用session,服务端将session的id给浏览器,数据存在服务器。

特点:

  • 储存在服务器端,通过设置SESSION_ENGINE项指定Session数据存储的方式,可以存储在数据库、缓存、Redis等
  • Session包括三个数据:键,值,过期时间
  • session的id是通过cookie给浏览器的,如果想使用Session,浏览器必须支持Cookie,否则就无法使用Session了,也是就是session依赖于cookie。

操作:

  • 与cookie不同的是 session 的设置和取值全部通过Httprequest 对象的Session属性进行读写操作
  • 增、改
  • request.session['键']=值
    
  • request.session.get('键',默认值)
    request.session['键']
  • del request.session['键']  删除会话中的指定键及值,在存储中只删除某个键及对应的值
    request.session.clear()    清除所有会话,在存储中删除值部分
    request.session.flush()    清除会话数据,在存储中删除会话的整条数据
  • 设置会话的超时时间,(默认两个星期)
    • 如果value是一个整数,会话将在value秒没有活动后过期
    • 如果value为0,那么用户会话的Cookie将在用户的浏览器关闭时过期
    • 如果value为None,那么会话永不过期
  • request.session.set_expiry(value)

Django边学边记--状态保持(cookie和session)相关推荐

  1. Django框架——状态保持(cookie、session)

    目录 1.cookie 2.session 1.cookie 设置: HttpResponse.set_cookie(cookie名, value=cookie值, max_age=cookie有效期 ...

  2. Django之form表单组件、cookie与session

    ---恢复内容开始--- Form表单组件 引例: 先来看一个注册的例子,全部用的是reg函数来实现的. views.py文件 def reg(request):errors = {'username ...

  3. Linux网络:HTTP协议 | URL | 协议格式 | HTTP方法 | HTTP状态码 | Cookie与Session

    文章目录 网络计算器 服务端 客户端 HTTP协议 认识URL 协议方案名 登录信息 服务器地址.端口号 带有层次的文件路径 查询字符串 片段标识符 urlencode和urldecode HTTP协 ...

  4. HTTP状态保持(cookie、session)

    目录 cookie session cookie cookie:由服务器生成,存储在客户端的数据 HTTP协议是无状态的协议,一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的 ...

  5. 浏览器:理解HTTP无状态与Cookie的使用

    一.理解HTTP无状态 1.1.理解http无状态 http无状态是指协议对于用户身份.用户状态.用户权限.交互场景等没有记忆能力.简单讲就是不能识别用户. 1.2.http无状态的优点: 可以更快地 ...

  6. Cookie、Session、Token、JWT 还傻傻分不清楚?

    点击上方"java大数据修炼之道",选择"设为星标" 优质文章, 第一时间送达 来自:掘金(作者:秋天不落叶) 原文链接: https://juejin.im/ ...

  7. 还分不清 Cookie、Session、Token、JWT?

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 转自:掘金   作者:秋天不落叶 juejin.im/po ...

  8. 面试官:要不讲讲 Cookie、Session、Token、JWT之间的区别?

    击上方"朱小厮的博客",选择"设为星标" 后台回复"加群",加入组织 来源:22j.co/btPm 什么是认证(Authentication ...

  9. Cookie、Session、Token、JWT区别与联系

    本文来说下与安全相关的话题,Cookie.Session.Token.JWT相关的知识与内容 文章目录 无状态的HTTP协议 什么是认证(Authentication) 什么是授权(Authoriza ...

最新文章

  1. gateway 内存溢出问题_带你学习jvm java虚拟机 arthas/性能调优/故障排除/gc回收/内存溢出等...
  2. Python的序列切片
  3. 圆方圆python入门:如何学习(二)
  4. [流体输配管网] 使用 Matlab 绘制莫迪图
  5. Maven常见异常及解决方法
  6. Spring 无缝整合 quartz
  7. 阶段性总结、反思、计划
  8. python 拍照搜题_大学慕课2020用Python玩转数据答案搜题公众号
  9. _beginthreadex,CreateThread和_beginthread
  10. maven配置阿里仓库
  11. 华为Code Craft 2020 + ZTE 中兴捧月
  12. linux7输入法切换,centos7如何切换输入法
  13. Keil uVision5开发一个基于LPC17XX系列芯片的工程文件
  14. python中spider的用法_Python爬虫从入门到放弃(十五)之 Scrapy框架中Spiders用法
  15. 动态规划——邮局、区间、坐标
  16. VScode 淡绿色界面
  17. 坤音键盘(ikun专用)
  18. cobra是什么鬼?
  19. 最小二乘拟合多项式(利用构造正交多项式的方法)C++
  20. idea插件,在idea中听云音乐

热门文章

  1. 5-12 Python条件语句、循环语句、While循环语句、break语句、continue语句、pass语句
  2. [ 英语 ] 详解 Respect、Respective、Respectively 单词差异
  3. Apache Kylin 和 Baidu Palo对比
  4. 爱奇艺视频《哈利波特》怎么转换为mp4格式
  5. 焦虑症的自救-克莱尔·威克斯
  6. 2020最新互联网数据调查显示,Kotlin-势必取代-Java?,java从入门到精通下载
  7. Oculus Quest 2新手入门教程
  8. 教育统计学知识总结1
  9. Word书写Latex之Aurora的安装总结
  10. 如何把ADS的圆图导入到origin中