(儲存在用戶本地終端上的數據)php
"_octo=GH1.1.969433396.1497770397; _ga=GA1.2.1764394916.1497770397; _gat=1; tz=Asia%2FShanghai" html
cookie存在於瀏覽器當中的jquery
服務器返回的響應頭裏面的信息:cookie的格式,鍵值對json
Set-Cookie:PHPSESSID=ot684bvd4n6mlpmsg2pbsubb14; expires=Mon, 19-Jun-2017 07:24:17 GMT; path=/ 瀏覽器
cookie 是存在於客戶端瀏覽器的,是能夠設置的,也能夠獲取的 document.cookie = ""; document.cookie 緩存
同域名下面的cookie是共享的 studyit.com/login studyit.com/index服務器
根目錄下面的cookie信息,是能夠被全部的子目錄訪問的,可是子目錄的cookie信息,是不能被父級訪問到的cookie
相似 於做用域session
不一樣域名之間的cookie信息不能互相訪問,不共享併發
cookie是能夠設置過時時間的,默認的生命週期就是頁面關閉的時候
<script> document.cookie="name=zhangsan;age=20;";//雖然用分號隔開了,可是內容不能所有獲取到
document.cookie="name=zhangsan;"; document.cookie="age=20;"; //這樣寫是不會將前面的給覆蓋掉,可是大小是有限制的,大約在4k
//由於瀏覽器每次發送請求的時候都會默認攜帶cookie,若是cookie的數據太大了會影響傳輸速度和訪問效率
console.log(document.cookie); // 由於cookie就是一個字符串,設置的時候,沒有問題,可是獲取裏面的某相cookie值的時候,很是的不方便,所以可使用 jquery.cookie這個插件來完成
</script>
Session是存在服務器端的,至關於有一個session存區,每當瀏覽器發送請求的時候,若是不是第一次請求的話,都會攜帶以前的cookie信息到服務器端,這個時候,就能夠和session存儲區的sessionid進行匹配,若是匹配成功,則證實是已經登陸的用戶,若是沒有,則證實沒有登陸過,或是沒有訪問
Session也是有過時時間的,默認是20分鐘。這個20分鐘是一個滑動時間
由於只能請求過服務器以後,纔會由服務器給瀏覽器發送一條session字符串,存儲到瀏覽器的cookie當中
第二次請求的時候,瀏覽器就會攜帶着存儲到cookie中的信息一併發送給服務器
服務器接受請求,並得到cookie中的信息,而後和session存儲區的數據進行匹配,若是匹配成功,則證實以前已經登錄過
則能夠進行後續的跳轉,不然跳轉到登錄頁面
php方式測試cookie
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p>使用PHP的方式測試...</p>
</body>
</html>
<script>
var xhr = new XMLHttpRequest(); xhr.open('get','setCookie.php'); xhr.send(); </script>
setCookie.php:
<?php header("Content-type:text/html;charset=utf-8"); // echo '請求成功了';
setcookie('gender','mmmm'); // cookie也是能夠在服務器端進行設置的,是能夠跟隨響應報文,返回到瀏覽器端,存儲在瀏覽器的cookie當中 // 當再次再來訪問的時候,會獲取到帶來的cookie信息,和服務器的session存儲區內的信息進行匹配,若是匹配成功則能夠進行其它的訪問操做 // var_dump($_COOKIE); // $_COOKIE能夠接收發送過來的全部的cookie信息
echo json_encode($_COOKIE); // json_encode 是將 $_COOKIE中的內容轉換成對象形式的字符串
?>
session與cookie 小結:
使用jQuery.cookie.js這個插件來設置cookie
首先這個插件是依賴於jQuery的,所以使用的時候必定要先引入jQuery文件,而後再使用插件
$.cookie("name","zhangsan");
$.cookie(),這個方法獲取的是一個對象,所以存取cookie就變的很是方便
<title>Title</title>
<script src="views/public/assets/jquery/jquery.js"></script>
<script src="views/public/assets/jquery-cookie/jquery.cookie.js"></script>
<script>
// $.cookie('name','lisi'); // console.log($.cookie()); // console.log($.cookie('sex')); //使用這種方式來獲取cookie的值就方便多了
$.cookie('name','zhangsan',{path:'/',expires:new Date('2017-06-20 18:00:00')}); </script>
</head>
<body>
<p>這是使用jquery.cookie.js在設置cookie了...</p>
</body>