5

当我重新启动我的 android 设备(kindle fire)或终止应用程序时,浏览器或 WebView 的“会话”cookie 似乎没有被删除。这似乎与 Windows 或 MacOS 上的浏览​​器行为完全不同,如果您终止浏览器应用程序,“会话”cookie 就会消失。浏览器进程重新启动后,仅应保留“持久”cookie。澄清一下,这里的“会话cookie”的含义是服务器设置的cookie,没有过期日期,在响应中使用http头,例如: Set-Cookie: mycookie=ifmr0846qcsdpeqqkgvuqmc5u7; path=/ 由于没有指定到期日期,浏览器通常不会保留这些,根据我的理解,让它们保持活动状态直到进程被终止。通常会话 ID 是使用这种类型的 cookie 设置的。

我确信这些不会在设备重新启动或应用程序重新启动时被删除,因为如果我登录到我的网站,建立一个会话(使用非持久性/“会话”cookie 作为会话 ID,在这种情况下命名为 PHPSESSID),然后重新启动设备并打开浏览器或 WebView 到相同的 url,我仍然登录,这对我来说意味着浏览器仍然发送相同的 PHPSESSID cookie,该 cookie 在设备重启之前由服务器设置。

任何人都可以解释/确认 android WebViews 或浏览器的这种行为吗?他们如何准确地管理会话和持久性 cookie?

谢谢。

4

1 回答 1

-1

你是对的,会话 cookie 不会在 WebView 的生命周期中自动过期。如果您发现此问题,您可以随时清除所有 cookie 或使用空值明确覆盖会话 cookie。

参考:Android WebView / CookieSyncManager 中会话 cookie 的生命周期

清除会话使用

CookieManager.getInstance().removeSessionCookie();
CookieManager.getInstance().removeAllCookie();
于 2014-11-22T14:10:38.047 回答