当我重新启动我的Android设备(kindle fire)或杀死一个应用程序时,似乎浏览器或WebView'会话'cookie不会被删除。这似乎与Windows或MacOS上的浏览器行为完全不同,如果您终止浏览器应用程序,“会话”cookie就会消失。浏览器进程重启后,只应保留“持久性”cookie。 为了澄清,这里'session cookies'的含义是服务器设置的cookie,没有到期日期,在响应中使用http头,例如: Set-Cookie:mycookie = ifmr0846qcsdpeqqkgvuqmc5u7;路径= / 由于没有指定过期日期,因此根据我的理解,浏览器通常不会保留这些过期日期,让它们保持活动状态直到进程被终止。通常会使用此类cookie设置会话ID。
我确信在设备重启或应用重启时不会删除这些内容,因为如果我登录到我的网站,建立会话(使用非持久性/'会话'cookie作为会话ID,在这种情况下名为PHPSESSID) ,然后重启设备并打开浏览器或WebView到同一个网址,我仍然登录,这意味着浏览器仍然发送了设备重启前服务器设置的相同PHPSESSID cookie。
有人能解释/确认Android WebViews或浏览器的这种行为吗?他们如何完全管理会话和持久性cookie?
感谢。
答案 0 :(得分:-1)
你是对的,会话cookie不会自动失效 WebView的生命周期。如果你看到这个问题,你可以 始终清除所有Cookie或覆盖会话Cookie 明确地使用空值。
参考:Lifecycle of a session cookie in an Android WebView / CookieSyncManager
清除会话使用
CookieManager.getInstance().removeSessionCookie();
CookieManager.getInstance().removeAllCookie();