天天看點

前端----cookie的域:domain作用域:如果不設定cookie呢?

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。

繼續閱讀