flask的cookie使用

Posted yingxiongguixing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flask的cookie使用相关的知识,希望对你有一定的参考价值。

cookie基本概念:

 一、 Cookie总是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie。内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。硬盘Cookie保存在硬盘里,有一个过期时间,除非用户手工清理或到了过期时间,硬盘Cookie不会被删除,其存在时间是长期的。所以,按存在时间,可分为非持久Cookie和持久Cookie

HTTP请求 + cookie的交互流程

 

 技术图片

二、cookie的缺点:

  • cookie会被附加在每个HTTP请求中,所以无形中增加了流量,影响性能
  • 由于在HTTP请求中的cookie是明文传递的,所以安全性成问题,建议使用https
  • Cookie的大小限制在4KB左右。对于复杂的存储需求来说是不够用的。

三、设置cookie:1.设置cookie是在Response的对象上设置,flask.Response对象有一个set_cookie方法,可以通过这个方法来设置cookie信息

       查看cookie信息:借助于抓包工具fiddler、httpwatch、charles、burpsuit等等

四、删除cookie:通过Resposne对象.delete_cookie,指定cookie的key,就可以删除cookie了

示例:

            技术图片

五、设置cookie的有效期:1.max_age:以秒为单位,距离现在多少秒后cookie会过期

                                           2.expires:为datetime类型。这个时间需要设置为格林尼治时间,相对北京时间来说,会自动+8小时

                                           3.如果max_age 和 expires都设置了,那么这时候以max_age为标准。

                                           4.默认的过期时间:如果没有显示的指定过期时间,那儿这个cookie将会在浏览器关闭后过期

 

         示例:

                     技术图片                           

注意:1.max_age在ie8以下的浏览器是不支持的

           2.expires虽然在新版的http协议中被废弃了,但是浏览器还是能够支持,如果要兼容ie8以下的浏览器,那么应该使用expires,否则使用max_age

                                                            

 

以上是关于flask的cookie使用的主要内容,如果未能解决你的问题,请参考以下文章

Flask中使用cookie和session

雷林鹏分享:Flask Cookies处理

Flask 学习-93.cookie 有效期设置

Flask – 具有相同名称的多个会话 cookie

flask中cookie和session的使用

五十九:Flask.Cookie之flask设置cookie过期时间