鍍金池/ 問答/C  HTML/ cookie的失效時間已經(jīng)是session,關(guān)閉瀏覽器(Mac下chrome)咋

cookie的失效時間已經(jīng)是session,關(guān)閉瀏覽器(Mac下chrome)咋沒有清空?

cookie的失效時間已經(jīng)是session,關(guān)閉瀏覽器之后再打開,為什么當(dāng)前域下的cookie的值還在?(windows系統(tǒng)可以,但是mac系統(tǒng)下不行,除非強制退出chrome瀏覽器)

回答
編輯回答
慢半拍

expires選項用來設(shè)置“cookie 什么時間內(nèi)有效”。expires其實是cookie失效日期,expires必須是 GMT 格式的時間(可以通過 new Date().toGMTString()或者 new Date().toUTCString() 來獲得)。

如expires=Thu, 25 Feb 2016 04:18:00 GMT表示cookie講在2016年2月25日4:18分之后失效,對于失效的cookie瀏覽器會清空。如果沒有設(shè)置該選項,則默認有效期為session,即會話cookie。這種cookie在瀏覽器關(guān)閉后就沒有了。

expires 是 http/1.0協(xié)議中的選項,在新的http/1.1協(xié)議中expires已經(jīng)由 max-age 選項代替,兩者的作用都是限制cookie 的有效時間。expires的值是一個時間點(cookie失效時刻= expires),而max-age 的值是一個以秒為單位時間段(cookie失效時刻= 創(chuàng)建時刻+ max-age)。
另外,max-age 的默認值是 -1(即有效期為 session );若max-age有三種可能值:負數(shù)、0、正數(shù)。負數(shù):有效期session;0:刪除cookie;正數(shù):有效期為創(chuàng)建時刻+ max-age;
業(yè)務(wù)需求是關(guān)閉瀏覽器干掉cookie,之前的思路是想著不設(shè)置expire/max-age關(guān)閉瀏覽器即cookie失效,但繞了一大圈,發(fā)現(xiàn)還是不行,最后找了一個模棱兩可的辦法, 即監(jiān)聽關(guān)閉瀏覽器觸發(fā)一個方法,設(shè)置cookie失效,但監(jiān)聽瀏覽器的方法找找看

2018年7月1日 17:18
編輯回答
初心

Mac下是可以自動清除session級別的cookie的,只要你設(shè)置的正確就會清除。
你的情況我猜測是你的測試方法不對,mac的應(yīng)用管理機制不太一樣,win下點【X】就關(guān)閉了,而Mac下點【X】實際上相當(dāng)于關(guān)閉所有當(dāng)前窗口,然后窗體最小化,你需要強制關(guān)閉才能生效

Command + Q

試一試吧,應(yīng)該是可以的

2018年5月11日 16:50
編輯回答
互擼娃

mac下需要右鍵chrome圖標點擊退出才真正退出清理內(nèi)存。
chrome和firefox在某些情況也會出現(xiàn)退出后不清除session狀態(tài)的cookie情況,chrome設(shè)置從上次標簽頁打開或者設(shè)置了允許chrome退出后app繼續(xù)運行會造成session狀態(tài)cookie未清除,具體可以參數(shù)這個博客信息:http://blog.petersondave.com/...

2017年2月7日 06:10