我通过将Expires
属性设置为过去日期来过期cookie,我可以在Fiddler中看到它有效。但是,
现在我知道浏览器会在喜欢的时候删除cookie,但我认为它会在用户再次访问同一网站之前。
如何确保浏览器在下一次请求来自该用户之前删除它们?
答案 0 :(得分:2)
为了成功删除Cookie,您不仅需要设置过去的Expires
日期,还需要指定与您相同的path
和domain
属性首次设置cookie时使用。每个请求都不会将这些属性发送到服务器,因此您必须以其他方式跟踪它们。
这样做的原因是您可以使用两个具有相同名称但具有不同path
或domain
属性的cookie,因此浏览器需要所有详细信息才能知道要删除哪个。
答案 1 :(得分:0)
当您设置cookie的Expires
属性时,您基本上设置了持久性cookie。这意味着此cookie不再存储在浏览器的内存中,而是保存在客户端计算机上,它将在浏览器甚至计算机重启后继续存在,直到达到指定的日期。如果您没有设置Expires
属性,那么您将创建一个非持久性cookie,该cookie仅在用户关闭浏览器之前有效(当前选项卡将关闭cookie值并且如果用户打开一个新值选项卡并再次访问您的网站,cookie将再次发送,您无能为力)。在HTTP协议规范中,每个选项卡/窗口都没有cookie的概念,这显然是正常的,因为在本规范中没有浏览器 tab 或 window 的概念。
要了解有关Cookie的更多信息,请查看涵盖不同类型的following article。