cookie是指web浏览器存储的少量数据,该数据会在每次请求一个相关的URL时自动传到服务器中(转)
基本概念:cookie是指web浏览器存储的少量数据,该数据会在每次请求一个相关的URL时自动传到服务器中。
以博客园为例,我们看看cookie有哪些属性:
1、Name:cookie的名称;
2、Value:cookie名称对应的值;
3、Domain:设置cookie作用域。默认是当前web服务器的主机名。设置该属性可使大型网站子域之间共享cookie,不过只能设置为当前服务器的域。
举个栗子:order.example.com域下的服务器想读取catalog/example.com域下设置的cookie,则将domain设为.example.com。
既然讲到了cookie作用域,就多说一点,cookie作用域是通过文档源和文档路径来确定的,默认作用域和创建它的页面有关,对该页面及该页面同目录或子目录的其他页面可见。
4、Path:设置cookie作用域。来自同一个服务器的页面,只要其URL以指定的路径前缀开始,都可以共享cookie。(注意该属性不能用作访问控制机制)
举个栗子:http://www.test.com/catalog/widgets/index.html页面创建了一个cookie,如果path属性设置为/catalog,那么该cookie对于http://www.test.com/catalog/order.html可见;如果path属性设置为/,那么该cookie对于http://www.test.com的服务器上的页面都可见。
5、Expires/Max-Age:控制cookie的有效期。cookie默认的有效期只能持续在web浏览器的会话期间,一旦用户关闭浏览器,cookie保存的数据就消失了,可以通过设置该属性来延长cookie有效期,浏览器会将cookie数据存储在一个文件中,到了有效期才会删除它。
6、Size:cookie大小。每个cookie保存的数据(名字和值的总量)不能超过4KB。
7、HTTP
8、Secure:表明cookie值以何种形式通过网络传递的布尔值。cookie默认以不安全的形式传递(即默认值为 false),一旦被标识为安全的,那就不能自动传递,只有浏览器和服务器通过HTTPS或其他安全协议连接时才传递。
了解基础知识后,我们来实践一下,对cookie进行读写。
将过期时间设为1天的示例:
function setCookie(key, val, options) {
options = options || {};
var expires = options.expires; if (typeof (expires) === "number") {
expires = new Date();
expires.setTime(expires.getTime() + options.expires);
} document.cookie =
key + "=" + escape(val)
+ (expires ? ";expires=" + expires.toGMTString() : "")
+ (options.path ? ";path=" + options.path : ";path=/")
+ (options.domain ? "; domain=" + options.domain : "");
};
setCookie('name','yun',{expires:1*24*60*60*1000});
获取cookie值的示例:
function getCookie(key) {
var a, reg = new RegExp("(^| )" + key + "=([^;]*)(;|$)");
if (a = document.cookie.match(reg)) {
return unescape(a[2]);
} else {
return "";
}
};
console.log(getCookie('name'));
参考资料:
1、Flanagan, D. javascript权威指南[M]. 北京:机械工业出版社, 2012. 586-592
http://www.cnblogs.com/lovelyun/p/5401248.html
最新文章
- HDU1568斐波那契推理
- win7下MariaDB10.0的my.ini配置文件的位置
- POJ 2175 spfa费用流消圈
- Android多点触控(图片的缩放Demo)
- 关于oracle数据库(11)
- Apache 与tomcat区别
- UI设计学习路线图
- Java 优先队列
- pydoc用法
- 修改CentOS服务器时间为北京时间
- SQL Data Compare 对比 SQLserver数据
- Unity3D学习笔记(三十):Lua
- absolute之后居中宽度自适应
- listView 滑动时 滑到一半自动滑动到对应的位置
- (转)在WCF服务的ServiceReferences.ClientConfig中使用相对路径
- Java 与C++区别:复写(override)
- Android Studio 之 环境搭建
- 系统一般信息监控查看shell.磁盘,负载等达阀值告警机制,改进测试中.
- Extended Backus–Naur Form
- IIS负载均衡-Application Request Route详解第一篇: ARR介绍
热门文章
- HTML5 input placeholder 颜色 改动
- JS - 侧边导航收缩伸展
- Selenium WebDriver TestNg Maven Eclipse java 简单实例
- python 在 eclipse 上的编码配置问题
- OCA读书笔记(1) - 浏览Oracle数据库架构
- jdom dom4j解析xml不对dtd doctype进行验证(转)
- LV在系统重启后不能自动激活(boot.lvm&;after.loca)
- eclipse不能进入debug
- java32至md5加密
- C文件操作的语言fgets()