0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

php面試筆記(8):php基礎(chǔ)知識(shí)、會(huì)話控制考點(diǎn)

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-12-10 18:24 ? 次閱讀

本文是根據(jù)慕課網(wǎng)Jason老師的課程進(jìn)行的PHP面試知識(shí)點(diǎn)總結(jié)和升華,如有侵權(quán)請(qǐng)聯(lián)系我進(jìn)行刪除。

在上一篇中,冷月為大家分享了文件及目錄處理考點(diǎn),大家一定要根據(jù)自己的薄弱點(diǎn)進(jìn)行查漏補(bǔ)缺,嘗試著練習(xí)目錄的復(fù)制和刪除函數(shù)的編寫(xiě)。今天,冷月為大家分享會(huì)話控制考點(diǎn)。

回顧真題

簡(jiǎn)述cookie和session的區(qū)別及各自的工作機(jī)制,存儲(chǔ)位置等。簡(jiǎn)述cookie的優(yōu)缺點(diǎn)。

答案:

COOKIE:

在網(wǎng)站中,http請(qǐng)求是無(wú)狀態(tài)的。也就是說(shuō)即使第一次和服務(wù)器連接后并且登錄成功后,第二次請(qǐng)求服務(wù)器依然不能知道當(dāng)前請(qǐng)求是哪個(gè)用戶。cookie的出現(xiàn)就是為了解決這個(gè)問(wèn)題,第一次登錄后服務(wù)器返回一些數(shù)據(jù)(cookie)給瀏覽器,然后瀏覽器保存在本地,當(dāng)該用戶發(fā)送第二次請(qǐng)求的時(shí)候,就會(huì)自動(dòng)的把上次請(qǐng)求存儲(chǔ)的cookie數(shù)據(jù)自動(dòng)的攜帶給服務(wù)器,服務(wù)器通過(guò)瀏覽器攜帶的數(shù)據(jù)就能判斷當(dāng)前用戶是哪個(gè)了。cookie存儲(chǔ)的數(shù)據(jù)量有限,不同的瀏覽器有不同的存儲(chǔ)大小,但一般不超過(guò)4KB。因此使用cookie只能存儲(chǔ)一些小量的數(shù)據(jù)。

SESSION:

session和cookie的作用有點(diǎn)類似,都是為了存儲(chǔ)用戶相關(guān)的信息。不同的是,cookie是存儲(chǔ)在本地瀏覽器,而session存儲(chǔ)在服務(wù)器。存儲(chǔ)在服務(wù)器的數(shù)據(jù)會(huì)更加的安全,不容易被竊取。但存儲(chǔ)在服務(wù)器也有一定的弊端,就是會(huì)占用服務(wù)器的資源,但現(xiàn)在服務(wù)器已經(jīng)發(fā)展至今,一些session信息還是綽綽有余的。

cookie和session結(jié)合使用:

web開(kāi)發(fā)發(fā)展至今,cookie和session的使用已經(jīng)出現(xiàn)了一些非常成熟的方案。在如今的市場(chǎng)或者企業(yè)里,一般有兩種存儲(chǔ)方式:

1、存儲(chǔ)在服務(wù)端:通過(guò)cookie存儲(chǔ)一個(gè)session_id,然后具體的數(shù)據(jù)則是保存在session中。如果用戶已經(jīng)登錄,則服務(wù)器會(huì)在cookie中保存一個(gè)session_id,下次再次請(qǐng)求的時(shí)候,會(huì)把該session_id攜帶上來(lái),服務(wù)器根據(jù)session_id在session庫(kù)中獲取用戶的session數(shù)據(jù)。就能知道該用戶到底是誰(shuí),以及之前保存的一些狀態(tài)信息。這種專業(yè)術(shù)語(yǔ)叫做server side session。

2、將session數(shù)據(jù)加密,然后存儲(chǔ)在cookie中。這種專業(yè)術(shù)語(yǔ)叫做client side session。flask采用的就是這種方式,但是也可以替換成其他形式。

考點(diǎn)分析

PHP的會(huì)話控制技術(shù)

COOKIE:

cookie 常用于識(shí)別用戶。cookie 是一種服務(wù)器留在用戶計(jì)算機(jī)上的小文件。每當(dāng)同一臺(tái)計(jì)算機(jī)通過(guò)瀏覽器請(qǐng)求頁(yè)面時(shí),這臺(tái)計(jì)算機(jī)將會(huì)發(fā)送 cookie。通過(guò) PHP,您能夠創(chuàng)建并取回 cookie 的值。

操作

創(chuàng)建cookie

setcookie(name, value, expire, path, domain);

讀取cookie

PHP 的 $_COOKIE 變量用于取回 cookie 的值。

刪除cookie

當(dāng)刪除 cookie 時(shí),您應(yīng)當(dāng)使過(guò)期日期變更為過(guò)去的時(shí)間點(diǎn)。

Session:
PHP session 變量用于存儲(chǔ)關(guān)于用戶會(huì)話(session)的信息,或者更改用戶會(huì)話(session)的設(shè)置。Session 變量存儲(chǔ)單一用戶的信息,并且對(duì)于應(yīng)用程序中的所有頁(yè)面都是可用的。

