這篇文章給大家分享的是有關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>' ; print_r($_SESSION[ 'user']); ?>
代碼結果如下所示:
感謝各位的閱讀!關于“cookie和session有什么區別”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。