摘要:什么是會話機制這個太過抽象,也挺復(fù)雜的,只能說一下自己的理解。
①什么是會話機制:
這個太過抽象,也挺復(fù)雜的,只能說一下自己的理解。在b/s架構(gòu)下,會話機制,其實就是服務(wù)器(server)和瀏覽器(browser)之間的對話的一種方式!這種對話方式,能夠使得web站點能夠?qū)τ脩舻男袨檫M行追蹤,在同一個站點下用戶所需的數(shù)據(jù)實現(xiàn)共享!
②為什么要使用會話機制歸根到底是由于,b/s的訪問方式是基于http協(xié)議的,而http協(xié)議本身又是無狀態(tài)的,所謂無狀態(tài),就是指服務(wù)器端無法區(qū)分發(fā)起請求的是否是同一個人(有興趣的同學(xué)可以自己好好研究一下http的無狀態(tài)性)!每次請求都會被當(dāng)做獨立的請求,并不能將兩次訪問聯(lián)系到一起!
③核心設(shè)計思想核心設(shè)計思想:允許服務(wù)器對同一個客戶端的的連續(xù)請求進行跟蹤,對同一個訪問者的請求數(shù)據(jù),在多個頁面之間實現(xiàn)共享!
④php中實現(xiàn)會話機制的方法:1)在兩個頁面(較少頁面之間)通過$_GET或者$_POST數(shù)組之間實現(xiàn)數(shù)據(jù)的共享!
2)使用cookie將用戶的信息存放在客戶端的計算機中,用于保存并不重要的數(shù)據(jù)
3)通過session將用戶的信息保存在服務(wù)器中
通過$_GET和$_POST方式獲得數(shù)據(jù)較為簡單,這里就不再介紹!
1)當(dāng)我們通過setCookie()函數(shù)來新增或者改變cookie中的值的時候,setCookie()函數(shù)前面不能夠有任何實際的輸出,即使是空格也不可以!
這是因為setCookie()函數(shù)最終是改變http響應(yīng)頭信息(我們有理由相信setCookie()方法,底層就是通過header()方法進行的設(shè)置的頭信息),我們都應(yīng)該知道在header函數(shù)前面是不能夠有任何實際的輸出的(除非是開啟了ob緩存)!
2)在cookie中是只能夠保存字符串的,但是,如果我們想將一個數(shù)組變量保存到cookie中,在不進行序列化的情況下,其實也是可以辦到的,代碼如下:
> 得到的結(jié)果如下: > array(3) { > [""name""]=> > array(2) { > [""xing""]=> > string(5) "liang" > [""ming""]=> > string(2) "bo" > } > [""age""]=> > string(2) "23" > [""addr""]=> > string(6) "吉林" > }
3)cookie的$path參數(shù),只有在指定的路徑下的網(wǎng)頁才可以獲取cookie中的值!demo如下:
該頁面所處的路徑"/",也就是網(wǎng)站的根目錄!
接受的代碼如下:
改代碼文件所在的路徑如下:/talkphp/secondtalk/
執(zhí)行結(jié)果如下:string(7) "liangbo"
同樣的接受代碼:但是所處的路徑不同,是在根目錄“/”下,
得到的結(jié)果如下:null
4)cookie的跨域問題:
個人認(rèn)為跨域問題,主要是值存在同一個網(wǎng)站下,有多個二級域名,在多個二級域名下cookie數(shù)據(jù)的共享問題!
在cookie中,如果設(shè)置的domain參數(shù)是一級域名的話,那么cookie中的數(shù)據(jù)在各個二級域名之間是都可用的!demo如下:
該代碼所在的網(wǎng)站域名是:php.test.com 頁面路徑是:/talkphp/secondtalk/getcookie.php
運行結(jié)果如下:string(7) "liangbo"
同樣的代碼,該代碼所在的域名是:jquery.test.com 頁面所在的路徑是:/talkphp/secondtalk/getcookie.php
運行結(jié)果如下:string(7) "liangbo"
可見,如果domain參數(shù)中設(shè)置的是一級域名的話,那么在各個二級域名之間$_COOKIE中的數(shù)據(jù)是可以共享的
在一級域名中.test.com,中test前的"."其實是可以省略的,但是加上的話,瀏覽器的兼容會更好!
我們來看另外一種情況:
這里,我們將domain設(shè)置為了二級域名php.test.com
該代碼所在的網(wǎng)站域名是:php.test.com 頁面路徑是:/talkphp/secondtalk/getcookie.php
運行結(jié)果如下:string(7) "liangbo"
同樣的代碼,該代碼所在的域名是:jquery.test.com 頁面所在的路徑是:/talkphp/secondtalk/getcookie.php
運行的結(jié)果如下:null
可見,如果設(shè)置的domain參數(shù)是二級域名的話,那么cookie中的數(shù)據(jù)只能夠在該二級域名下面使用!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/20701.html
摘要:會話機制如果是基于的會話機制,在調(diào)用之前,是不能夠有任何實際的輸出的,即使是空格或者是空行因為函數(shù)調(diào)用的時候,其實是通過函數(shù)向中設(shè)置了這個,對應(yīng)的是一個隨機的唯一的位字符串而前面是不可以有任何實際的輸出的注意這里的名字是在文件中進行的配置配 session 會話機制: 1)如果是基于cookie的會話機制,在調(diào)用session_start()之前,是不能夠有任何實際的輸出的,即使是空...
摘要:一的會話也稱為。如果啟動會話成功,則函數(shù)返回,否則返回。會話啟動后就可以載入該會話已經(jīng)注冊的會話變量以便使用。但數(shù)組創(chuàng)建的在會話結(jié)束后就會失效。預(yù)告本周三更新面試??贾W(wǎng)絡(luò)協(xié)議,敬請期待。 你好,是我琉憶,歡迎您來到PHP面試專欄。本周(2019.2-25至3-1)的一三五更新的文章如下: 周一:PHP面試??贾畷捒刂浦苋篜HP面試常考之網(wǎng)絡(luò)協(xié)議周五:PHP面試??碱}之會話控制和...
摘要:的作用就是為了解決協(xié)議無狀態(tài)的缺陷所作的努力。的內(nèi)容主要包括名字,值,過期時間,路徑和域。這種生命期為瀏覽器會話期的被稱為會話。而機制采用的是一種在服務(wù)器端保持狀態(tài)的解決方案。中的有效期默認(rèn)分鐘,也就是說,客戶端超過分鐘,當(dāng)前就會失效。 會話控制是什么? cookie和session都是跟蹤整個會話過程的技術(shù)手段。而會話,就是用戶通過瀏覽器和服務(wù)器的一次通話。 為什么要有會話控制? 因...
摘要:會在腳本執(zhí)行完畢或調(diào)用函數(shù)之后調(diào)用此回調(diào)函數(shù)。此回調(diào)函數(shù)操作成功返回,反之返回。在回調(diào)函數(shù)中,以傳入的作為,以的值作為中的值存入,并設(shè)置過期時間為秒方法以傳入的為從取出相應(yīng)的的值。 1 Session的基本概念和設(shè)置 Session存儲在服務(wù)端,本質(zhì)上和Cookie沒有區(qū)別,都是針對http協(xié)議的局限性而提出的一種保持客戶端和服務(wù)端間會話狀態(tài)的機制。Session經(jīng)常用來網(wǎng)站的上下文間...
閱讀 1744·2019-08-30 12:51
閱讀 731·2019-08-29 17:30
閱讀 3790·2019-08-29 15:17
閱讀 908·2019-08-28 18:10
閱讀 1460·2019-08-26 17:08
閱讀 2240·2019-08-26 12:16
閱讀 3519·2019-08-26 11:47
閱讀 3566·2019-08-23 16:18