1. 程式人生 > >前端----cookie的域:domain

前端----cookie的域:domain

cookie的域是用來限制哪些域名能來訪問cookie的, 解決同一個主域下的訪問問題

domain是cookie的一個屬性, 表示的是cookie所在的域,預設為請求的地址

設定domain的格式如下:

document.cookie = "username=nO0b; path=/; domain=baidu.com"

這裡的域名前可以不帶點, 原因下邊會介紹 

作用域:

規則是:存取cookie的只能在本域名下或者子域名下才能生效

舉個小例子:

宣告三個域名:

  •     test.com:此為頂級域名
  •     article.test.com:二級域名
  •     passport.test.com:二級域名
  1. 訪問test.com域名時,可以存取此域名的cookie,但是不能設定二級域名的cookie,
  2. 訪問article.test.com域名時,可存取此域名的cookie,也可以存取頂級域名(父域名)test.com的cookie,也就說,子域名共享頂級域名(父域名)的cookie。
  3. 在訪問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