具體來說cookie機制採用的是在客戶端保持狀態的方案,而session機制採用的是在伺服器端保持狀態的方案。
cookie的優缺點:
優點:極高的擴充套件性和可用性
通過良好的程式設計,控制儲存在cookie中的session物件的大小。
通過加密和安全傳輸技術(ssl),減少cookie被破解的可能性。
只在cookie中存放不敏感資料,即使被盜也不會有重大損失。
控制cookie的生命期,使之不會永遠有效。偷盜者很可能拿到乙個過期的cookie。
缺點:cookie數量和長度的限制。每個domain最多只能有20條cookie,每個cookie長度不能超過4kb,否則會被截掉。
安全性問題。如果cookie被人攔截了,那人就可以取得所有的session資訊。即使加密也與事無補,因為攔截者並不需要知道cookie的意義,他只要原樣**cookie就可以達到目的了。
有些狀態不可能儲存在客戶端。例如,為了防止重複提交表單,我們需要在伺服器端儲存乙個計數器。如果我們把這個計數器儲存在客戶端,那麼它起不到任何作用。
session的優缺點:
優點如果要在諸多web頁間傳遞乙個變數,那麼用session變數要比通過querystring傳遞變數可使問題簡化。
要使web站點具有使用者化,可以考慮使用session變數。你的站點的每位訪問者都有使用者化的經驗,基於此,隨著ldap和諸如ms site
server等的使用,已不必再將所有使用者化過程置入session變數了,而這個使用者化是取決於使用者喜好的。
你可以在任何想要使用的時候直接使用session變數,而不必事先宣告它,這種方式接近於在vb中變數的使用。使用完畢後,也不必考慮將其釋放,因為它將自動釋放。
缺點session變數和cookies是同一型別的。如果某使用者將瀏覽器設定為不相容任何cookie,那麼該使用者就無法使用這個session變數!
當乙個使用者訪問某頁面時,每個session變數的執行環境便自動生成,這些session變數可在使用者離開該頁面後仍保留20分鐘!(事實上,這些變數一直可保留至「timeout」。「timeout」的時間長短由web伺服器管理員設定。一些站點上的變數僅維持了3分鐘,一些則為10分鐘,還有一些則保留至預設值20分鐘。)所以,如果在session中置入了較大的物件(如ado
recordsets,connections, 等等),那就有麻煩了!隨著站點訪問量的增大,伺服器將會因此而無法正常執行!
因為建立session變數有很大的隨意性,可隨時呼叫,不需要開發者做精確地處理,所以,過度使用session變數將會導致**不可讀而且不好維護。
雖然「你可以在任何想要使用的時候直接使用session變數,而不必事先宣告它,這種方式接近於在vb中變數的使用。使用完畢後,也不必考慮將其釋放,因為它將自動釋放」。但是,「誰」想到那兒呢?變數的含義是什麼?這些都變得不很清晰。
Cookies 和 Session的區別
1.cookie 是一種傳送到 客戶瀏覽器的文字串控制代碼,並儲存在客戶機硬碟上,可以用來在某個web站點會話間持久的保持資料。2.session 其實指的就是訪問者從到達某個特定主頁到離開為止的那段時間。session其實是利用cookie進行資訊處理的,當使用者首先進行了請求後,服務端就在使用者...
Cookies 和 Session的區別
1.cookie 是一種傳送到客戶瀏覽器的文字串控制代碼,並儲存在客戶機硬碟上,可以用來在某個web站點會話間持久的保持資料。2.session其實指的就是訪問者從到達某個特定主頁到離開為止的那段時間。session其實是利用cookie進行資訊處理的,當使用者首先進行了請求後,服務端就在使用者瀏覽...
Cookies 和 Session的區別
1.cookie 是一種傳送到客戶瀏覽器的文字串控制代碼,並儲存在客戶機硬碟上,可以用來在某個web站點會話間持久的保持資料。2.session其實指的就是訪問者從到達某個特定主頁到離開為止的那段時間。session其實是利用cookie進行資訊處理的,當使用者首先進行了請求後,服務端就在使用者瀏覽...