php 會話技術 cookie

2022-08-25 21:48:33 字數 2443 閱讀 4444

我們訪問**走的是http協議,協議具有無連線無狀態的特性,對事物的處理不具有記憶能力,即每次請求不會記錄使用者的訪問行為。

我們在web專案中,很多時候需要將會話資料持久化記憶儲存,以便後續的程式能夠隨時呼叫和使用,比如使用者的登入等。

瀏覽器多次請求同一臺伺服器時,將資料持久化儲存的一種技術,就是會話技術。

會話技術的分類有cookie和session。

cookie:允許伺服器將資料持久化儲存在瀏覽器端的一種技術

分析原理圖說明:

1)瀏覽器要允許伺服器將資料儲存到瀏覽器端;

2)如果瀏覽器已經儲存了某台伺服器的cookie資料,那麼在接下來的請求中,都將攜帶上這些資料去請求伺服器

cookie操作

cookie資料本質上也是資料,基本的操作也是增刪改查。

新增:setcookie()。

我們可以在瀏覽器cookie會話資料區檢視到cookie資訊。

修改cookie:名不變,值改變。

刪除cookie資料

cookie資料的獲取(查詢)

cookie資料區和$_cookie陣列變數之間的關係:

(看不清可將網頁放大,或將另存到本地檢視)

通過分析原理圖:

1)cookie資料區是在瀏覽器端;

2)$_cookie變數會在請求之後程式執行之初初始化一次;

3)setcookie時並沒有直接去操作$_cookie變數,而是在響應時告訴瀏覽器接下來要去儲存一條cookie資料到瀏覽器端的會話資料區。

cookie資料的屬性設定

setcookie(名,值,有效期,有效路徑,有效域,是否安全傳輸,httponly)

有效期:通過第三個引數設定有效期。

當我們給0值或者不給值的時候表示預設的有效期。

預設的有效期為乙個會話週期:從訪問到瀏覽器關閉。

特殊用法:我們可以通過設定過期的時間來刪除乙個cookie資料

setcookie('age','45',time()-1);
有效路徑:通過第四個引數設定。不設定或者設定為空字串為預設情況。

預設情況是在當前目錄及當前目錄的子目錄下有效。

有效域:通過第五個引數設定。

不設定或者設定為空字串為預設情況。

預設情況表示當前網域名稱下有效。

是否安全傳輸:通過第六個引數設定。

不設定或者設定為false表示預設情況。

預設情況是http和https下都能獲取到cookie資料。

setcookie('age','45',0,'','',false);
httponly:通過設定第七個引數來設定。

不設定或者設定為false為預設情況。

預設情況cookie資料還能被其他指令碼語言所獲取。

測試通過js獲得cookie資料:

我們通過第七個引數來設定,禁止獲取:

cookie技術的侷限

1)資料儲存在瀏覽器端,安全性低。

2)如果有海量的會話資料,瀏覽器每次請求都會攜帶上這些cookie資料,將大量占用頻寬。

我們可以通過session技術解決上述侷限。

附:php_會話技術 — session

Cookie 會話跟蹤技術

伺服器的請求流程 特點 1.只能使用純文字 2.檔案有大小的限制 4kb 3.數量限制 50條左右 4.讀取有網域名稱的限制,不可跨域讀取 5.有時效性 設定cookie document.cookie name value 1.用等號去間隔cookie的名和值 3.沒有設定過期時間的cookie,...

會話技術之cookie

http協議具有無連線和無狀態的特點 在提高效率的同時會讓伺服器與瀏覽器變得冰冷 即使以很快的速度連續開啟兩次 伺服器依舊無法識別這是同乙個客戶 所以就需要使用會話技術使瀏覽器與伺服器相識 以及 可以讓瀏覽器訪問的不同指令碼之間資料共享 會話技術 包括 cookie技術和session技術 cook...

會話跟蹤技術 cookie

cookie是會話跟蹤技術的一種,是某些 為了辨別使用者身份而在儲存在使用者終端上的身份資訊。cookie cookie newcookie name value response.addcookie cookie 顯然,cookie的建立是通過兩個string型別引數,第乙個表示cookie名,第...