購物車的三種方式

2021-07-22 19:47:03 字數 2199 閱讀 9198

網上**中的購物車應具有如下功能:

1)把商品新增到購物車,即訂購

2)刪除購物車中已訂購的商品

3)修改購物車中某一商品的訂購數量

4)清空購物車 

5) 顯示購物車中商品清單,包括數量及**

實現購物車的關鍵在於伺服器識別每乙個使用者並維持與他們的聯絡。但是http協議是一種「無狀態(stateless)」的協議,因而伺服器不能記住是誰在購買商品。當把商品加入購物車時,伺服器也不知道購物車裡原先有些什麼,使得使用者在不同頁面間跳轉時購物車無法「隨身攜帶」,這都給購物車的實現造成了一定的困難。

目前購物車的實現主要是可以通過三種方式:cookie、session或結合資料庫的方式。下面將簡單分析一下它們的實現機制及作用。

用基於cookie的方式實現伺服器與瀏覽器之間的會話或購物車,有以下特點:

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

2)cookie為瀏覽器所內建,使用方便。即使使用者不小心關閉了瀏覽器視窗,只要在cookie定義的有效期內,購物車中的資訊也不會丟失;

3)cookie不是可執行檔案,所以不會以任何方式執行,因此也不會帶來病毒或攻擊使用者的系統; 

4)基於cookie的購物車要求使用者瀏覽器必須支援並設定為啟用cookie,否則購物車則失效; 

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

2. session

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

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

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

2)與cookie相比,session是儲存在伺服器端的資訊,因此顯得更為安全,可將身份標識,購物等資訊儲存在session中;

3)session會占用伺服器資源,加大伺服器端的負載,尤其當併發使用者很多時,會生成大量的session,影響伺服器的效能;

4)由於session儲存的資訊更敏感,而且是以檔案形式儲存在伺服器中,因此仍然存在著安全隱患。

3. 結合資料庫的方式

這也是目前較普遍的模式。在這種方式中,資料庫承擔著儲存購物資訊的作用,session或cookie則用來跟蹤使用者。這種方式具有以下特點:

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

2)每乙個購物的行為,都要直接建立與資料庫的連線,直至對錶的操作完成後,連線才釋放。當併發使用者很多時,會影響資料庫的效能,因此,這對資料庫的效能提出了更高的要求;

3)使用cookie維持會話,需要客戶端的支援。

各種方式的簡單比較:

雖然cookie可用來實現購物車,但必須獲得瀏覽器的支援,再加上它是儲存在客戶端的資訊,極易被獲取,所以這也限制了它儲存更多更重要的資訊。所以,

一般cookie只用來維持與伺服器的會話。例如國內最大的噹噹網路書店就是用cookie保持與客戶的聯絡,但是這種方式最大的缺點是如果客戶端不支援 cookie就會使購物車失效。

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

結合資料庫的方式雖然在一定程度上解決了上述問題,但從上面的例子可以看出:在這種購物流程中涉及到對資料庫表的頻繁操作,尤其是使用者每選購一次商品,都要與資料庫進行連線,當使用者很多的時候就加大了伺服器與資料庫的負荷

購物車的幾種實現方式

1.購物車的話目前來說有三種,分別是儲存在cookie中或是session中,或是結合 資料庫儲存 第一種是儲存在cookie中 優點 1.cookie是儲存在客戶端的,且占用很少的資源,一般cookie中可以儲存300個cookie,每個cookie為4kb,既可以滿足購物車的需求,還可以減輕伺服...

購物車中資料的存放方式

第一次做btoc站點的購物車,總結了一下購物車中資料的存放方式 方式1 用會話 會話中可以存放任何型別資料,每個使用者有乙個唯一的會話id,用此id區分不同使用者的購物車 會話資料是存放在web伺服器的記憶體中的,如果使用購物車的使用者比較多的話,這樣一來將占用大量伺服器資源 會話有一小缺陷,它是依...

購物車中資料的存放方式

第一次做btoc站點的購物車,總結了一下購物車中資料的存放方式 方式1 用會話 會話中可以存放任何型別資料,每個使用者有乙個唯一的會話id,用此id區分不同使用者的購物車 會話資料是存放在web伺服器的記憶體中的,如果使用購物車的使用者比較多的話,這樣一來將占用大量伺服器資源 會話有一小缺陷,它是依...