Cookie有效期在chrome和firefox中是否不同?

问题描述 投票:0回答:1

我一直在使用cookie。因此观看了文档和一些博客,并如下所示对Cookie进行编码->

def ProouctDetailView(request, slug):
    item = Item.objects.get(slug=slug)
    response = render(request, 'product.html', {'item' : item } )
    temp = request.COOKIES.get('pro', None)

    response.set_cookie('pro','{0} {1}'.format(temp, slug))

    return response

这里我正在拿饼干。由于django不在单个cookie中提供设置乘数的值,因此我将所有值作为一个字符串(以空格分隔)在一起,然后使用split()方法将其拆分。然后我过滤以生成最近查看的部分的查询集

def HomeListView(request):
    items = Item.objects.all()
    recent = None
    try:
       slug = request.COOKIES.get('pro').split(" ")
       recent = Item.objects.filter(slug__in= slug)
    except: 
        pass   
    return render(request, 'home.html', {'items': items, 'recent':recent})

从cookie,我得到的是item对象的子对象,以便稍后我可以在最近查看的部分中显示它们,因为我没有在set_cookie()方法中提供任何max_age字段,它将设置为none,这意味着该cookie会在用户关闭浏览器会话时自动过期,意味着关闭浏览器,对吗?

但是即使我关闭了Chrome并重新启动了chrome,最近浏览的部分也不会过期。它仍然在那里。因此cookie的铬版没有过期。但是,如果我使用Firefox,则当我重新启动Firefox时,cookie会过期。

python django cookies session-cookies
1个回答
0
投票

Cookie应该在服务器将其到期日期设置为过去的日期后立即到期。

Cookie在重新启动浏览器之前仍然被认为是有效的。

https://bugs.chromium.org/p/chromium/issues/detail?id=113073

© www.soinside.com 2019 - 2024. All rights reserved.