這篇文章將為大家詳細講解有關php中cookie與session有哪些區別,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
區別:1、Cookie存儲在瀏覽器中,相對不安全;而session存儲在服務器中,相對更安全。2、Cookie存儲的數據有數量和大小的限制,而session沒有。3、cookie保存的數據是字符串類型,session保存的數據是對象類型。
本教程操作環境:windows7系統、PHP7.1版、DELL G3電腦
無論是在系統運維還是 PHP 開發人員的面試中,經常會被問到 Session 和 Cookie 在 PHP 中的區別?下面我們就來總結一下:
Cookie 僅由客戶端生成、管理并使用,PHP 只是發出指令要求客戶端如何生成 Cookie、何時過期等,但是客戶端不一定會按照 PHP 的指令辦事。
Cookie 不是很安全,不法分子可以通過分析本地的 Cookie 進行 Cookie 欺騙??紤]到安全問題,建議將用戶的重要信息存放在 Session 中,其它不重要但需要保留的信息可以存放在 Cookie 中。
Session 是用戶進入某個網站到關閉瀏覽器這段時間的會話,默認以文件形式存在服務器磁盤中,所以設置過多的 Session 會影響磁盤的性能,也可以用 Memory 引擎存入 MySQL,因為內存引擎讀寫速度快,現在也可以指定用 Redis 來處理 Session,這樣更快,效率更高。
Session 的收回機制是被動的,一般來說,一旦關閉瀏覽器 Session 也就被 PHP 自動回收了,但有時即使設置了過期時間并且關閉瀏覽器也不一定會刪除 Session,比如設置多目錄多層級保存 Session 時,這時需要通過 PHP 腳本手動刪除 Session。
通常 Cookie 與 Session 是綁定的,即用戶在沒有禁用 Cookie 時,Cookie 一般會保存 Session ID 及 Session 生存周期,如果用戶刪除 Cookie 一般會退出系統;如果沒有禁用 Cookie 關閉瀏覽器 Session 也會立即失效,要重新登錄系統。
Cookie 與 Session 一般應于標識用戶、權限認證、存儲簡單數據、還有就是利用 Cookie 實現單點登錄。
Cookie 存儲的數據在不同的瀏覽器會有不同的限制,一般在同一個域名下,Cookie 變量數量控制在 20 個以內,每個 Cookie 的值大小控制在 4kb 以內。Session 值沒有大小和數量限制,但如果數量過多,會增大服務器的壓力。另外,Cookie 保存的內容是字符串,而 Session 保存的數據是對象。
Session 不能區分路徑,同一個用戶在訪問一個網站期間,所有的 Session 在任何一個地方都可以訪問到;而 Cookie 中如果設置了路徑參數,那么同一個網站中不同路徑下的 Cookie 是不能互相訪問的。
COOKIE和SESSION的區別
(1)存儲位置:Cookie存儲在客戶端瀏覽器中,相對不安全;Session內容所在文件存儲在服務器中,一般在根目錄下的tmp文件夾中,相對更安全。
(2)數量和大小限制:Cookie存儲的數據在不同的瀏覽器會有不同的限制,一般在同一個域名下,Cookie變量數量控制在20個以內,每個cookie值的大小控制在4kb以內。session值沒有大小和數量限制,但如果數量過多,會增大服務器的壓力。
(3)內容區別:cookie保存的內容是字符串,而服務器中的session保存的數據是對象。
(4)路徑區別:session不能區分路徑,同一個用戶在訪問一個網站期間,所有的session在任何一個地方都可以訪問到;而cookie中如果設置了路徑參數,那么同一個網站中不同路徑下的cookie互相是訪問不到的。
關于“php中cookie與session有哪些區別”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。