cookie的生死之道

     如果一个cookie不设置expires过期时间的话,这个cookie会在同源浏览器的最后一个窗口关闭之后失效。不设置过期时间的cookie也只能被同源浏览器、同域网页所调用。如果想同域但非同源的网页也能调用这个cookie的话,必须设置过期时间。

    cookie是在浏览器端同域(同大域)同源或非同源浏览器窗口之间的一些信息交换中转站。比如象CSDN里的WEBIM,每个页面都想知道目前都有谁给我发送了留言,通过cookie的中转,就可以做到即使同时打开100个窗口,也不会同时100个请求并发,只要其中的一个页面去请求就够 了,另外的页面只需要实时监控这个cookie即可。

    cookie的所在域domain如果设置为大域,比如:csdn.net,那么所有这个大域下的子域比如http://bbs.csdn.net/、http://blog.csdn.net/ 都可以直接访问到这个cookie设置。这个特性被很多大型网站用做passport登录,保证一处登录,所以子域都是登录状态。

    cookie可以设置path路径,可以指定cookie的起效路径。

    少用cookie,因为在每个HTTP请求都会带上cookie信息在网络间传输,会在无声无息中大量消耗宝贵的带宽,因为每请求一张图片、每一个AJAX请求都会带上这个cookie信息,大家可以用HTTP请求的抓包工具看到。少用cookie,特别要慎用大域cookie。若只是作为本地数据中转中心可以使用userdata或者sessionStorage。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: Python Flask框架中,可以使用cookie来存储和获取用户的信息。cookie是一种在用户计算机上存储数据的小文件,可以在用户访问网站时被读取和写入。在Flask中,可以使用request和response对象来操作cookie。 要设置cookie,可以使用response对象的set_cookie方法。例如,下面的代码将一个名为“username”的cookie设置为“John”: ``` from flask import Flask, make_response app = Flask(__name__) @app.route('/') def index(): resp = make_response('Hello, World!') resp.set_cookie('username', 'John') return resp ``` 要获取cookie,可以使用request对象的cookies属性。例如,下面的代码将获取名为“username”的cookie的值: ``` from flask import Flask, request app = Flask(__name__) @app.route('/') def index(): username = request.cookies.get('username') return 'Hello, {}!'.format(username) ``` 需要注意的是,cookie中存储的数据可以被用户修改或删除,因此不应该将敏感信息存储在cookie中。另外,cookie的大小也有限制,通常不应该超过4KB。 ### 回答2: Python Flask框架中的cookie是一种客户端数据存储机制,可以存储在用户浏览器中,以便在后续用户访问网站时读取和使用它们。使用Flask,我们可以轻松创建和操作cookie。常用的cookie操作包括设置、获取和删除cookie,以及设置cookie的过期时间。 Flask中使用cookie的步骤如下所示: 1. 导入Flask的request和response模块。 2. 在视图函数中,通过request.cookies属性获取所有cookie对象。 3. 使用response.set_cookie()方法设置cookie。 4. 使用response.delete_cookie()方法删除cookie。 要设置cookie,我们需要提供参数名称,值和过期时间等信息。 语法:response.set_cookie(key, value='', max_age=None, expires=None, path='/', domain=None, secure=False, httponly=False) 1. key:cookie的名称。 2. value:cookie的值。 3. max_age:cookie的过期时间,以秒为单位。 4. expires:cookie过期的datetime对象。 5. pathcookie的可见路径。 6. domaincookie的域名。 7. secure:如果是True,则只有通过HTTPS连接的请求才能获取cookie。 8. httponly:如果是True,则cookie不能通过javascript来获取,这可以防止跨站点脚本攻击。 要获取cookie,我们只需要调用request.cookies.get()方法,并传入cookie的名称即可。 要删除cookie,我们可以使用response.delete_cookie()方法。删除cookie时,我们需要提供cookie的名称和其他可选参数,如cookie的域名,路径等等。 总之,cookie是一种简单且有用的客户端数据存储机制,Flask框架中的处理cookie提供了很多便利性的方法,使得在开发web应用时可以轻松使用cookie实现用户记录和数据传递等功能。 ### 回答3: Python Flask框架是一个轻量级的web框架,它提供了一个灵活的方式来开发web应用程序。Flask框架通过使用Cookie会话管理,可以帮助我们在Web应用程序中实现状态管理。 Cookie是一个小型的文本文件,存储在客户端的浏览器中,用于识别用户。当客户端向服务器发送请求时,浏览器通过使用Cookie将识别码发送到服务器。在Flask中,我们可以通过使用session对象来访问Cookie数据。 在Flask中,我们可以使用session对象来设置和获取Cookie值。使用session对象可以在服务器端存储用户信息,并在下次用户访问时再次获取。session对象是一个字典类型,可以存储任意的Python对象。在Flask应用程序中,我们可以通过如下的方式使用session对象: # 导入Flask和session库 from flask import Flask, session # 实例化Flask app = Flask(__name__) # 设置session密钥 app.secret_key = 'your_secret_key' # 定义路由 @app.route('/') def index(): # 将数据存储在session对象中 session['username'] = 'John Doe' return 'Session created!' @app.route('/getsession') def getsession(): # 从session对象中获取数据 username = session.get('username') return 'The username is ' + str(username) if __name__ == '__main__': app.run() 在这个示例中,我们在app对象中定义了一个密钥app.secret_key,这个密钥用于加密我们的Cookie会话数据。然后,我们在index()函数中将数据存储在session对象中,使用session['username'] = 'John Doe'。在getsession()函数中,我们通过使用session.get('username')来获取存储在session对象中的用户名。 总而言之,使用Flask框架的session对象可以帮助我们在web应用程序中实现状态管理,通过存储和获取Cookie数据实现用户信息的跨页传递。利用Flask的session对象可以更加灵活地开发web应用程序,提高用户体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值