上篇文章為大家介紹了《為什麼PHP會有安全性問題?本質以及安全問題三要素是什麼? 》,本文繼續介紹什cookie.session ?他們之間的差別是?一起來研究吧! ! !
什麼是cookie、session ?
#cookie :儲存在用戶端的一-小段文本,用於伺服器辨識使用者的一種技術。
session :基於cookie,只是資料不儲存在客戶端,改為儲存在伺服器端,用戶端只儲存一個id ,也稱為session id ,伺服器可以根據這個session . id找到該用戶的資訊。
我們了解http協議是一種無狀態的協議,當我們瀏覽網站的時候,後端是如何知道用戶端的資訊的?因此,我們就可以使用以上兩種方式(cookie、session)
cookie、session 的差異是什麼?
具體來說cookie機制採用的是在客戶端保持狀態的方案,而session機制採用的是在伺服器端保持狀態的方案.同時我們也看到,由於採用伺服器端保持狀態的方案在客戶端也需要保存一個標識,所以session機制可能需要藉助於cookie機制來達到保存標識的目的,但實際上它還有其他選擇.
cookie機制.正統的cookie分發是透過擴展HTTP協定來實現的,伺服器透過在HTTP的回應頭中加上一行特殊的指示以提示瀏覽器按照指示產生相應的cookie.然而純粹的客戶端腳本如JavaScript或VBScript也可以產生cookie.而cookie的使用是由瀏覽器按照一定的原則在後台自動發送給伺服器的.瀏覽器檢查所有存儲的cookie,如果某個cookie所聲明的作用範圍大於等於將要請求的資源所在的位置,則把該cookie附在請求資源的HTTP請求頭上發送給伺服器.
cookie的內容主要包括:名字,值,過期時間,路徑和網域.路徑與網域一起構成cookie的作用範圍.若不設定過期時間,則表示這個cookie的生命期為瀏覽器會話期間,關閉瀏覽器視窗,cookie就消失.這種生命期為瀏覽器會話期的cookie被稱為會話cookie.會話cookie一般不存儲在硬碟上而是保存在內存裡,當然這種行為並不是規範規定的.若設定了過期時間,瀏覽器就會把cookie保存到硬碟上,關閉後再次打開瀏覽器,這些cookie仍然有效直到超過設定的過期時間.儲存在硬碟上的cookie可以在不同的瀏覽器進程間共享,比如兩個IE視窗.而對於保存在記憶體裡的cookie,不同的瀏覽器有不同的處理方式
##(cookie)具體程式碼為例:
<?php //setcookie('tittle','答案很长,我准备用一生的时间来回答,你准备要听了吗?'); echo $_COOKIE['tittle']; ?>
程式碼解釋:
先設定一個cookie函數,可以使用setcookie函數,當我們設定完cookie函數以後要如何把他取出來?由程式碼可知,我們可以使用$_cookie[],但是當我們去執行此程式碼,結果顯示,沒有此標題(程式碼結果如下所示),當我們註解掉setcookie時,執行程式碼顯示出,我們所輸入的結果,(如下所示),#(session)程式碼:
<?php //setcookie( 'title', 'www. php.cn'); //echo $_ COOKIE[ 'title']; // session session_start(); $_SESSION[ 'user'] = array( 'uid'=>1, 'name'=>'张三' , ' age'=>18); echo '<pre class="brush:php;toolbar:false">' ; print_r($_SESSION[ 'user']); ?>
PHP影片教學》
以上是什麼是cookie.session ?他們之間的區別是? (詳細介紹)的詳細內容。更多資訊請關注PHP中文網其他相關文章!