千鋒教育JavaScript全套視頻教程(10天學(xué)會(huì)Js,前端javascrip

cookie是啥?
cookie是什么,cookie就是一種瀏覽器管理狀態(tài)的一個(gè)文件,它有name,也有value,后面那些看不見的是Domain、path等等
cookie為什么存在?
由于http是不保存狀態(tài)的協(xié)議,也就是說(shuō)服務(wù)器是不清楚之前某個(gè)用戶的瀏覽器有沒有再一次訪問過(guò)他,但是我們希望服務(wù)器能夠知道用戶再次訪問了自己,所以就出現(xiàn)了cookie,當(dāng)然在cookie之前,有另外的技術(shù)是可以解決,這里簡(jiǎn)單講一下,就是在請(qǐng)求中插入一個(gè)token,然后在發(fā)送請(qǐng)求的時(shí)候,把這個(gè)東西帶給服務(wù)器,這種方式是易出錯(cuò),cookie比較好。
cookie是何時(shí)產(chǎn)生的?
第一次訪問網(wǎng)站的時(shí)候,第一次訪問網(wǎng)站的時(shí)候,瀏覽器發(fā)出請(qǐng)求,服務(wù)器響應(yīng)請(qǐng)求后,會(huì)將cookie放入到響應(yīng)請(qǐng)求中,在瀏覽器第二次發(fā)請(qǐng)求的時(shí)候,會(huì)把cookie帶過(guò)去,服務(wù)端會(huì)辨別用戶身份,當(dāng)然服務(wù)器也可以修改cookie內(nèi)容
cookie不可以跨域
不可跨域性,就是不能在不同的域名下用,每個(gè)cookie都會(huì)綁定單一的域名
cookie身上的屬性
有name, value, expires/max-age, HttpOnly,domain, path, secure
cookie的有效期
一般瀏覽器的cookie都是默認(rèn)儲(chǔ)存的,當(dāng)關(guān)閉瀏覽器結(jié)束這個(gè)會(huì)話的時(shí)候,這個(gè)cookie也就會(huì)被刪除,這就是上圖中的——session(會(huì)話儲(chǔ)存)。
如果你想要cookie存在一段時(shí)間,那么你可以通過(guò)設(shè)置Expires屬性為未來(lái)的一個(gè)時(shí)間節(jié)點(diǎn),Expires這個(gè)是代表當(dāng)前時(shí)間的,這個(gè)屬性已經(jīng)逐漸被我們下面這個(gè)主人公所取代——Max-Age
Max-Age,是以秒為單位的,Max-Age為正數(shù)時(shí),cookie會(huì)在Max-Age秒之后,被刪除,當(dāng)Max-Age為負(fù)數(shù)時(shí),表示的是臨時(shí)儲(chǔ)存,不會(huì)生出cookie文件,只會(huì)存在瀏覽器內(nèi)存中,且只會(huì)在打開的瀏覽器窗口或者子窗口有效,一旦瀏覽器關(guān)閉,cookie就會(huì)消失,當(dāng)Max-Age為0時(shí),又會(huì)發(fā)生什么呢,刪除cookie,因?yàn)閏ookie機(jī)制本身沒有設(shè)置刪除cookie,失效的cookie會(huì)被瀏覽器自動(dòng)從內(nèi)存中刪除,所以,它實(shí)現(xiàn)的就是讓cookie失效。
服務(wù)器端怎么設(shè)置cookie
服務(wù)端就是通過(guò)setCookie來(lái)設(shè)置cookie的,注意點(diǎn),要設(shè)置多個(gè)cookie時(shí),得多寫幾個(gè)setCookie
作者:Czr_
鏈接:https://juejin.cn/post/7008216662075768869
來(lái)源:稀土掘金
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。