(储存在用户本地终端上的数据)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>