Session與Cookie的區別與聯絡

ii_chengzi發表於2018-09-15

1、Cookie僅由客戶端生成、管理並使用,PHP只是發出指令要求客戶端如何生成Cookie、何時過期等,但是客戶端不一定會按照PHP的指令辦事。

2、如果沒有設定Cookie過期時間,Cookie會一直以檔案或SQLit等DB形式存在客戶端磁碟。

3、Session是使用者進入某個網站到關閉瀏覽器這段時間的會話,預設以檔案形式存在伺服器磁碟,所以設定過多的Session會影響磁碟IO,也可以用Memory引擎存入MySQL,因為記憶體引擎讀寫速度快,現在也可以指定用Redis來處理Session,這樣更快,效率更高。

4、Session的收回機制是被動的,shenzhen.offcn.com如果設定了生存週期,一般來說,一旦關閉瀏覽器Session也就被PHP自動回收了,但有時即使設定了過期時間並且關閉瀏覽器並不一定會刪除Session,比如設定多目錄多層級儲存Session時,這時需要透過PHP指令碼手動刪除Session。

5、通常Cookie與Session是繫結的,即使用者在沒有禁用Cookie時,Cookie一般會儲存sessionID及Session生存週期,如果使用者刪除Cookie一般會退出系統;如果沒有禁用Cookie關閉瀏覽器Session也會立即失效,要重新登入系統。

6、Cookie與Session一般應於標識使用者、許可權認證、儲存簡單資料、還有就是利用P3P實現Cookie跨域單點登入(SSO:Single Sign On)。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31543790/viewspace-2214245/,如需轉載,請註明出處,否則將追究法律責任。

相關文章