理解cookie的path和domain屬性(轉)

來源:互聯網
上載者:User

標籤:

  今天在做驗證碼時發現一個問題:A、B視窗都開啟同一個頁面,A先產生一個驗證碼,B再產生驗證碼,這時A所產生的驗證碼被B覆蓋掉了。原因是使用了同名的cookie來儲存驗證碼。一時找不到解決方案就參考了WebQQ的登入畫面,發現tx也沒有解決這個問題,也許是覺得這個不算是問題吧。但還是借這個機會再次瞭解一下cookie好了。

下面是在網上學習一番後得到的總結(如有紕漏請指正):

1.domain表示的是cookie所在的域,預設為請求的地址,如網址為www.test.com/test/test.aspx,那麼domain預設為www.test.com。而跨域訪問,如域A為t1.test.com,域B為t2.test.com,那麼在域A生產一個令域A和域B都能訪問的cookie就要將該cookie的domain設定為.test.com;如果要在域A生產一個令域A不能訪問而域B能訪問的cookie就要將該cookie的domain設定為t2.test.com。

2.path表示cookie所在的目錄,asp.net預設為/,就是根目錄。在同一個伺服器上有目錄如下:/test/,/test/cd/,/test/dd/,現設一個cookie1的path為/test/,cookie2的path為/test/cd/,那麼test下的所有頁面都可以訪問到cookie1,而/test/和/test/dd/的子頁面不能訪問cookie2。這是因為cookie能讓其path路徑下的頁面訪問。

3.瀏覽器會將domain和path都相同的cookie儲存在一個檔案裡,cookie間用*隔開。

4.含值索引值對的cookie:以前一直用的是nam=value單索引值對的cookie,一說到含多個子索引值對的就蒙了。現在總算弄清楚了。含多個子索引值對的cookie格式是name=key1=value1&key2=value2。可以理解為單索引值對的值儲存一個自訂的多索引值字串,其中的索引值對分割符為&,當然可以自訂一個分隔字元,但用asp.net擷取時是以&為分割符。

 

http://www.cnblogs.com/fsjohnhuang/archive/2011/11/22/2258999.html

 

理解cookie的path和domain屬性(轉)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.