国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP 會話控制

CHENGKANG / 3341人閱讀

摘要:會話控制協議是服務器與瀏覽器相互通信的協議,它是一種無狀態協議,即每個請求之間是相互獨立的。因此,協議沒有一個內建的機制來維護兩個事務之間的狀態。這就是會話控制技術。每一個文件,里面保存了一個會話的數據。此時可以采用等緩存系統。

會話控制

HTTP 協議是 WEB 服務器與瀏覽器相互通信的協議,它是一種無狀態協議,即每個 HTTP 請求之間是相互獨立的。因此,HTTP 協議沒有一個內建的機制來維護兩個事務之間的狀態。比如,當一個用戶在請求一個頁面后再去請求另外一個頁面時,HTTP 將無法告訴我們這兩個請求是否來自同一個用戶。

在網站中,我們經常需要跟蹤一個變量:通過對變量的跟蹤,使多個請求事物之間建立聯系,再根據授權和用戶身份顯示不同的內容、不同頁面。這就是會話控制技術。

常用的會話控制技術有 CookieSession。簡單地說,Cookie 是通過在客戶端中記錄信息而確定用戶身份;Session 是通過在服務器端記錄信息而確定用戶身份。

Cookie

Cookie 是一個很小的文本文件,包含在 HTTP 請求報文中在 Web 服務器和瀏覽器之間傳遞。Cookie 的工作原理如下:

服務器通過在 HTTP 響應報文中設置一個 Set-Cookie 字段,并把 Cookie 數據放在 Set-Cookie 字段中隨著 HTTP 報文傳給瀏覽器;

瀏覽器在接收到 HTTP 響應報文后,檢查到 Set-Cookie 字段有值,會在本地創建一個 Cookie 文件來保存數據;

當瀏覽器再次向該服務器發送請求時,瀏覽器會先搜索本地保存的 Cookie 文件,如果在 Cookie 文件中有任何與正在連接的 URL 相關的 Cookie,就在 HTTP 請求報文中設置一個 Cookie 字段,并把 Cookie 文件中的數據添加到該字段中,最后把攜帶 Cookie 字段的 HTTP 請求報文發送給服務器。

Cookie 可以用來保存用戶名、密碼、個性化設置等一些簡單的信息,以下是 Cookie 的使用說明:

創建

必須在 HTML 文件的內容輸出之前調用 setcookie()
接收

刪除

Session

Session 是在服務器端保持用戶會話數據的一種方法,其工作原理如下:

當瀏覽器第一次訪問 PHP 腳本時,seesion_start() 函數會創建一個唯一的 Session ID(每個客戶端都有一個唯一的標識),并自動通過 HTTP 的響應頭,將這個 Session ID 保存到客戶端 Cookie 中。同時,也在服務器端創建一個以 Session ID 命名的文件,用于保存這個用戶的會話信息;

當同一個用戶再次訪問這個網站時,會自動通過 HTTP 的請求頭將 Cookie 中保存的 Seesion ID 再攜帶過來;

服務器 PHP 腳本接受到客戶端請求,這時 session_start() 函數就不會再去分配一個新的 Session ID,而是在服務器的硬盤中去尋找和這個 Session ID 同名的 Session 文件,將這之前為這個用戶保存的會話信息讀出。

首先,創建 Session 唯一標識的方法有兩種:通過 Cookie 或者 GET 方式。PHP 在默認情況下使用 Session 會建立一個名叫 PHPSESSID 的 Cookie(可以通過 php.ini 修改 session.name 的值),如果客戶端禁用cookie,可以指定通過 GET 方式把 Session ID 傳到服務器(修改 php.ini 中 session.use_trans_sid 等參數)。其次,Session 是以文件的形式保存的。php.ini 中有個配置項 --session.save_path= "" ,這個里面填寫的路徑,將會保存所有 Session 文件。Session 文件的命名格式是:sess_[PHPSESSID的值]。每一個文件,里面保存了一個會話的數據。最后,保存在 Session 文件中的數據是經過序列化處理的,比如:

cityID|i:0;cityName|s:3:"all";fanwe_lang|s:5:"zh-cn";fanwe_currency|a:4:{s:2:"id";s:1:"1";s:6:"name_1";s:9:"人民幣";s:4:"unit";s:3:"¥";s:5:"radio";s:6:"1.0000";}_fanwe_hash__|s:32:"77c18770c6cb5d89444c407aaa3e8477";

Session 同樣可以用來保存用戶名、密碼、個性化設置等一些簡單的信息,以下是 Session 的使用說明:

創建
//啟動 session
session_start();

//注冊session變量,賦值為一個用戶的名稱
$_SESSION["username"] = "jochen";

//注冊session變量,賦值為一個用戶的ID
$_SESSION["uid"] = 1;
注意:必須在 HTML 文件的內容輸出之前調用 session_start()
讀取

銷毀

需要注意的是,當 session 文件比較多的情況下,將會產生 I/Q 讀寫性能問題。此時可以采用 memcached、redis 等緩存系統。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/28561.html

相關文章

  • PHP中的會話控制

    摘要:會話控制的思想是指能夠在網站里根據一個會話跟蹤用戶。在之后,包含了會話控制函數,可以使用超級全局變量。檢查數組來確定一個變量是否是注冊的會話變量。注銷和銷毀注銷某一個會話。 筆記內容來源于《PHP和mysql web開發》,有興趣的可以看看這本書, 一.什么是會話控制:http是一個無狀態協議,說明http沒有一個內建機制來維護兩個事物之間的狀態。當一個用戶訪問不同的頁面時,http無...

    luoyibu 評論0 收藏0
  • PHP面試常考之會話控制

    摘要:一的會話也稱為。如果啟動會話成功,則函數返回,否則返回。會話啟動后就可以載入該會話已經注冊的會話變量以便使用。但數組創建的在會話結束后就會失效。預告本周三更新面試常考之網絡協議,敬請期待。 你好,是我琉憶,歡迎您來到PHP面試專欄。本周(2019.2-25至3-1)的一三五更新的文章如下: 周一:PHP面試常考之會話控制周三:PHP面試常考之網絡協議周五:PHP面試常考題之會話控制和...

    lsxiao 評論0 收藏0
  • PHP多進程初探 --- 再次談daemon進程

    摘要:因為子進程一定不會是組長進程,所以子進程可以調用。主進程退出子進程繼續執行啦啦啦,啦啦啦,啦啦啦,已經變成啦,開心一般服務器軟件都有寫配置項,比如以模式運行還是以模式運行。 [原文地址:https://blog.ti-node.com/blog...] 其實前面是談過一次daemon進程的,但是并涉及過多原理,但是并不影響使用。今天打算說說關于daemon進程更多的二三事,本質上說,如...

    fox_soyoung 評論0 收藏0
  • php中session的相關設置描述

    摘要:一下大多是網上的資料,自己只是整理了下,如果有錯誤希望能指出,感謝中的相關配置先看下中的相關配置的解釋。啟用此設定可以防止有關通過傳遞會話的攻擊。值為表示直到關閉瀏覽器。例如意味著在每個請求中有的概率啟動進程。 對于session的了解,之前一直沒有仔細研究過,最近遇到了一些問題,需要解決session配置問題,就順便查看了些資料。一下大多是網上的資料,自己只是整理了下,如果有錯誤希望...

    jsdt 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<