|
Net 提供了兩個Cookie類:
System.Web.HttpCookie 類 和 System.Net.Cookie 類 對應(yīng)的有兩個Cookie 集合類 System.Web.HttpCookieCollection 類 和 System.Net.CookieCollection 類 我們一般來理解他們的區(qū)別就是下面簡單的一句: System.Web 命名空間下的是給服務(wù)器段用的,System.Net 是給客戶端程序用的。 實際上不止這點區(qū)別:
下面我們來對比這兩個Cookie類的屬性如下,這些屬性都是Copy自MSDN中文版的說明文檔:
你會看到 System.Net.Cookie 類 比 System.Web.HttpCookie 類多好些屬性,一些我們WEB開發(fā)人員都不清楚的屬性。為什么呢? 這就要從 cookie規(guī)范 說起。目前有以下幾種Cookie規(guī)范:
rfc2965規(guī)范的使用,目前并不多。rfc2109規(guī)范相應(yīng)要嚴格得多,在實際應(yīng)用上,并不是所有的瀏覽器和Web服務(wù)器都嚴格遵守。因此相比較而言,Netscape cookie草案倒是一個比較簡潔和被廣泛支持的Cookie規(guī)范。
回過來我們再看 System.Web.HttpCookie 類 和 System.Net.Cookie 類的區(qū)別 我理解的他們的區(qū)別應(yīng)該是:
System.Web.HttpCookie 類 這個類最初設(shè)計是考慮是WEB服務(wù)器用的,由于微軟的WEB服務(wù)器并沒有遵循 rfc2109 \rfc2965 規(guī)范。而是采用的 Netscape cookie草案方案。 同時為了兼顧以前ASP的一些編碼習(xí)慣,于是就有了這個類這樣的設(shè)計。
在 dudu 之前的一篇博客中提到的 遍歷System.Web.HttpCookieCollection, 會有如下的寫法: foreach (string name in Request.Cookies) 而 foreach(HttpCookie cookie in Request.Cookies)會出錯。 為何微軟會有這樣的設(shè)計就可以理解了。
System.Net.Cookie 類 這個類最初設(shè)計時候應(yīng)該是考慮主要是客戶端使用的, 由于考慮到有些服務(wù)器的Cookie 是遵循 rfc2109 \rfc2965 規(guī)范,所以這個類的設(shè)計多了那些屬性。
相關(guān)資料:
System.Net.Cookie和System.Web.HttpCookie有什么區(qū)別 http://topic.csdn.net/t/20050304/15/3824900.html
為什么foreach(HttpCookie cookie in Request.Cookies)會出錯 http://www.cnblogs.com/dudu/archive/2004/12/21/80118.html
HTTP代理如何正確處理Cookie http://www.ibm.com/developerworks/cn/java/j-cookie/
Netscape cookies 草案 http://wp./eng/mozilla/3.0/handbook/javascript/cookies.htm
W3C的 rfc2109 規(guī)范 http://www./Protocols/rfc2109/rfc2109.txt 通用的javascript-js操作cookie的類
http://blog.csdn.net/junval/archive/2008/01/22/2059529.aspx W3C的 rfc2965 規(guī)范 另:ASP.NET(C#)實現(xiàn)一次性上傳多張圖片(多個文件) 轉(zhuǎn)自: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1922055 |
|
|
來自: 青格兒 > 《web開發(fā)》