Cookie 作用,交互过程解析,设置,获取,删除,生效时间的设定

Cookie的作用:

对于Cookie的定义:为了辨别用户身份,进行的会话追踪而存储在用户本地的数据。
Cookie的一个作用,就是进行状态保持;比如咱们在浏览淘宝网时,如果服务器和浏览器是一种无状态的形式,那么你每次登陆完淘宝网,再次刷新或者进入其他页面时,登陆信息就会丢失,需要重新进行登陆。也就是说,默认状态下,当用户在一次请求时,浏览器和服务器并不知道在这次请求之前这个用户进行过什么操作。
为了解决上面的无状态情形,就需要进行状态保持,那么状态保持在Flask中有两种方式:

  • 在客户端存储信息:cookie
  • 在服务器存储信息:session

Cookie的交互流程:

下面以用户登陆某个网站为例:
①:浏览器会发送请求登陆的报文
②:服务器接收到登录名和登陆密码之后,在判断无误之后,会生成cookie;在生成cookie之后,会和响应报文一起返回给浏览器。

生成cookie的代码如下(在响应中生成cookie),response.set_cookie(’键‘,’值‘)

# 需要导入 from flask import make_response
@app.route('/login')
def login():
    response = make_response('success')
    response.set_cookie('user_id', '11')
    response.set_cookie('user_pwd', '123456')
    return response

③浏览器接收到cookie后,会将cookie保存在浏览器本地;
在运行后,我们可以查询浏览器此时存在的cookie,如下图
在这里插入图片描述

④:浏览器再次请求时,会把这个cookie里面的内容带上,发送给服务器:
获取cookie的代码如下(cookie的获取在请求中获取),浏览器在访问服务器时,会将本网站下所有Cookie信息提交给服务器,所以在request中可以读取Cookie信息;方法:request.cookies.get(键)

# 需要导入 from flask import request
# 能获取到的前提是,在获取之前已经生成了cookie,且没有被删除
@app.route('/')
def index():
    user_id = request.cookies.get('user_id')
    user_pwd = request.cookies.get('user_pwd')
    return '%s:%s' % (user_id, user_pwd)

cookie生效时间的设定:
在set_cookie中加入【max_age=时间数值 】的参数即可,代码如下:

@app.route('/login')
def login():
    response = make_response('success')
    response.set_cookie('user_id', '11', max_age=60)
    response.set_cookie('user_pwd', '123456', max_age=60)
    return response

cookie的删除:
删除也是在响应中设置的,使用 delete_cookie(键)

@app.route('/logout')
def logout():
    response = make_response('success')
    response.delete_cookie('user_id')
    response.delete_cookie('user_pwd')
    return response

cookie的删除,如下图所示:
当再次进入界面时,cookie的数量就会显示为0 :
在这里插入图片描述

提示:

  • Cookie基于域名安全,不同域名的Cookie是不能互相访问的
  1. 比如:在访问taobao.com时向浏览器中写了Cookie信息,使用同一浏览器访问baidu.com时,无法访问到taobao.com写的Cookie信息;
  2. 浏览器的同源策略

Cookie交互过程的图文解析:

在这里插入图片描述

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值