session與cookie的區別是什麼?如果客戶端禁用了cookie功能,將會對session有什麼影響?
阿新 • • 發佈:2018-11-29
cookie 和session 的區別:
a、cookie資料存放在客戶的瀏覽器上,session資料放在伺服器上。
b、cookie不是很安全,別人可以分析存放在本地的COOKIE並進行COOKIE欺騙
考慮到安全應當使用session。
c、session會在一定時間內儲存在伺服器上。當訪問增多,會比較佔用你伺服器的效能
考慮到減輕伺服器效能方面,應當使用COOKIE。
d、單個cookie儲存的資料不能超過4K,很多瀏覽器都限制一個站點最多儲存20個cookie。
e、所以個人建議:
將登陸資訊等重要資訊存放為SESSION
其他資訊如果需要保留,可以放在COOKIE中
Cookie與 Session,一般認為是兩個獨立的東西,Session採用的是在伺服器端保持狀態的方案,而Cookie採用的是在客戶端保持狀態的方案。但為什麼禁用Cookie就不能得到Session呢?因為Session是用Session ID來確定當前對話所對應的伺服器Session,而Session ID是通過Cookie來傳遞的,禁用Cookie相當於失去了Session ID,也就得不到Session了。
假定使用者關閉Cookie的情況下使用Session,其實現途徑有以下幾種:
1》 設定php.ini配置檔案中的“session.use_trans_sid = 1”,或者編譯時開啟打開了“--enable-trans-sid”選項,讓PHP自動跨頁傳遞Session ID。
2》 手動通過URL傳值、隱藏表單傳遞Session ID。
3》 用檔案、資料庫等形式儲存Session ID,在跨頁過程中手動呼叫。