本篇文章講述了session和cookie會話控制,大家對session和cookie會話控制不了解的話或者對session和cookie會話控制感興趣的話那么我們就一起來看看本篇文章吧, 好了廢話少說進入正題吧
對于一個前端開發者,cookie我想大家都不陌生,經常會封裝一些諸如setcookie,getcookie的方法,session就好像一個最熟悉的陌生人一樣,在我們與后端開發者合作項目的時候會用到它,但是不理解它的本質,下面我們就來詳細探討下
存儲位置:存儲于客戶端
作用:本域跨頁面存儲數據(我們似乎一般都用來username,password)
cookie一般包含如下圖的信息:
傳輸:下面是一條http請求報文
在每次發送請求中,cookie都會隨著http報文發向后臺
下面我以php語言為用例,講解session
從上面可以看出session存儲于服務器端,而且以文件的形式存儲
session有好多特性,比如過期時間等,下面我們查看,打開php.ini文件(里面有php的諸多配置信息,我去除了n多注釋)
下面我看看具體看看那個sessionID
可以看出,這也就與上面那個session.name = “PHPSESSID”不謀而合
我們已經清楚了前臺瀏覽器是如何攜帶sessionID傳輸到后臺,以及后臺存儲session文件的位置,那后臺具體利用sessionID分析利用呢, 我們接著分析
為了分析機制,請看下面php代碼
<?php session_start(); header("Content-Type: text/html;charset=utf-8"); if ($_SESSION['username'] != 'success') { /* /php/index.php為當前文件路徑 */ $string = <<< EOF <form action="/php/index.php" method="post"> <input type="text" name="value"> <input type="submit"> </form> EOF; echo $string; } if ($_SESSION['username'] == 'success') { echo "登錄成功".PHP_EOL; } if ($_POST['value'] == 'ys') { $_SESSION['username'] = 'success'; echo "登錄成功".PHP_EOL; } ?>
執行了php文件,體驗session過程
發現http的cookie頭部中的sessionID和服務器session文件名一樣
這樣就能根據每次請求的session找到唯一的session文件,然后看看這個文件是怎么樣的
username|S:7:"success";s|S:7:"success";ss|S:7:"success";
這是這個文件的內容,里面有s,ss,username,其中s和ss就是我之前測試的名字(可以忽略),也就是這樣
username|S:7:"success";
然后每次后臺就能根據sessionID確定唯一會話,設置諸如$_SESSION[‘username’]之類的加以判斷,實現cookie之間的通信。
相關推薦:
php之session和cookie總結分享
php會話控制session、cookie介紹
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com