1. 程式人生 > >PHP中Session原理以及和Cookie的關係

PHP中Session原理以及和Cookie的關係

<?php

echo 'test';

就這樣一個簡單的php檔案,我們來檢視cookie的變化。
這裡寫圖片描述
開啟瀏覽器除錯工具後,先清除之前的cookie,然後反覆重新整理頁面,發現都沒有新的cookie。

我們把test.php 程式碼修改如下:

<?php

session_start();

再去瀏覽器除錯工具裡檢視有沒有cookie?
這裡寫圖片描述
可以看到,現在就有了(反覆重新整理瀏覽器,value值也不變化)。

思考: 我們沒有在程式碼中做任何cookie的操作,為什麼會生成cookie呢?

我們再修改test.php的程式碼如下:

<?php

//session_start();
if (!isset($_COOKIE['CLIENT_ID'])){ //如果沒有就設定 setcookie('CLIENT_ID',uniqid()); }

通過瀏覽器除錯工具,我們發現這樣實現了和session_start() 類似的功能。
這裡寫圖片描述

其實session的原理,就是利用cookie在把資訊儲存在了本地(windows系統的temp目錄中),做到了同一個域內共享。
如果禁用了cookie,那麼session也用不了。

相關推薦

PHPSession原理以及Cookie關係

<?php echo 'test'; 就這樣一個簡單的php檔案,我們來檢視cookie的變化。 開啟瀏覽器除錯工具後,先清除之前的cookie,然後反覆重新整理頁面,發現都沒有新的cookie。 我們把test.php 程式碼修改如下:

phpsessioncookie的使用及區別

網上商城 標識 禁止 bsp 身份驗證 main str 什麽 ets 1.cookie的使用 什麽是 Cookie? cookie 常用於識別用戶。cookie 是服務器留在用戶計算機中的小文件。每當相同的計算機通過瀏覽器請求頁面時,它同時會發送 cookie。通過

PHPsessioncookie的用法及區別

一,session 1.session 是啥? 2.怎麼儲存的? 3.如何執行? 4.有生命週期嗎? 5.關閉瀏覽器會過期嗎? 6.Redis代替檔案儲存session 7.分散式session的同步問題     session是啥?

PHPsessioncookie的區別

欺騙 .html web 人員 概念 style oge 請求 客戶端請求   這個話題無論是系統運維還是PHP開發人員面試時會經常遇到,所以這裏也進行一些總結和歸納,session和cookie的具體理論網上比較大,大家googel下均可;系統運維註意區分下session

[06] Session實現機制以及Cookie的區別

但是 session存儲 請求 pri com 無法 體驗 -c data 1、為什麽有Session和Cookie根據早期的HTTP協議,每次request-reponse時,都要重新建立TCP連接。TCP連接每次都重新建立,所以服務器無法知道上次請求和本次請求是否來自於

PHP的檔案載入常量的語法以及指令式寫法。

指令式寫法::# 指令式語法就是將開始 ‘’{‘’換成 “:” 將結束 “}”換成 “end + if,,,for,,foreach.....”<?php header('content-type:text/html;charset=utf-8'); /

cookie注入原理以及利用(cookie轉註入)

一:cookie注入原理 我們來研究一下怎樣情況下才會有Cookies注入! 如果你學過ASP你應該會知道 Request.QueryString (GET) 或 Request.Form (POST)!呵,沒錯,這就是我們用於讀取使用者發給WEB伺服器的指定鍵中的值!我們

【javaweb】Session原理以及瀏覽器禁止Cookie之後伺服器如何獲取Session

在web應用中開啟瀏覽器訪問一個網站,登入,瀏覽,到關閉瀏覽器,稱為是一個會話。由於Http協議是無狀態的,因此使用者在動態頁面互動資訊需要一些能夠儲存使用者資訊的資料結構。這個儲存使用者瀏覽資料的資料結構有兩種,一種是Cookie,儲存在客戶端;一種是Session,儲存

DDD的聚合UML的聚合以及組合的關係

UML:聚合關係:成員物件是整體的一部分,但是成員物件可以脫離整體物件獨立存在。如汽車(Car)與引擎(Engine)、輪胎(Wheel)、車燈(Light)之間的關係為聚合關係,引擎、輪胎、車燈可以脫離車而存在,比如把一個引擎換到另一個汽車上也可以。 組合關係:也表示的是一種整體和部分的關係,但是在組合關

PHP靜態變量函數引用返回

nbsp 官方 class ret code manual 文檔 sta lan   這兩天看看PHP寫的框架CI,源代碼中寫了很多靜態變量和函數引用。   官方文檔地址:http://php.net/manual/zh/language.references.return

HibernateSession之getload方法的真正區別

repl .get user href 獲得 tno lose 錯誤 ftw 最近在學習SHH框架中的hibernate,對Session的get和load方法,有點混不清楚,不知道區別在哪,或者對它們的區別感觸不深。所以百度了一下,結果問題來了。百度的結果和實際測試

淺談PHP的數組JS的數組

例如 val pan exe png strong name 我們 sso 最近在做前後端對接的時候,遇到一個問題,前端要求返回的數據格式是左邊的,但是我通過json_encode返回到的數據格式是右邊的 註意:數據格式從"[]"(數組)變成了"{}"(對象)

MVCSession的使用傳遞

error gin ati val addm then ont tex new 1.登錄時在controller中記錄session,代碼如下: public ActionResult Login(UserLoginViewModel uViewModel)

深入解讀php抽象(abstract)類抽象方法

抽象類 php 抽象方法 在面向對象(OOP)語言中,一個類可以有一個或多個子類,而每個類都有至少一個公有方法作為外部代碼訪問的接口。而抽象方法就是為了方便繼承而引入的,現在來看一下抽象類和抽象方法分別是如何定義以及他們的特點。什麽是抽象方法?我們在類裏面定義的只有方法名沒有方法體的方法就是抽象方

PHP的閉包匿名函數

當前 call 內部 closure 參數 其它 來看 tput tro PHP中的閉包和匿名函數 閉包是指在創建時封裝周圍狀態的函數。即使閉包所在的環境不存在了,閉包中封裝的狀態依然存在。 匿名函數就是沒有名稱的函數。匿名函數可以賦值給變量,還能像其他任何PHP對象那樣傳

PHPcall user func()call_user_func_array()調用自定義函數小結

echo 函數名 sta 小結 blog 如果 use ati 參數 call_user_func() 和 call_user_func_array(),通過傳入字符串函數,可以調用自定義函數,並且支持引用,都允許用戶調用自定義函數並傳入一定的參數: 1、mixed cal

如何嚴格設置phpsession過期時間

基本原理 默認 方法 path bag 當前時間 並不會 itl ring 如何嚴格限制session在30分鐘後過期!1.設置客戶端cookie的lifetime為30分鐘;2.設置session的最大存活周期也為30分鐘;3.為每個session值加入時間戳,然後在程序

session對象cookie對象的區別

安全 欺騙 cookie對象 data- src 就是 其他 時間 訪問 1、cookie數據存放在客戶的瀏覽器上,session數據放在服務器上2、cookie不是很安全,別人可以分析存放在本地的COOKIE並進行COOKIE欺騙考慮到安全應當使用session3、ses

淺析PHP的閉包匿名函數

his order clas 是否 spa sprint %s spl 逗號 PHP閉包和匿名函數使用的句法與普通函數相同,但閉包和匿名函數其實是偽裝成函數的對象(Closure類的實例) 。下面給大家介紹PHP中的閉包和匿名函數知識,需要的朋友參考下吧 閉包是指在創建時封

php0,空,nullfalse的區別【簡記】

種類型 sse ole string類 tar pty 字符 底層 is_null 1 $a = 0; 2 $b="0"; 3 $c= ‘‘; 4 $d= null; 5 $e = false; 6 7 echo "5個變量-原始