前端----cookie的域:domain
阿新 • • 發佈:2018-11-09
cookie的域是用來限制哪些域名能來訪問cookie的, 解決同一個主域下的訪問問題
domain是cookie的一個屬性, 表示的是cookie所在的域,預設為請求的地址
設定domain的格式如下:
document.cookie = "username=nO0b; path=/; domain=baidu.com"
這裡的域名前可以不帶點, 原因下邊會介紹
作用域:
規則是:存取cookie
的只能在本域名下或者子域名下才能生效
舉個小例子:
宣告三個域名:
- test.com:此為頂級域名
- article.test.com:二級域名
- passport.test.com:二級域名
- 訪問test.com域名時,可以存取此域名的cookie,但是不能設定二級域名的cookie,
- 訪問article.test.com域名時,可存取此域名的cookie,也可以存取頂級域名(父域名)test.com的cookie,也就說,子域名共享頂級域名(父域名)的cookie。
- 在訪問article.test.com域名時,不能設定passport.test.com域名的cookie,就算設定了,瀏覽器也不會生效該設定。
如果不設定cookie呢?
先說第一個問題,如果不顯式設定cookie,那麼瀏覽器會生成一個只針對當前域名的cookie
什麼叫只針對當前域名呢?
如果有一個域名就是e.f.com.cn,在該域名下設定的cookie如果沒有顯示domain,在回寫瀏覽器的時候瀏覽器會特殊處理,如果是火狐,你會發現該cookie的資訊,有一個主機項,而域項消失了,在chrome中,雖然有域這個項,但是域的前面少了一個點,所以說如果顯式宣告,不管域中帶不帶點,到chrome中,都是帶點儲存的,只有非顯式宣告域的cookie,瀏覽器儲存才是不帶點的,問題就在這,在e.f.com.cn服務主機中生成的cookie,只有e.f.com.cn的伺服器能拿到,此時子域名拿不到這個cookie