成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

PHP 會話控制

CHENGKANG / 3348人閱讀

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

會話控制

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

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

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

Cookie

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

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

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

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

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

創(chuàng)建

必須在 HTML 文件的內(nèi)容輸出之前調(diào)用 setcookie()
接收

刪除

Session

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

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

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

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

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

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 的使用說明:

創(chuàng)建
//啟動 session
session_start();

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

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

銷毀

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

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/28561.html

相關文章

  • PHP中的會話控制

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

    luoyibu 評論0 收藏0
  • PHP面試??贾?em>會話控制

    摘要:一的會話也稱為。如果啟動會話成功,則函數(shù)返回,否則返回。會話啟動后就可以載入該會話已經(jīng)注冊的會話變量以便使用。但數(shù)組創(chuàng)建的在會話結(jié)束后就會失效。預告本周三更新面試??贾W(wǎng)絡協(xié)議,敬請期待。 你好,是我琉憶,歡迎您來到PHP面試專欄。本周(2019.2-25至3-1)的一三五更新的文章如下: 周一:PHP面試??贾畷捒刂浦苋篜HP面試??贾W(wǎng)絡協(xié)議周五:PHP面試??碱}之會話控制和...

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

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

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

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

    jsdt 評論0 收藏0

發(fā)表評論

0條評論

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