日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于cookie domain中的点前缀

發(fā)布時間:2024/1/23 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于cookie domain中的点前缀 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

今天同事遇到一個問題,大概描述如下:

瀏覽器已經(jīng)接收指令,之前在一級域名下存儲了相關(guān)的信息。這里為了簡化問題,假設(shè)我們有兩個應(yīng)用A和B,域名分別為:a.b.com和c.a.b.com。(顯然B是A的一個子域)。

上面的描述就是:在.b.com這個一級域名下,我們已經(jīng)成功寫入了一個cookie,假設(shè)為:b=level1。

在正常用戶的瀏覽行為中,應(yīng)用A會向自己的域下寫入a=level2(domain:a.b.com)。

在A正常的頁面中,有些場景會有異步的請求發(fā)出到B應(yīng)用的頁面(用于獲取數(shù)據(jù)),合理的一種想法是: 發(fā)送到B應(yīng)用的請求,應(yīng)該攜帶著上面的b=level1,a=level2這兩個cookie信息到B應(yīng)用的服務(wù)器去才對。但是,實(shí)際的情況是,b=level1被如愿攜帶上來,但是a=level2這個信息卻被丟棄了!(確切的說是沒有跟著request一起被發(fā)送到B的服務(wù)端)。

為啥?在訪問子域應(yīng)用時,不是父域名下的cookie都應(yīng)該被攜帶上來嗎?就像上面的b=level1那樣?

其實(shí),關(guān)于這點(diǎn),在cookie的RFC規(guī)范中,并沒有太明顯的說明,至少我沒有看到,即使又看了一遍RFC6265中關(guān)于Domain Matching的描述也是如此。

但實(shí)際的使用過程中,某個域下的cookie如果希望能夠被他的子域具有可見性(即可以讀取),必須要注意的一點(diǎn)是,應(yīng)該保證這個cookie在被Set的時候,應(yīng)該以"."開頭。回到上面的例子,之所以a=level2這個cookie沒有在用戶瀏覽器請求B應(yīng)用時被攜帶到B的server端,就是因?yàn)閍=level2這個cookie的domain不是.a.b.com,而是a.b.com。

事實(shí)上,上面例子中的A應(yīng)用,在向自己的域名下寫入a=level2這個cookie時,壓根就沒有顯式的設(shè)置domain這個屬性,這樣一來,瀏覽器接受到這個Set Cookie的請求時,就會以默認(rèn)以當(dāng)前應(yīng)用的域名作為cookie的domain。(不過據(jù)說某些版本的Firefox到是會自作聰明的在當(dāng)前域名的前面自動加上一個點(diǎn),這個待驗(yàn)證!)

這一個小點(diǎn)的區(qū)別,還是很容易被忽略的,不過產(chǎn)生的瀏覽行為還是有細(xì)微差別的。(涉及到cookie是否上傳,是否占用網(wǎng)絡(luò)流量等)

PS:關(guān)于上面說到的那個問題,stackoverflow上的這個有個截圖,看著說明就直觀很多了。

總結(jié)

以上是生活随笔為你收集整理的关于cookie domain中的点前缀的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。