zoukankan      html  css  js  c++  java
  • Django 之COOKIE session

    COOKIE    译:饼干   

    session    译:会议

    众所周知,http是无状态的,那么在各大网站的使用中,怎么知道你是已经登陆了呢?

    其实,这里就用到了一个技术,就是COOKIE。COOKIE其实就是一段存在浏览器本地的不超过4KB的小型文本数据,由一个名称(Name)、一个值(Value)和其它几个用于控制Cookie有效期、安全性、使用范围的可选属性组成。

    百度百科:https://baike.baidu.com/item/cookie/1119?fr=aladdin

    简述:http在请求的过程中会会发送请求头和请求体 ,而请求头中,会包含COOKIE发送给服务器,服务器在接收到请求后,按照需求从COOKIE当中取数据,再进行业务处理,最后返回给web前端。

    所以,这里,我们可以知道,之所以我们登陆了某些网站后,网站知道我们的登陆状态,就是因为有COOKIE可以携带数据访问服务器,让服务器知道我们当前的登陆状态。

    当然,记录登陆状态只是一种应用场景,COOKIE还有其他的应用,比如保存一些数据呀,比如账号密码,是否记住密码等等。

    而此时问题来了,如果用本地存储密码,对于安全行较高的某些场景,比如网银等,我们是不要把密码等敏感信息存在本地的,所以我们需要将这些信息存在服务器。

    session就产生了,session是存储在服务器上的,技术上需要做的就是将每一个请求对应一个session_id,然后将session_id通过COOKIE传递给客户端,客户端在下次访问时,COOKIE携带着session_id提交,

    服务器通过查询session_id对应的一个名称(Name)、一个值(Value),取到需要的数据,再进行业务处理,最后返回给客户端。

    使用语法:

    COOKIE的设置

    response.set_cookie(key, value,[args])

    response是Httpresponse  render  redirect产生的response响应对象

    相关参数:

    • key:cookie的key值

    • value:cookie的value值

    • max_age: 超时时间就是在浏览器缓存中保留多少时间 单位是s 例子:10s

    • expires:作用于max_age类似如果值输入一个数字代表几天,如果输入具体时间格式为2019-9-12代表这天失效

    • path /代表全部生效 ,/aa/表示只在aa所在的域生效

    • domain: 域名表示cookie只在某个域名生效

    • secure: 对于cookies里面数据进行加密,默认为 flase为http协议,加密为ture为https协议

    • httponly: true 代表不能使用js获取cookie 通过JS获得cookies我们可以在f12里输入document.cookie获得

    COOKIE的读取:

    request.COOKIES.GET(key)

    request.COOKIES['key']

    COOKIE的删除:

    response.delete_cookie('key')

    del request.COOKIES[key]

    session:

    设置,修改
    request.session['key'] = 'value'

    获取
    request.session.get('key')

    删除
    request.session.clear() # 清空的是值
    request.session.flush() # 键和值一起清空
    del request.session['key'] # 删除指定数据

    request.session.set_expiry('value') # 过期时间设置 

  • 相关阅读:
    motan rpc
    etcd:从应用场景到实现原理的全方位解读 转自infoq
    微信扫码登录实现原理
    商家历史数据查询及下载
    zookeeper No route to host
    hadoop 一些命令
    spring cloud 转
    Lombok 安装、入门
    Prometheus
    kvm虚拟机静态和动态迁移
  • 原文地址:https://www.cnblogs.com/zc3614/p/11729889.html
Copyright © 2011-2022 走看看