Web是透過HTTP協議來實現的,而HTTP協議是無狀態協議,所以同一個用戶在請求相同的頁面兩次的時候,HTTP協議不會認為這兩次請求都來自於同一個用戶,會把它們當做是兩次請求的獨立(即會將兩個請求隔離開),會認為是兩個不同的用戶請求的。如果使用者執行了登入操作,再次要求頁面,HTTP協定不會認為該使用者之前登入過,因為它無法保持該使用者先前的登入狀態,所以無法在不同頁面之間進行使用者的追蹤和狀態的保持
。
cookie的工作原理:是一種由伺服器發送給客戶端的片段訊息,儲存在客戶端瀏覽器的記憶體或硬碟當中的技術。 【可以把它當做是儲存在瀏覽器中的一個文件,這個文件中包含我們客戶端的一些片段的資訊(如:登入或儲存的一些其他資訊等),它就是一個文件,這個文件是儲存在客戶端的! ! ! 】
cookie的優點:因為cookie是將資訊儲存在客戶端,因此不會佔用伺服器的資源(即不會浪費伺服器的資源) ,效率會高一些。 cookie的缺點:也是因為其儲存在客戶端,由於我們的資訊全部保存在客戶端電腦中,所以不建議將一些敏感且重要的資料儲存到cookie當中,而且使用者有權限禁止cookie的使用。如果我們在瀏覽器中,將cookie禁止掉,一旦使用者禁止cookie,我們沒有辦法去保存使用者的資訊。
將使用者相同的資料儲存在伺服器中
session的優點:資訊非常的安全,都是儲存在伺服器端的,客戶端不可能拿到session 的資料。 session的缺點:會佔用伺服器的資源(session檔案越來越多,可能某一天會佔滿磁碟),而且它的分散式也是一個問題(如:將來我們可能會有多台web伺服器,但是session 可能是儲存在其中一台,而另外一台是沒有辦法去使用的。這種情況下,我們可以使用redis,不管在哪台伺服器,都可以去呼叫redis 的伺服器,就可以達到資訊共享)。
推薦:《PHP影片教學》
以上是總結 cookie 和 session 的優缺點的詳細內容。更多資訊請關注PHP中文網其他相關文章!