PHP下SESSION和COOKIE的對比介紹
在快取中會遇到很多的問題,本文將對SESSION和COOKIE的比較介紹。
【Cookie】
1. 定義->存在瀏覽器中,即使在瀏覽器關閉或連線中斷,使用者仍可維護資料狀態;
2.生命週期-> 預設在瀏覽器會話期間(資料儲存在記憶體中),設定了有效期,資料保存在硬碟上;
3. 有效路徑-> 需要設定有效路徑path,預設路徑是目前路徑,如果全部路徑需要將path設定為'/';
4.有效網域->設定網域名稱domain,表示該網域下的該路徑有效,預設目前網域目前路徑;
5.cookie刪除-> 直接採用setcookie("name",time()-1);
6. cookie啥時候生效->setcookie()函數後,會向客戶端發送一個cookie值,如果不刷新或瀏覽下一個頁面,客戶端就不會將cookie回傳;
7.cookie的數量->一個瀏覽器最多支援30個cookie,並且每個cookie的容量不能超過4KB,每個web站點設定的cookie數不能超過20個;
【Session】
1. 使用方式-> 使用時先用session_start() 初始化,建立或載入一個session_id;
2.生命週期-> 使用者存取頁面開始到斷開與網站的連線為止,每次連線時,都會自動產生一個SESSION ID 表示目前使用者與其他使用者;
3. 傳遞資料-> 在沒有斷開連線時,可以在不同頁面之間傳遞資料
4. PHP環境下,session資料存放地方-> 這裡比較複雜,我直接拷貝一段話,通俗講就是根據設定檔配置存放路徑,根據id指令檔名,進行單檔存放或依照層級存放,原話如下:
[plain] view plain copy
SESSION 的資料保存在哪裡呢?
當然是在伺服器端,但不是保存在記憶體中,而是保存在檔案或資料庫中。
預設情況下,PHP.ini 中設定的SESSION 保存方式是files(session.save_handler = files),即使用讀寫文件的方式保存SESSION 數據,而SESSION 文件保存的目錄由pathsession.save_pathsession.save_path指定,檔案名稱以sess_ 為前綴,後面跟著SESSION ID,如:sess_c72665af28a8b14c0fe11afe3b59b51b。文件中的資料即是序列化之後的 SESSION 資料了。
如果訪問量大,可能產生的SESSION 檔案會比較多,這時可以設定分級目錄進行SESSION 檔案的保存,效率會提高很多,設定方法為:session.save_path="N;/save_path ",N 為分級的級數,save_path 為開始目錄。
當寫入SESSION 資料的時候,php 會取得到客戶端的SESSION_ID,然後根據這個SESSION ID 到指定的SESSION 文件保存目錄中找到對應的SESSION 文件,不存在則創建之,最後將數據序列化之後寫入檔案【3】。讀取 SESSION 資料是也是類似的操作流程,對讀取的資料需要進行解序列化,產生對應的 SESSION 變數。
注意事項:
1.使用session_start()函數前不能有任何輸出;
2.session不會因為瀏覽器的關閉而刪除。但是存有session ID的cookie的預設過期時間是會話等級。也就是使用者關閉了瀏覽器,那麼儲存在客戶端的session ID就會遺失,但是儲存在伺服器端的session資料並不會被立即刪除。從客戶端即瀏覽器看來,好像session被刪除了一樣(因為我們遺失了session ID,找不到原來的session資料了)。
本文講解了SESSION和COOKIE之間的區別,更多相關內容請關注php中文網。
相關推薦:
以上是PHP下SESSION和COOKIE的對比介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。
