中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP中的cookie是什么

發布時間:2021-06-30 16:33:59 來源:億速云 閱讀:150 作者:chen 欄目:開發技術

這篇文章主要講解了“PHP中的cookie是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“PHP中的cookie是什么”吧!

什么是cookie

cookie,即小餅干,是保存在用戶代理端(瀏覽器是最常見的用戶代理)的一些數據片段。瀏覽網頁時,瀏覽器會將 當前頁面有效的 cookie放在請求的頭部發送到服務端。

cookie組成

cookie由以下幾部分組成:

domain,cookie所屬的域名。瀏覽器發送cookie時,會檢查cookie所屬的域名,相符才會發送。瀏覽器會將tlanyan.me域下的cookie發送到www.tlanyan.me或者dev.tlanyan.me的頁面請求中,但不會發送給www.baidu.com。同樣,dev.tlanyan.me的cookie不能發送給tlanyan.me,因為限定了域名為dev子域。

path,cookie所屬路徑。設置為/author中的cookie不會發送到/category路徑下,但是設置路徑為/的cookie會發送到所有頁面請求。

name, cookie的名稱(鍵名)。

value, cookie的值(內容)。

expires,過期時間。

secure,是否僅在https時才會傳送該cookie。

httponly,是否只用作http傳遞用。當設置為true時,瀏覽器端的腳本語言將無法訪問到該cookie。

cookie的用途

cookie主要用在以下方面:

http是無狀態的協議,為了維持會話需要額外的數據做標記,cookie是最常用的手段。常見的PHPSESSID和JSESSIONID這兩類cookie,分別用在PHP和Java web應用中維持會話。

有些數據需要存放在客戶端,cookie是一種選擇。用戶勾選“下次不再提示”后,該標志可保存到客戶端,再次訪問程序讀取設定再決定是否顯示。隨著HTML 5的普及,這部分功能正慢慢被localStorage取代。

PHP端的cookie操作

讀取cookie可以通過$_COOKIE超全局變量讀取到用戶端傳來的所有cookie。$_COOKIE是一個數組,可以遍歷讀取發送過來的cookie的名稱和值。瀏覽器只發送了cookie的鍵值到服務端,故而無法讀取到cookie的domain/path/exipres等信息,因為。

PHP提供了setcookie函數來發送cookie到客戶端。setcookie的函數簽名是:

bool setcookie ( string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]] )

參數與cookie的組成內容相對應: expires默認為0,表示僅當前會話有效,用戶關閉瀏覽器后該cookie將被清除;path默認為當前頁面路徑,即網址最后一個反斜杠前的部分;domain默認為當前頁面的域名,如果要擴大使用范圍,可設置為父級域名或者頂級域名; httponly默認為false,建議設置為true避免XSS攻擊。

刪除cookie,只需要設置cookie的expires為過去的時間戳即可,例如 time() – 3600。所以要刪除foo這個cookie,代碼可以為

setcookie('foo', '', time() - 3600);

cookie的良好實踐

從cookie字面意思便可看出,保存的是數據片段。web開發中cookie使用的頻率比較高,應該多加以理解。以下是一些使用cookie的良好實踐:

不應該在cookie中保存過大和過多的數據;
cookie在客戶端和傳輸中是明文可見的,不應該在cookie中保存敏感信息;
為了站點和用戶安全,盡可能將cookie的httponly屬性設置為true;
cookie是客戶端完全控制的,也屬于外部輸入,服務端不可盲目相信,應對其進行過濾。
其他

cookie是隨請求發送而來,隨響應而設置到客戶端。理解了這個過程,就可以明白一些新手常見的問題,例如以下代碼:

if (!isset($_COOKIE['foo']) {
   setcookie('foo', 'foobar');
 } 
 $foo = $_COOKIE['foo'];

在未設置foo這個cookie的情況下,第5行運行會出錯。原因在于setcookie是設置本次響應的cookie信息,需要瀏覽器接收到響應并設置后,才能在后續的請求中附帶上該cookie,并沒有反應到本次請求上。

同理,cookie存在于請求和響應的頭部信息中,而頭部應該在請求正文之前,所以setcookie的函數上下文使用限制同header函數,即:在此之前不能已經發送過響應正文。

感謝各位的閱讀,以上就是“PHP中的cookie是什么”的內容了,經過本文的學習后,相信大家對PHP中的cookie是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

德江县| 商都县| 德格县| 江津市| 石台县| 彝良县| 姚安县| 称多县| 嘉义市| 陕西省| 镇平县| 安庆市| 安西县| 环江| 桂林市| 蒙阴县| 历史| 余江县| 巴楚县| 利辛县| 万源市| 崇文区| 南充市| 玛沁县| 邢台市| 扬州市| 老河口市| 武胜县| 黎平县| 渭源县| 柏乡县| 阿鲁科尔沁旗| 垫江县| 铜梁县| 永城市| 自治县| 吴堡县| 三门峡市| 江阴市| 富平县| 新化县|