認(rèn)識(shí)cookie

什么是cookie?

cookie的英文原意是小餅干
是為了應(yīng)對(duì)HTTP是無(wú)狀態(tài)協(xié)議這一特性而創(chuàng)造出來(lái)的方法,用于在客戶端保留信息并在下次請(qǐng)求傳回服務(wù)器
服務(wù)器響應(yīng)(response)的http報(bào)文中可以添加set-cookie字段, 通過(guò)設(shè)置該字段中的屬性可以控制客戶端存儲(chǔ)cookie信息
存有cookie信息的客戶端會(huì)在后續(xù)請(qǐng)求(request)中加入cookie字段

cookie中的屬性

除鍵值對(duì)外都不是必填項(xiàng),各屬性之間通過(guò)一個(gè)分號(hào)和一個(gè)空格隔開(kāi)

"key=value; expires=Thu, 25 Feb 2016 04:18:00 GMT; domain=ppsc.sankuai.com; path=/; secure; HttpOnly"
  1. key=value
    cookie鍵值對(duì)(必需項(xiàng))
  2. expires=DATE
    cookie的有效期(默認(rèn)為瀏覽器關(guān)閉為止)
    必須是GMT格式的時(shí)間

expires 是 http/1.0協(xié)議中的選項(xiàng),在新的http/1.1協(xié)議中expires已經(jīng)由 max-age 選項(xiàng)代替获搏,兩者的作用都是限制cookie 的有效時(shí)間台谍。expires的值是一個(gè)時(shí)間點(diǎn)(cookie失效時(shí)刻= expires)鳍置,而max-age 的值是一個(gè)以秒為單位時(shí)間段(cookie失效時(shí)刻= 創(chuàng)建時(shí)刻+ max-age)。
另外蜘醋,max-age 的默認(rèn)值是 -1(即有效期為 session )鞭缭;若max-age有三種可能值:負(fù)數(shù)、0碘举、正數(shù)。負(fù)數(shù):有效期session搁廓;0:刪除cookie引颈;正數(shù):有效期為創(chuàng)建時(shí)刻+ max-age

  1. path=路徑
    用于限制cookie的發(fā)送范圍的文件目錄(若不指定則默認(rèn)為文檔所在的文件目錄)
  2. domain=域名
    指定cookie適用對(duì)象的域名(若不指定則默認(rèn)為創(chuàng)建cookie的服務(wù)器的域名)
    eg: Set-Cookie: name=value;secure
    上例僅在使用HTTPS的情況下才進(jìn)行cookie的回收

特別說(shuō)明1:發(fā)生跨域xhr請(qǐng)求時(shí),即使請(qǐng)求URL的域名和路徑都滿足 cookie 的 domain 和 path枚抵,默認(rèn)情況下cookie也不會(huì)自動(dòng)被添加到請(qǐng)求頭部中。若想知道原因請(qǐng)閱讀本文最后一節(jié))
特別說(shuō)明2:domain是可以設(shè)置為頁(yè)面本身的域名(本域)明场,或頁(yè)面本身域名的父域汽摹,但不能是公共后綴 public suffix。舉例說(shuō)明下:如果頁(yè)面域名為 www.baidu.com, domain可以設(shè)置為“www.baidu.com”苦锨,也可以設(shè)置為“baidu.com”逼泣,但不能設(shè)置為“.com”或“com”。

  1. secure
    用于限制cookie在HTTPS安全鏈接下使用
  2. HttpOnly?
    作用是使JavaScript腳本無(wú)法獲得cookie,防止XSS對(duì)cookie的信息竊取
    添加了HttpOnly這條屬性后,js中的document.cookie無(wú)法取到cookie值

在服務(wù)端設(shè)置cookie

在response header的set-cookie字段設(shè)置, 每個(gè)字段對(duì)應(yīng)一個(gè)cookie, 存儲(chǔ)格式為字符串
在服務(wù)端可以設(shè)置cookie的全部6個(gè)屬性

在客戶端設(shè)置cookie

使用document.cookie

document.cookie = "name=Micheal; max-age=3600; "

客戶端無(wú)法設(shè)置HttpOnly屬性

什么樣的數(shù)據(jù)適合放在cookie中?

存儲(chǔ)在cookie中的數(shù)據(jù)舟舒,每次都會(huì)被瀏覽器自動(dòng)放在http請(qǐng)求中拉庶,如果這些數(shù)據(jù)并不是每個(gè)請(qǐng)求都需要發(fā)給服務(wù)端的數(shù)據(jù),瀏覽器這設(shè)置自動(dòng)處理無(wú)疑增加了網(wǎng)絡(luò)開(kāi)銷秃励;但如果這些數(shù)據(jù)是每個(gè)請(qǐng)求都需要發(fā)給服務(wù)端的數(shù)據(jù)(比如身份認(rèn)證信息)氏仗,瀏覽器這設(shè)置自動(dòng)處理就大大免去了重復(fù)添加操作。所以對(duì)于那設(shè)置“每次請(qǐng)求都要攜帶的信息(最典型的就是身份認(rèn)證信息)”就特別適合放在cookie中夺鲜,其他類型的數(shù)據(jù)就不適合了皆尔。

注意:

1.每個(gè)域名下的cookie最大為4kb, 每個(gè)域名下最多有20條cookie(不同的瀏覽器廠商可能會(huì)有所區(qū)別)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末呐舔,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子慷蠕,更是在濱河造成了極大的恐慌珊拼,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件流炕,死亡現(xiàn)場(chǎng)離奇詭異澎现,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)每辟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門剑辫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人影兽,你說(shuō)我怎么就攤上這事揭斧。” “怎么了峻堰?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵讹开,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我捐名,道長(zhǎng)旦万,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任镶蹋,我火速辦了婚禮成艘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘贺归。我一直安慰自己淆两,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布拂酣。 她就那樣靜靜地躺著秋冰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪婶熬。 梳的紋絲不亂的頭發(fā)上剑勾,一...
    開(kāi)封第一講書(shū)人閱讀 51,679評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音赵颅,去河邊找鬼虽另。 笑死,一個(gè)胖子當(dāng)著我的面吹牛饺谬,可吹牛的內(nèi)容都是我干的捂刺。 我是一名探鬼主播,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼叠萍!你這毒婦竟也來(lái)了芝发?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤苛谷,失蹤者是張志新(化名)和其女友劉穎辅鲸,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體腹殿,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡独悴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了锣尉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片刻炒。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖自沧,靈堂內(nèi)的尸體忽然破棺而出坟奥,到底是詐尸還是另有隱情,我是刑警寧澤拇厢,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布爱谁,位于F島的核電站,受9級(jí)特大地震影響孝偎,放射性物質(zhì)發(fā)生泄漏访敌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一衣盾、第九天 我趴在偏房一處隱蔽的房頂上張望寺旺。 院中可真熱鬧,春花似錦势决、人聲如沸阻塑。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)陈莽。三九已至,卻和暖如春据悔,著一層夾襖步出監(jiān)牢的瞬間传透,已是汗流浹背耘沼。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工极颓, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人群嗤。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓菠隆,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子骇径,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容