詳細(xì)介紹HTTP Cookie
Cookie總是保存在客戶端中,按在客戶端中的存儲(chǔ)位置,可分為內(nèi)存Cookie和硬盤Cookie。內(nèi)存Cookie由瀏覽器維護(hù),保存在內(nèi)存中,瀏覽器關(guān)閉后就消失了,其存在時(shí)間是短暫的。硬盤Cookie保存在硬盤里,有一個(gè)過(guò)期時(shí)間,除非用戶手工清理或到了過(guò)期時(shí)間,硬盤Cookie不會(huì)被刪除,其存在時(shí)間是長(zhǎng)期的。所以,按存在時(shí)間,可分為非持久Cookie和持久Cookie。
Cookie相關(guān)的Http頭
有 兩個(gè)Http頭部和Cookie有關(guān):Set-Cookie和Cookie。
Set-Cookie由服務(wù)器發(fā)送,它包含在響應(yīng)請(qǐng)求的頭部中。它用于在客戶端創(chuàng)建一個(gè)Cookie
Cookie頭由客戶端發(fā)送,包含在HTTP請(qǐng)求的頭部中。注意,只有cookie的domain和path與請(qǐng)求的URL匹配才會(huì)發(fā)送這個(gè)cookie。
Set-Cookie Header
Set-Cookie響應(yīng)頭的格式如下所示:
Set-Cookie: <name>=<value>[; <name>=<value>]... [; expires=<date>][; domain=<domain_name>] [; path=<some_path>][; secure][; httponly]
expires=<date>: 設(shè)置cookie的有效期,如果cookie超過(guò)date所表示的日期時(shí),cookie將失效。
如果沒(méi)有設(shè)置這個(gè)選項(xiàng),那么cookie將在瀏覽器關(guān)閉時(shí)失效。
注意:date是格林威治時(shí)間(GMT),使用如下格式表示:DAY, DD MMM YYYY HH:MM:SS GMT
DAY The day of the week (Sun, Mon, Tue, Wed, Thu, Fri, Sat). DD The day in the month (such as 01 for the first day of the month). MMM The three-letter abbreviation for the month (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec). YYYY year. HH The hour value in military time (22 would be 10:00 P.M., for example). MM The minute value. SS The second value. domain=<domain_name> : path=<some_path>:
注:臨時(shí)cookie(沒(méi)有expires參數(shù)的cookie)不能帶有domain選項(xiàng)。
當(dāng)客戶端發(fā)送一個(gè)http請(qǐng)求時(shí),會(huì)將有效的cookie一起發(fā)送給服務(wù)器。
如果一個(gè)cookie的domain和path參數(shù)和URL匹配,那么這個(gè)cookie就是有效的。
一個(gè)URL中包含有domain和path,可以參考http://www.dbjr.com.cn/w3school/html/html_url.htm
secure : 表示cookie只能被發(fā)送到http服務(wù)器。
httponly : 表示cookie不能被客戶端腳本獲取到。
在程序中生成expires
C的方式
time_t curTime = time(NULL); tm * gmTime = gmtime(&curTime); char strExperis[50]; strftime(strTimeBuf, 100, " %a, %d %b %Y %X GMT;", gmTime);
JavaScript的方式
var d = new Date(); var expires = d.toGMTString();
Windows中的InternetSetCookie
在Windows中我們可以使用InternetSetCookie來(lái)設(shè)置Cookie,假如說(shuō),A和B兩個(gè)進(jìn)程使用Cookie通信,那么會(huì)有如下幾種情況:
> A寫Global Cookie,B寫Session Cookie,此時(shí),A中無(wú)法獲取Cookie
> A寫Session Cookie,B寫Session Cookie,此時(shí),A與B中的Cookie互不影響
> A寫Session Cookie,B寫Global Cookie,此時(shí)A中的Cookie被Global Cookie覆蓋,它們共享一份Global Cookie
注:這種情況的后果下,如果有任意一個(gè)進(jìn)程再寫Session Cookie,那么其他進(jìn)程將獲取不到Cookie
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
win10環(huán)境安裝kettle與linux環(huán)境安裝kettle的詳細(xì)過(guò)程
kettle是一款免費(fèi)開源的、可視化的、國(guó)際上比較流行的、功能強(qiáng)大的ETL必備工具,在ETL這一方面做的還不錯(cuò),下面介紹一下基于win10操作系統(tǒng)安裝kettle和linux操作系統(tǒng)安裝kettle的詳細(xì)過(guò)程,感興趣的朋友跟隨小編一起看看吧2022-11-11Caffe圖像數(shù)據(jù)轉(zhuǎn)換成可運(yùn)行l(wèi)eveldb?lmdb文件
這篇文章主要為大家介紹了Caffe圖像數(shù)據(jù)轉(zhuǎn)換成可運(yùn)行l(wèi)eveldb?lmdb文件教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06eBay 打造基于 Apache Druid 的大數(shù)據(jù)實(shí)時(shí)監(jiān)控系統(tǒng)
Apache Druid 是一個(gè)用于大數(shù)據(jù)實(shí)時(shí)查詢和分析的高容錯(cuò)、高性能開源分布式時(shí)序數(shù)據(jù)庫(kù)系統(tǒng),旨在快速處理大規(guī)模的數(shù)據(jù),并能夠?qū)崿F(xiàn)快速查詢和分析。這篇文章主要介紹了eBay 如何打造基于 Apache Druid 的大數(shù)據(jù)實(shí)時(shí)監(jiān)控系統(tǒng)?需要的朋友可以參考下2019-06-06iisschlp.wsc [88,25] 屬性值無(wú)效 : progid
今天在運(yùn)行iisapp.vbs時(shí)候提示W(wǎng)indows Script Component - file://C:WINDOWSsystem32iisschlp.wsc [88,25] 屬性值無(wú)效 : progid,原來(lái)是因?yàn)榘踩O(shè)置惹的禍,以前就是因?yàn)檫@個(gè)一直沒(méi)解決2014-07-07MobaXterm連接服務(wù)器如何在關(guān)閉會(huì)話的情況下依然執(zhí)行程序(最新推薦)
這篇文章主要介紹了MobaXterm連接服務(wù)器如何在關(guān)閉會(huì)話的情況下依然執(zhí)行程序,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06提示“處理URL時(shí)服務(wù)器出錯(cuò)”和“HTTP 500錯(cuò)誤“的解決方法
關(guān)于提示“處理URL時(shí)服務(wù)器出錯(cuò)”和“HTTP 500錯(cuò)誤“的解決方法,需要的朋友可以參考下。2009-11-11github版本庫(kù)使用詳細(xì)圖文教程(命令行及圖形界面版)
今天我們就來(lái)學(xué)習(xí)github的使用,我們將用它來(lái)管理我們的代碼,你會(huì)發(fā)現(xiàn)它的好處的,當(dāng)然是要在本系列教程全部完成之后,所以請(qǐng)緊跟站長(zhǎng)的步伐,今天是第一天,我們來(lái)學(xué)習(xí)如何在git上建立自己的版本倉(cāng)庫(kù),并將代碼上傳到倉(cāng)庫(kù)中2015-08-08