新聞中心
本教程操作環(huán)境:windows7系統(tǒng)、php7.1版、DELL G3電腦

成都創(chuàng)新互聯(lián)公司憑借在網(wǎng)站建設、網(wǎng)站推廣領域領先的技術能力和多年的行業(yè)經(jīng)驗,為客戶提供超值的營銷型網(wǎng)站建設服務,我們始終認為:好的營銷型網(wǎng)站就是好的業(yè)務員。我們已成功為企業(yè)單位、個人等客戶提供了成都網(wǎng)站建設、成都做網(wǎng)站服務,以良好的商業(yè)信譽,完善的服務及深厚的技術力量處于同行領先地位。
無論是在系統(tǒng)運維還是 PHP 開發(fā)人員的面試中,經(jīng)常會被問到 Session 和 Cookie 在 PHP 中的區(qū)別?下面我們就來總結一下:
Cookie 僅由客戶端生成、管理并使用,PHP 只是發(fā)出指令要求客戶端如何生成 Cookie、何時過期等,但是客戶端不一定會按照 PHP 的指令辦事。
Cookie 不是很安全,不法分子可以通過分析本地的 Cookie 進行 Cookie 欺騙。考慮到安全問題,建議將用戶的重要信息存放在 Session 中,其它不重要但需要保留的信息可以存放在 Cookie 中。
Session 是用戶進入某個網(wǎng)站到關閉瀏覽器這段時間的會話,默認以文件形式存在服務器磁盤中,所以設置過多的 Session 會影響磁盤的性能,也可以用 Memory 引擎存入 MySQL,因為內存引擎讀寫速度快,現(xiàn)在也可以指定用 Redis 來處理 Session,這樣更快,效率更高。
Session 的收回機制是被動的,一般來說,一旦關閉瀏覽器 Session 也就被 PHP 自動回收了,但有時即使設置了過期時間并且關閉瀏覽器也不一定會刪除 Session,比如設置多目錄多層級保存 Session 時,這時需要通過 PHP 腳本手動刪除 Session。
通常 Cookie 與 Session 是綁定的,即用戶在沒有禁用 Cookie 時,Cookie 一般會保存 Session ID 及 Session 生存周期,如果用戶刪除 Cookie 一般會退出系統(tǒng);如果沒有禁用 Cookie 關閉瀏覽器 Session 也會立即失效,要重新登錄系統(tǒng)。
Cookie 與 Session 一般應于標識用戶、權限認證、存儲簡單數(shù)據(jù)、還有就是利用 Cookie 實現(xiàn)單點登錄。
Cookie 存儲的數(shù)據(jù)在不同的瀏覽器會有不同的限制,一般在同一個域名下,Cookie 變量數(shù)量控制在 20 個以內,每個 Cookie 的值大小控制在 4kb 以內。Session 值沒有大小和數(shù)量限制,但如果數(shù)量過多,會增大服務器的壓力。另外,Cookie 保存的內容是字符串,而 Session 保存的數(shù)據(jù)是對象。
Session 不能區(qū)分路徑,同一個用戶在訪問一個網(wǎng)站期間,所有的 Session 在任何一個地方都可以訪問到;而 Cookie 中如果設置了路徑參數(shù),那么同一個網(wǎng)站中不同路徑下的 Cookie 是不能互相訪問的。
COOKIE和SESSION的區(qū)別
(1)存儲位置:Cookie存儲在客戶端瀏覽器中,相對不安全;Session內容所在文件存儲在服務器中,一般在根目錄下的tmp文件夾中,相對更安全。
(2)數(shù)量和大小限制:Cookie存儲的數(shù)據(jù)在不同的瀏覽器會有不同的限制,一般在同一個域名下,Cookie變量數(shù)量控制在20個以內,每個cookie值的大小控制在4kb以內。session值沒有大小和數(shù)量限制,但如果數(shù)量過多,會增大服務器的壓力。
(3)內容區(qū)別:cookie保存的內容是字符串,而服務器中的session保存的數(shù)據(jù)是對象。
(4)路徑區(qū)別:session不能區(qū)分路徑,同一個用戶在訪問一個網(wǎng)站期間,所有的session在任何一個地方都可以訪問到;而cookie中如果設置了路徑參數(shù),那么同一個網(wǎng)站中不同路徑下的cookie互相是訪問不到的。
本文標題:php中cookie與session有什么區(qū)別
文章位置:http://www.dlmjj.cn/article/djdghgj.html


咨詢
建站咨詢
