購物車相當於現實中超市的購物車,不同的是乙個是實體車,乙個是虛擬車而已。使用者可以在購物**的不同頁面之間跳轉,以選購自己喜愛的商品,點選購買時,該商品就自動儲存到你的購物車中,重複選購後,最後將選中的所有商品放在購物車中統一到付款臺結賬,這也是盡量讓客戶體驗到現實生活中購物的感覺。伺服器通過追蹤每個使用者的行動,以保證在結賬時每件商品都物有其主。
購物車的功能包括以下幾項:
n把商品新增到購物車,即訂購
n刪除購物車中已定購的商品
n修改購物車中某一本圖書的訂購數量
n清空購物車
n顯示購物車中商品清單及數量、**
實現購物車的關鍵在於伺服器識別每乙個使用者並維持與他們的聯絡。但是http協議是一種「無狀態(stateless)」的協議,因而伺服器不能記住是誰在購買商品,當把商品加入購物車時,伺服器也不知道購物車裡原先有些什麼,使得使用者在不同頁面間跳轉時購物車無法「隨身攜帶」,這都給購物車的實現造成了一定的困難。
目前購物車的實現主要是通過cookie、session或結合資料庫的方式。下面分析一下它們的機制及作用。
1. cookie
ncookie儲存在客戶端,且占用很少的資源,瀏覽器允許存放300個cookie,每個cookie的大小為4kb,足以滿足購物車的要求,同時也減輕了伺服器的負荷;
ncookie為瀏覽器所內建,使用方便。即使使用者不小心關閉了瀏覽器視窗,只要在cookie定義的有效期內,購物車中的資訊也不會丟失;
ncookie不是可執行檔案,所以不會以任何方式執行,因此也不會帶來病毒或攻擊使用者的系統;
n基於cookie的購物車要求使用者瀏覽器必須支援並設定為啟用cookie,否則購物車則失效;
n存在著關於cookie侵犯訪問者隱私權的爭論,因此有些使用者會禁止本機的cookie功能。
2. session
session是實現購物車的另一種方法。session提供了可以儲存和跟蹤使用者的狀態資訊的功能,使當前使用者在session中定義的變數和物件能在頁面之間共享,但是不能為應用中其他使用者所訪問,它與cookie最重大的區別是,session將使用者在會話期間的私有資訊儲存在伺服器端,提高了安全性。在伺服器生成session後,客戶端會生成乙個sessionid識別號儲存在客戶端,以保持和伺服器的同步。這個sessionid是唯讀的,如果客戶端禁止cookie功能,session會通過在url中附加引數,或隱含在表單中提交等其他方式在頁面間傳送。因此利用session實施對使用者的管理則更為安全、有效。
同樣,利用session也能實現購物車,這種方式的特點是:
nsession用新的機制保持與客戶端的同步,不依賴於客戶端設定;
n與cookie相比,session是儲存在伺服器端的資訊,因此顯得更為安全,因此可將身份標示,購物等資訊儲存在session中;
nsession會占用伺服器資源,加大伺服器端的負載,尤其當併發使用者很多時,會生成大量的session,影響伺服器的效能;
n因為session儲存的資訊更敏感,而且是以檔案形式儲存在伺服器中,因此仍然存在著安全隱患。
3. 結合資料庫的方式
這也是目前較普遍的模式,在這種方式中,資料庫承擔著儲存購物資訊的作用,session或cookie則用來跟蹤使用者。這種方式具有以下特點:
n資料庫與cookie分別負責記錄資料和維持會話,能發揮各自的優勢,使安全性和伺服器效能都得到了提高;
n每乙個購物的行為,都要直接建立與資料庫的連線,直至對錶的操作完成後,連線才釋放。當併發使用者很多時,會影響資料庫的效能,因此,這對資料庫的效能提出了更高的要求;
n使cookie維持會話有賴客戶端的支援。
各種方式的選擇:
雖然cookie可用來實現購物車,但必須獲得瀏覽器的支援,再加上它是儲存在客戶端的資訊,極易被獲取,所以這也限制了它儲存更多,更重要的資訊。所以一般cookie只用來維持與伺服器的會話,例如國內最大的噹噹網路書店就是用cookie保持與客戶的聯絡,但是這種方式最大的缺點是如果客戶端不支援cookie就會使購物車失效。
session 能很好地與交易雙方保持會話,可以忽視客戶端的設定。在購物車技術中得到了廣泛的應用。但session的檔案屬性使其仍然留有安全隱患。
結合資料庫的方式雖然在一定程度上解決了上述的問題,但從上面的例子可以看出:在這種購物流程中涉及到對資料庫表的頻繁操作,尤其是使用者每選購一次商品,都要與資料庫進行連線,當使用者很多的時候就加大了伺服器與資料庫的負荷。
文章**自:
購物車實現原理
購物車相當於現實中超市的購物車,不同的是乙個是實體車,乙個是虛擬車而已。使用者可以在購物 的不同頁面之間跳轉,以選購自己喜愛的商品,點選購買時,該商品就自動儲存到你的購物車中,重複選購後,最後將選中的所有商品放在購物車中統一到付款臺結賬,這也是盡量讓客戶體驗到現實生活中購物的感覺。伺服器通過追蹤每個...
購物車原理
1.cookie n cookie儲存在客戶端,且占用很少的資源,瀏覽器允許存放300個cookie,每個cookie的大小為4kb,足以滿足購物車的要求,同時也減輕了伺服器的負荷 n cookie為瀏覽器所內建,使用方便。即使使用者不小心關閉了瀏覽器視窗,只要在cookie定義的有效期內,購物車中...
ecshop購物車原理
1.把商品新增到購物車,即訂購 2.可刪除購物車中已經訂購的商品 3.修改購物車中每件物品的訂購數量及其屬性 顏色 大小等 4.顯示購物車中商品的數量及其 商品清單 5.清空購物車。實現購物車的關鍵在於伺服器識別每乙個使用者 並維持與他們的聯絡,但http協議是一種 無狀態 的協議,因此伺服器不能記...