操作
在您把用戶信息存儲(chǔ)到 PHP session 中之前,首先必須啟動(dòng)會(huì)話。

session_start() 函數(shù)

存儲(chǔ) Session 變量

存儲(chǔ)和取回 session 變量的正確方法是使用 PHP $_SESSION 變量:

銷毀 Session

如果您希望刪除某些 session 數(shù)據(jù),可以使用 unset() 或 session_destroy() 函數(shù)。unset() 函數(shù)用于釋放指定的 session 變量:

配置Session

session.auto_start

php.ini配置session.auto_start=0默認(rèn)關(guān)閉,session.auto_start 開(kāi)啟就自動(dòng)完成了session_start()。

session.cookie.lifetime

session.cookie.lifetime 默認(rèn)是0,即瀏覽器關(guān)閉,session失效;修改這個(gè)值的作用是修改sessionid以cookie的形式保留在瀏覽器的時(shí)間長(zhǎng)度,也就是說(shuō)這個(gè)值設(shè)置一個(gè)小時(shí),名為sessionid的cookie就保留在瀏覽器一個(gè)小時(shí),session一個(gè)小時(shí)后才過(guò)期;

垃圾回收

session.gc_maxlifetime; 設(shè)置過(guò)期session時(shí)間,默認(rèn)1440秒(24分鐘)

session.gc_probability/session.gc_divisor; 啟動(dòng)垃圾回收機(jī)制的概率(建議值為1/1000——5000)

session_id()

session_id — 獲取/設(shè)置當(dāng)前會(huì)話 ID

session_name()

session_name — 讀取/設(shè)置會(huì)話名稱

一網(wǎng)打盡

session信息的存儲(chǔ)方式、如何遍歷session

答案:session是一種服務(wù)端機(jī)制,服務(wù)器使用一種類似于散列表的結(jié)構(gòu)來(lái)保存信息,在PHP中直接用$_SESSION數(shù)組來(lái)遍歷即可

