session與cookie的區別是什么?如果客戶端禁用了cookie功能,將會對session有什么影響?


cookie 和session 的區別:
  cookie數據存放在客戶的瀏覽器上,session數據放在服務器上。
  session中保存的是對象,cookie中保存的是字符串。
  session不能區分路徑,同一個用戶在訪問一個網站期間,所有的session在任何一個地方都可以訪問到,cookie中如果設置里路徑參數,那么同一個網站中不同的路徑下的cookie是不可以互相訪問的。
  cookie不是很安全,別人可以分析存放在本地的COOKIE並進行COOKIE欺騙考慮到安全應當使用session。
  session會在一定時間內保存在服務器上。當訪問增多,會比較占用你服務器的性能考慮到減輕服務器性能方面,應當使用COOKIE。
  單個cookie保存的數據不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie。
所以個人建議:
  將登陸信息等重要信息存放為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,在跨頁過程中手動調用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM