cookie
2017-10-01 本文已影响0人
pingping_log
- 是浏览器中一块存储数据的区域!
- 我们可以通过js代码,进行数据的存和取工作!
- cookie在存储的时候,是以域名为单位的!各个域名之间cookie不可以共享。
- cookie存储有时限的,默认情况下,浏览器关闭,cookie就会消失, 可以进行手动的设置,想让他什么时候过期都可以
- cookie存储是有大小限制的,每个域名下面,最多存4KB
- cookie存储是分路径的, 子路径中可以访问父路径中的cookie内容,但是父路径不能访问子路径中的存储的cookie, 一般情况下,我们都将cookie存储在根目录下,这样保证全网站所有的页面都能访问到, cookie的存储路径是可以设置的
- cookie中存储的信息,会伴随着每一次请求,发送给服务器!!
- cookie中不会存储大量的数据,第一:有容量限制4k 第二:因为每次请求都会附带着cookie,那么如果存储数据量过大,会影响请求效率!!
- http://studyit.com/dashboard/index 在这个路径下存一个cookie
- http://studyit.com/ 这个路径下是访问不到上面存的cookie
//通过js代码来操作cookie
//1. 获取
console.log(document.cookie);
//2. 存储
document.cookie = "name=lee;expires=" + new Date("2017-9-9 15:22:30").toGMTString();
document.cookie = "age=18;path=/";
- 设置cookie的过期时间可以通过在键值对后面加上一个expires=GMT时间字符串,就可以设置好在指定的时间过期。
- cookie在存储的时候,默认的路径就是网页当前的路径,我们可以通过在键值对后面加上 path=路径 来手动设置。
-
cookie的存储语法:
document.cookie="键=值;expires=过期的GMT时间;path=要存储的路径"
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script>
//Object.defineProperty
//给cookie属性添加了一个set方法,在赋值的时候会自动调用set方法
var obj = {};
//要给obj对象添加一个name属性,第三个参数中的对象里,是关于这个属性的一些设置
Object.defineProperty(obj, "name", {
set: function(value){
// console.log("设置方法被调用了");
this._name = this._name || "" ;
this._name += value;
},
get: function(){
return this._name;
}
})
console.log(obj);
obj.name = "张学友";
obj.name = "刘德华";
obj.name = "张国荣";
console.log(obj.name);
</script>
</body>
</html>
jquery.cookie插件的使用
参见 https://github.com/carhartl/jquery-cookie
在PHP中操作
<?php
//取
var_dump($_COOKIE);
//存
setcookie("age",18);
?>
//cookie是一个浏览器中的存储空间
//但是在服务器端可以向cookie中存储数据,以及获取cookie中的内容