審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • PHP
    PHP
    +關(guān)注

    關(guān)注

    0

    文章

    452

    瀏覽量

    26576
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    php是什么

    PHP(\"PHP: Hypertext Preprocessor\",超文本預(yù)處理器)是一種廣泛應(yīng)用的開(kāi)源多用途腳本語(yǔ)言。它是一種服務(wù)器端的腳 本語(yǔ)言,通常被嵌入到HTML文檔
    發(fā)表于 01-30 16:33

    php生成動(dòng)態(tài)網(wǎng)頁(yè)內(nèi)容的方法

    。與靜態(tài)網(wǎng)頁(yè)相比,動(dòng)態(tài)網(wǎng)頁(yè)可以根據(jù)特定條件生成不同的內(nèi)容。 PHP的基本概念和語(yǔ)法 PHP是一種服務(wù)器端腳本語(yǔ)言,它可以嵌入到HTML中。PHP文件通常以.php擴(kuò)展名保存,并且在服務(wù)
    的頭像 發(fā)表于 12-04 16:22 ?671次閱讀

    php編程用什么軟件

    ),專為PHP開(kāi)發(fā)而設(shè)計(jì)。它具有智能代碼編輯器、錯(cuò)誤突出顯示、代碼自動(dòng)完成、代碼重構(gòu)等功能,可以大大提高開(kāi)發(fā)效率。此外,它還支持版本控制系統(tǒng)(如Git)和調(diào)試PHP代碼。 Visual Studio
    的頭像 發(fā)表于 12-04 16:20 ?2336次閱讀

    php的優(yōu)點(diǎn)和缺點(diǎn)分別是什么

    PHP是一種廣泛應(yīng)用于Web開(kāi)發(fā)領(lǐng)域的腳本語(yǔ)言,它有著許多獨(dú)有的優(yōu)點(diǎn)和缺點(diǎn)。 一、PHP的優(yōu)點(diǎn): 1.易于學(xué)習(xí)和使用:PHP語(yǔ)法簡(jiǎn)單易懂,類似于C語(yǔ)言,對(duì)于初學(xué)者來(lái)說(shuō)是一門理想的語(yǔ)言。即使對(duì)沒(méi)有編程
    的頭像 發(fā)表于 12-04 16:16 ?1974次閱讀

    php的源碼是什么開(kāi)源語(yǔ)言

    PHP的源碼是用C語(yǔ)言編寫(xiě)的,是一種開(kāi)源的服務(wù)器端腳本語(yǔ)言。下面是關(guān)于PHP源碼的詳細(xì)介紹。 一、PHP簡(jiǎn)介 PHP(全稱:PHP: Hyp
    的頭像 發(fā)表于 12-04 16:11 ?1378次閱讀

    php的mysql無(wú)法啟動(dòng)

    MySQL是一種常用的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),而PHP是一種廣泛應(yīng)用于服務(wù)器端的腳本語(yǔ)言。在使用PHP開(kāi)發(fā)網(wǎng)站或應(yīng)用時(shí),經(jīng)常會(huì)碰到MySQL無(wú)法啟動(dòng)的問(wèn)題。本文將詳細(xì)介紹解決MySQL無(wú)法啟動(dòng)的方法
    的頭像 發(fā)表于 12-04 15:59 ?1091次閱讀

    php的源碼是開(kāi)放的嗎

    PHP是一種開(kāi)源的腳本語(yǔ)言,其源代碼完全開(kāi)放并可免費(fèi)獲取、使用和修改。這篇文章將詳細(xì)介紹PHP的源碼開(kāi)放性。 一、PHP的源碼開(kāi)放性 PHP的源碼是以
    的頭像 發(fā)表于 12-04 15:57 ?1010次閱讀

    php的配置文件是什么

    ,配置文件的名稱默認(rèn)為php.ini。該文件通常位于PHP安裝目錄下的conf文件夾中。當(dāng)PHP解釋器啟動(dòng)時(shí),會(huì)自動(dòng)加載php.ini文件,并根據(jù)其中的配置指令來(lái)設(shè)置運(yùn)行環(huán)境。一些常見(jiàn)
    的頭像 發(fā)表于 12-04 15:55 ?1350次閱讀

    php的適用范圍

    PHP是一種通用的腳本語(yǔ)言,特別適用于Web開(kāi)發(fā)。它可以用來(lái)開(kāi)發(fā)動(dòng)態(tài)網(wǎng)頁(yè)、網(wǎng)站和Web應(yīng)用程序。本文將詳細(xì)介紹PHP的適用范圍及其優(yōu)勢(shì)。 首先,PHP在Web開(kāi)發(fā)中的應(yīng)用非常廣泛。無(wú)論是簡(jiǎn)單的靜態(tài)
    的頭像 發(fā)表于 12-04 15:54 ?423次閱讀

    php的特點(diǎn)有哪些

    PHP是一種通用的腳本語(yǔ)言,特點(diǎn)豐富多樣。 PHP是一種開(kāi)源的服務(wù)器端腳本語(yǔ)言,主要用于開(kāi)發(fā)Web應(yīng)用程序。它可以嵌入HTML代碼中,也可以作為命令行腳本執(zhí)行。PHP語(yǔ)言的發(fā)展始于上世紀(jì)90年代
    的頭像 發(fā)表于 12-04 15:50 ?1258次閱讀

    php是前端還是后端

    PHP(Hypertext Preprocessor)是一種流行的服務(wù)器端編程語(yǔ)言,用于開(kāi)發(fā)動(dòng)態(tài)網(wǎng)站和Web應(yīng)用程序。盡管在某些情況下也可以在前端使用,但PHP主要被廣泛應(yīng)用于后端開(kāi)發(fā)。在這篇文章中
    的頭像 發(fā)表于 12-04 15:46 ?2010次閱讀

    php運(yùn)行機(jī)制和原理

    PHP是一種在服務(wù)器端執(zhí)行的腳本語(yǔ)言,它被廣泛用于開(kāi)發(fā)動(dòng)態(tài)網(wǎng)站。它的運(yùn)行機(jī)制和原理非常重要,因?yàn)樗鼪Q定了PHP腳本如何被解釋執(zhí)行和與服務(wù)器進(jìn)行交互。 PHP的運(yùn)行機(jī)制 PHP腳本的運(yùn)行
    的頭像 發(fā)表于 12-04 15:28 ?765次閱讀

    php運(yùn)行環(huán)境的配置步驟

    PHP是一種廣泛使用的服務(wù)器端腳本語(yǔ)言,被用來(lái)開(kāi)發(fā)Web應(yīng)用程序。為了在計(jì)算機(jī)上運(yùn)行PHP代碼,我們需要配置PHP運(yùn)行環(huán)境。本文將詳細(xì)介紹PHP運(yùn)行環(huán)境的配置步驟。 下載
    的頭像 發(fā)表于 12-04 15:27 ?959次閱讀

    php運(yùn)行環(huán)境本地測(cè)試地址是

    PHP運(yùn)行環(huán)境本地測(cè)試地址是指在本地計(jì)算機(jī)上搭建的用于測(cè)試和運(yùn)行PHP代碼的的環(huán)境地址。搭建該運(yùn)行環(huán)境可以方便開(kāi)發(fā)人員在本地進(jìn)行開(kāi)發(fā)、調(diào)試和測(cè)試工作,以提高開(kāi)發(fā)效率和優(yōu)化代碼質(zhì)量。本文將詳細(xì)介紹
    的頭像 發(fā)表于 12-04 15:25 ?537次閱讀

    php運(yùn)行環(huán)境的搭建方法

    搭建PHP運(yùn)行環(huán)境是開(kāi)發(fā)PHP應(yīng)用程序的基礎(chǔ),本文將詳盡、詳實(shí)、細(xì)致地介紹從零開(kāi)始搭建PHP運(yùn)行環(huán)境的方法,包括選擇操作系統(tǒng)、安裝Web服務(wù)器、安裝PHP以及配置相關(guān)組件等。 首先,選
    的頭像 發(fā)表于 12-04 14:56 ?1097次閱讀