會話控制和cookie,該怎麼理解它們?不知道的要好好看看了!

什麼是會話控制?

如果想要理解會話控制,首先要理解“http是無狀態的協議”,換句話說就是HTTP協議沒有一個內建機制來維護兩個事物間的狀態,一個用戶在請求一個頁面後再請求另一個頁面時,http無法區分這兩個請求是來自同一用戶,導致服務器並不能區不同用戶的請求。如果要做到區分不同用戶的請求,就需要做會話控制。會話控制的意思是能夠在網站中根據一個會話跟蹤用戶。如果我們做到這點,根據其授權級別和個人愛好來顯示對應的內容。也可以根據會話控制記錄用戶的行為,比如電子商務網站常見的購物車功能。

會話控制和cookie,該怎麼理解它們?不知道的要好好看看了!

在php4以後的版本中,php自身包含了會話控制函數。引入了超全局變量引入,會話控制方法出現了一些變化。現在可以使用$_session超級全局變量。

怎麼理解基本會話功能?

php會話是通過會話id驅動的,且這個id是唯一的。會話id是一個加密的數字。它由php生成有生命週期保存在客戶端。它也可以保存在用戶機器裡的cookie中,或者通過URL傳遞。會話id可以理解成一把鑰匙,允許訪問一些特殊變量(也稱會話變量),這些變量內容保存在服務器端。會話id是客戶端唯一可見的信息。客戶端可以通過特定的條件下通過訪服務器的會話變量,使用cookie或者url看見會話id。默認情況下會話變量保存在服務器文件中。

會話控制和cookie,該怎麼理解它們?不知道的要好好看看了!

什麼是cookie?

cookie其實就是一小段信息,它可以由腳本保存在客戶端(瀏覽器)。也可以發送一個包含特定數據並且有如下格式http標題頭,從而在用戶機器設置一個cookie,set-Cookie:NAME=VALUE;[expires=DATE;][path=PATH][domain=DOMAIN_NAME;][secure],創建一個名為NAME,值為VALUE的cookie。其他參數是可選的。如果不設置失效日期的話,cookie將永遠有效。瀏覽器連接URL時,首先會搜索當地保存的cookie,如果有任何正在連接的url相關的cookie,瀏覽器會將它提交到服務器。

會話控制和cookie,該怎麼理解它們?不知道的要好好看看了!

PHP中的cookie設置和刪除

php中setcookie() 函數用於設置 cookie(setcookie() 函數必須位於 標籤之前),它的語法是:setcookie(name, value, expire, path, domain);。可以調用setcookie()來刪除cookie。

如果瀏覽器不支持 cookie 該怎麼辦?

如果您的應用程序或者瀏覽器不支持 cookie 的瀏覽器,可以採取表單傳遞數據,使用$_POST和$_GET傳遞數據。

關於“會話控制和cookie”先聊到這。每天學習一個知識點,每日寄語”經典語錄:不期待突如其來的好運,只希望所有的努力終有回報。”如轉載清標明出處。


分享到:


相關文章: