區別: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影片教學》
以上是php中cookie與session有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!