購物車(cookie和session各自的優缺點)

1. cookie
  cookie是由服務器產生,存儲在客戶端的一段信息。它定義了一種Web服務器在客戶端存儲和返回信息的機制,cookie文件它包含域、路徑、生存期、和由服務器設置的變量值等內容。當用戶以後訪問同一個Web服務器時,瀏覽器會把cookie原樣發送給服務器。通過讓服務器讀取原先保存到客戶端的信息,網站能夠爲瀏覽者提供一系列的方便,例如在線交易過程中標識用戶身份、安全要求不高的場合避免用戶重複輸入名字和密碼、門戶網站的主頁定製、有針對性地投放廣告等等。利用cookie的特性,大大擴展了WEB應用程序的功能,不僅可以建立服務器與客戶機的聯繫,因爲cookie可以由服務器定製,因此還可以將購物信息生成cookie值存放在客戶端,從而實現購物車的功能。用基於cookie的方式實現服務器與瀏覽器之間的會話或購物車,有以下特點:

  cookie存儲在客戶端,且佔用很少的資源,瀏覽器允許存放300個cookie,每個cookie的大小爲4KB,足以滿足購物車的要求,同時也減輕了服務器的負荷;

  cookie爲瀏覽器所內置,使用方便。即使用戶不小心關閉了瀏覽器窗口,只要在cookie定義的有效期內,購物車中的信息也不會丟失;

  cookie不是可執行文件,所以不會以任何方式執行,因此也不會帶來病毒或攻擊用戶的系統;

  基於cookie的購物車要求用戶瀏覽器必須支持並設置爲啓用cookie,否則購物車則失效;

  存在着關於cookie侵犯訪問者隱私權的爭論,因此有些用戶會禁止本機的cookie功能。

2. session

  session是實現購物車的另一種方法。session提供了可以保存和跟蹤用戶的狀態信息的功能,使當前用戶在session中定義的變量和對象能在頁面之間共享,但是不能爲應用中其他用戶所訪問,它與cookie最重大的區別是,session將用戶在會話期間的私有信息存儲在服務器端,提高了安全性。在服務器生成session後,客戶端會生成一個sessionid識別號保存在客戶端,以保持和服務器的同步。這個sessionid是隻讀的,如果客戶端禁止cookie功能,session會通過在URL中附加參數,或隱含在表單中提交等其他方式在頁面間傳送。因此利用session實施對用戶的管理則更爲安全、有效。

  同樣,利用session也能實現購物車,這種方式的特點是:

  session用新的機制保持與客戶端的同步,不依賴於客戶端設置;

  與cookie相比,session是存儲在服務器端的信息,因此顯得更爲安全,因此可將身份標示,購物等信息存儲在session中;

  session會佔用服務器資源,加大服務器端的負載,尤其當併發用戶很多時,會生成大量的session,影響服務器的性能;

  因爲session存儲的信息更敏感,而且是以文件形式保存在服務器中,因此仍然存在着安全隱患。

3. 結合數據庫的方式

  這也是目前較普遍的模式,在這種方式中,數據庫承擔着存儲購物信息的作用,session或cookie則用來跟蹤用戶。這種方式具有以下特點:

  數據庫與cookie分別負責記錄數據和維持會話,能發揮各自的優勢,使安全性和服務器性能都得到了提高;

  每一個購物的行爲,都要直接建立與數據庫的連接,直至對錶的操作完成後,連接才釋放。當併發用戶很多時,會影響數據庫的性能,因此,這對數據庫的性能提出了更高的要求;

  使cookie維持會話有賴客戶端的支持。

各種方式的選擇:

  雖然cookie可用來實現購物車,但必須獲得瀏覽器的支持,再加上它是存儲在客戶端的信息,極易被獲取,所以這也限制了它存儲更多,更重要的信息。所以一般cookie只用來維持與服務器的會話,例如國內最大的當當網絡書店就是用cookie保持與客戶的聯繫,但是這種方式最大的缺點是如果客戶端不支持 cookie就會使購物車失效。

  Session 能很好地與交易雙方保持會話,可以忽視客戶端的設置。在購物車技術中得到了廣泛的應用。但session的文件屬性使其仍然留有安全隱患。

結合數據庫的方式雖然在一定程度上解決了上述的問題,但從上面的例子可以看出:在這種購物流程中涉及到對數據庫表的頻繁操作,尤其是用戶每選購一次商品,都要與數據庫進行連接,當用戶很多的時候就加大了服務器與數據庫的負荷
 
1、用戶瀏覽系統,獲取用戶機器的MAC地址
2、如果用戶購買物品,添加到數據庫裏面,同時插入機器的MAC地址,也是用戶的ID標示
3、如果用戶登錄系統,用用戶真實的ID,更新當前機器的MAC對應的記錄。
4、如果結帳的話,更新用戶的id,刪除購物車裏面的東西
5、用戶沒有登錄,購物車記錄根據MAC讀取記錄,如果登錄系統根據用戶的ID,讀取記錄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章