随手笔记Cookie
1. cookie
HTTP 很重要一個特點就是無狀態(每一次見面就是初次見面),如果單純的希望通過我們的服務端程序去記住每一個訪問者是不可能的,所以必須借助一些手段或者說技巧讓服務器記住客戶端,這種手段就是Cookie。
Cookie就像是在超級市場買東西拿到的小票,由超市(server)發給消費者(Browser),超市方面不用記住每一個消費者的臉,但是他們認識消費者手里的小票(Cookie),可以通過小票知道消費者之前的一些消費信息(在服務端產生的數據)
2.PHP中操作Cookie
http://php.net/manual/zh/function.setcookie.php
還有一種方式可以設置cookie
header('Set-Cookie:key=value');2.獲取cookie
var_dump($_COOKIE);3刪除cookie
//只傳一個參數就是刪除cookie setcookie('key');4,設置過期時間
//setcookie的第三個參數 //不傳遞就是會話級別的Cookie(關閉瀏覽器就會自動刪除) setcookie('key','value',過期時間);5,cookie的默認作用域是’/‘根目錄
//setcookie的第四個參數,傳遞的是一個路徑 setcookie('key','value',過期時間,path路徑);6,setcookie還有第五個參數和第六個參數,可以自己去閱讀文檔
3.js中如何操作Cookie
//獲取cookie(這里會返回所有的cookie的一個字符串結果) console.log(document.cookie); //設置cookie document.cookie = 'key=value'; //設置cookie的過期時間(可以在客戶端操作!) document.cookie = 'cookie的key=cookie的value;expires=這里需要你拼接的過期時間';4.Cookie中的問題及解決方案
因為客戶端可能會偽造一個cookie(設置cookie的過期時間等)
這里我們就要解決這個問題,為此就需要學習session
Session
官話:由于Cookie是服務端發給客戶端由客戶端本地保存的。換而言之客戶端可以在本地對其隨意操作,包括刪除和修改。如果客戶端隨意偽造一個Cookie的話,對于服務端是無法辨別的,就會造成服務端被蒙蔽,構成安全隱患。于是乎就有了另外一種基于Cookie基礎之上的手段:Session
//開啟session session_start(); //設置session $_SESSION['key'] = 'value'; //刪除一個session unset($_SESSION['key']); //取一個session(這里取的值的類型,與存儲值的類型一致,假如存儲的是一個數字,取出來的值也是一個數字,而不是一個字符串,如$_COOKIE['key']取出來的就是一個字符串) $_SESSION['key'];Session區別于Cookie一個很大的一個地方就是:Session數據存在了服務端,而Cookie存在了服務端,而Cookie存在了客戶端本地,存在服務端最大的優勢就是,不是用戶想怎么改就怎么該了
總結
以上是生活随笔為你收集整理的随手笔记Cookie的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos桌面版配置ip_CentOS
- 下一篇: Shiro RememberMe 1.2