目錄
php中,cookie和session的區別,使用的好處是什麼?(求各位大牛解答,不要百度的,謝謝)?
回覆內容:
先不說Php裡的session和cookie,我們來看看在正常的web中,session和cookie分別是什麼。Cookie其實是瀏覽器一端的技術。由於HTTP本身是無狀態的,常規來說對於伺服器端並不知道每次請求的分別是誰,於是一個web會話允許在HTTP頭裡透過set-cookie臨時儲存一些內容在客戶端,客戶端則需要在這個會話中的每一個HTTP請求都附上目前cookie的內容(停用cookie的話就不發了)。這裡的會話一般是以網域來界定的。
但是cookie有兩個很大的缺陷:1. cookie是儲存在客戶端的,所以cookie可以被讀取、挪用和修改。這意味著,對於任何關鍵訊息,例如登陸資訊等,如果用cookie來保持,別人就能夠隨意讀取刪改。 2. 其它偽裝網站可能可以直接取得到你的cookie內容。
那麼怎麼樣訪問這些資訊來使得用戶端難以隨意刪改cookie偽裝其它用戶呢?通常來說有兩大類方法:1. 將cookie加密;2.cookie裡只存一個帶有自驗證的特徵碼,然後把關鍵資料儲存在伺服器一端。這就是session了。
session是cookie的應用。加密儲存在客戶端的session是最容易實現的,不會為伺服器帶來額外的儲存負擔,許多的新型小微框架的session都是以此手段實現的(而並未儲存在服務端)。其次就是儲存在服務端,可選的儲存的地方包括而不限於記憶體、檔案、外部資料庫等。
Php自帶庫裡,cookie即往response裡加入需要客戶端存儲等cookie,session則是在cookie裡加一條session_id,然後默認以文件的形式將需要存儲的東西存儲在服務端。
順帶一提,現代瀏覽器里普遍都支援localStorage,一來它透過前端存取而後端不可取得,對使用者而言安全性稍好,二來可以儲存的量大多了,三來有一定的防低端爬蟲的能力。如果不用考慮老舊瀏覽器相容的話,用localStorage+前後端分離,以ajax形式透過js回報localStorage內容(session_id或加密儲存內容)以代替cookie更值得推薦。 cookie就是把資料存在客戶端
session就是把資料存在伺服器端,客戶端只存一個id 一樓說的很好了。
其實最大的差別就是cookie存在客戶端,session存在伺服器端。而且一般情況下,session確實依賴cookie裡面的session id,其實這個session id你也可以自己定,然後用session時指定這個session id。 session id的功能就是指定session存放的文件,所以cookie停用後,可以用這招。
再補充一點就是,在分散式架構中session要慎用,因為可能會出現session資料遺失的情況,當然你也可以重寫session,讓session存在快取中或資料庫中。 你可以這麼理解,cookie是別人家的箱子,session是自己家的箱子,箱子的好處是什麼?存東西唄
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
刺客信條陰影:貝殼謎語解決方案
2 週前
By DDD
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前
By 尊渡假赌尊渡假赌尊渡假赌

熱工具

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

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

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

Dreamweaver CS6
視覺化網頁開發工具

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

熱門話題

PHP客戶端URL(curl)擴展是開發人員的強大工具,可以與遠程服務器和REST API無縫交互。通過利用Libcurl(備受尊敬的多協議文件傳輸庫),PHP curl促進了有效的執行

您是否想為客戶最緊迫的問題提供實時的即時解決方案? 實時聊天使您可以與客戶進行實時對話,並立即解決他們的問題。它允許您為您的自定義提供更快的服務

文章討論了PHP 5.3中介紹的PHP中的晚期靜態結合(LSB),允許靜態方法的運行時間分辨率調用以更靈活的繼承。 LSB的實用應用和潛在的觸摸

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

使用PHP的cURL庫發送JSON數據在PHP開發中,經常需要與外部API進行交互,其中一種常見的方式是使用cURL庫發送POST�...
