最近做页面碰到了cookie方面的问题,好好研究了一下,收集到一些知识,展示出来与大家共享,期望共同进步。
cookie的作用
cookie是存于用户硬盘的一个文件,这个文件通常对应于一个域名,当浏览器再次访问这个域名时,便使这个cookie可用。因此,cookie可以跨越一个域名下的多个网页,但不能跨越多个域名使用。
cookie文件的存放地址,当然浏览器要设置了保存cookie才可以看的到
例如在Windows 2000以及Windows xp中,cookie文件存储于documents and settings\userName\cookie\文件夹下。通常的命名格式为:userName@domain.txt。
*设置cookie
每个cookie都是一个名/值对,可以把下面这样一个字符串赋值给document.cookie:
document.cookie="userId=828";
如果要一次存储多个名/值对,可以使用分号加空格(; )隔开,例如:
document.cookie="userId=828; userName=hulk";
cookie的值通常要加密,常用的函数为encode(value),即userid=encode("1000101")
function setCookie(name,value,expires,path,domain,secure)
{
alert("cookieSet");
var curCookie=name+"="+encodeURI(value)+((expires)?";expires="+expires.toGMTString():"")+((path)?";path="+path:"")+((domain)?";domain="+domain:"")+((secure)?";secure="+secure:"");
document.cookie=curCookie;
}
*cookie取值
cookie都是以字符串的形式存起来的,所有的cookie字段都放在一起,所以为了可以获取摸个指定名称的cookie的值,需要编写一个通用的函数:
function getCookie(name)
{
if(document.cookie.length>0)
{
start=document.cookie.indexOf(name+"=")
if(start!=-1)
{
start=start+1+name.length;
end=document.cookie.indexOf(";",start);
if(end==-1)
{
end=document.cookie.length;
}
return decodeURI(document.cookie.substring(start,end));
}
}
return "";
}
*给cookie设置终止日期 (GMTString)
到现在为止,所有的cookie都是单会话cookie,即浏览器关闭后这些cookie将会丢失,事实上这些cookie仅仅是存储在内存中,而没有建立相应的硬盘文件。
在实际开发中,cookie常常需要长期保存,例如保存用户登录的状态。这可以用下面的选项来实现:
document.cookie="userId=828; expires=GMT_String";
其中GMT_String是以GMT格式表示的时间字符串,这条语句就是将userId这个cookie设置为GMT_String表示的过期时间,超过这个时间,cookie将消失,不可访问。例如:如果要将cookie设置为10天后过期,可以这样实现:
<script language="JavaScript" type="text/javascript">
<!--
//获取当前时间
var date=new Date();
var expireDays=10;
//将date设置为10天以后的时间
date.setTime(date.getTime()+expireDays*24*3600*1000);
//将userId和userName两个cookie设置为10天后过期
document.cookie="userId=828; userName=hulk; expire="+date.toGMTString();
//-->
</script>
*删除cookie
为了删除一个cookie,可以将其过期时间设定为一个过去的时间,例如:
<script language="JavaScript" type="text/javascript">
<!--
//获取当前时间
var date=new Date();
//将date设置为过去的时间
date.setTime(date.getTime()-10000);
//将userId这个cookie删除
document.cookie="userId=828; expire="+date.toGMTString();
//-->
</script>
*指定可访问cookie的路径
默认情况下,如果在某个页面创建了一个cookie,那么该页面所在目录中的其他页面也可以访问该cookie。如果这个目录下还有子目录,则在子目录中也可以访问。例如在www.xxxx.com/html/a.html中所创建的cookie,可以被www.xxxx.com/html/b.html或www.xxx.com/ html/ some/c.html所访问,但不能被www.xxxx.com/d.html访问。
为了控制cookie可以访问的目录,需要使用path参数设置cookie,语法如下:
document.cookie="name=value; path=cookieDir";
其中cookieDir表示可访问cookie的目录。例如:document.cookie="userId=320; path=/shop";
就表示当前cookie仅能在shop目录下使用。
如果要使cookie在整个网站下可用,可以将cookie_dir指定为根目录,例如:
document.cookie="userId=320; path=/";
*指定可访问cookie的主机名
和路径类似,主机名是指同一个域下的不同主机,例如:www.google.com和gmail.google.com就是两个不同的主机名。默认情况下,一个主机中创建的cookie在另一个主机下是不能被访问的,但可以通过domain参数来实现对其的控制,其语法格式为:
document.cookie="name=value; domain=cookieDomain";
以google为例,要实现跨主机访问,可以写为:
document.cookie="name=value;domain=.google.com";
这样,所有google.com下的主机都可以访问该cookie。
*cookie中的secure属性
Secure – 安全。指定cookie的值通过网络如何在用户和WEB服务器之间传递。这个属性的值或者是“secure”,或者为空。缺省情况下,该属性为空,也就是使用不安全的HTTP连接传递数据。如果一个 cookie 标记为secure,那么,它与WEB服务器之间就通过HTTPS或者其它安全协议传递数据。secure是一个布尔类型的值,secure值为true时,在http中是无效的,在https中才有效。
分享到:
相关推荐
Cookie、Session机制详解 Cookie机制是Web程序中常用的技术,用来跟踪用户的整个会话。Cookie通过在客户端记录信息确定用户身份。Cookie机制可以弥补HTTP协议的无状态特性,使服务器可以从客户端获取用户信息,以便...
根据提供的文件信息,以下是对文件《Cookie,Session,Token详解.pdf》中知识点的详细解读: 1. Cookie的相关知识 1.1 Cookie不是缓存。它是由服务器创建并存储在客户端的一小段文本信息,通常以字典(键值对)的...
在Web开发中,为了实现服务器与客户端之间的会话管理,常用的技术之一就是Cookie-Session机制。本文将深入剖析Cookie-Session的工作原理及其在实际应用中的作用。 #### 二、基础知识 ##### 2.1 Cookie概述 Cookie...
### 关于Java应用Cookie知识点详解 #### 一、Cookie简介 Cookie是一种常用的技术,用于存储用户的访问信息。在Web开发中,服务器可以将少量的信息发送到客户端浏览器,并存储在客户端,这种信息就是Cookie。当...
### 知识点详解 #### 一、Cookie操作类概览 在Web开发中,Cookie是一种常用的技术,用于存储用户的一些基本信息,以便于网站能够识别并记住用户的状态。本篇文章介绍了一个JavaScript实现的简单Cookie操作类,该类...
### Cookie及时生效详解 在Web开发中,Cookie是一种常用的技术,用于存储用户信息或跟踪用户的浏览行为等。本文将深入探讨“Cookie及时生效”的概念及其实现方法,特别关注PHP环境下如何确保Cookie设置后能立即生效...
### PHP中高级常用知识点面试题解析 #### 一、如何取得来访者的IP地址? 在PHP中,获取客户端IP地址可以通过`$_SERVER`全局数组中的多个元素来实现: 1. **`$_SERVER['REMOTE_ADDR']`**:直接获取客户端IP地址。 2...
Cookie是一种在客户端存储少量数据的技术,常用来保持用户状态,如会话信息、用户偏好等。本文将深入解析cookie的工作原理和如何通过`Document.cookie`来设置和获取cookie。 **1. Cookie机制与Session机制的区别** ...
### Java JSP Cookie 学习资料详解 #### 一、Cookie 概述 Cookie 是一种在客户端(通常是用户的浏览器)存储信息的技术。当用户访问一个网站时,服务器可以通过 HTTP 响应头 `Set-Cookie` 向客户端发送 Cookie。...
### Cookie的应用知识点详解 #### 一、Cookie的基本概念 **标题**:“Cookie的应用.doc” **描述**:“Cookie的应用.doc” **标签**:“Cookie” **部分内文摘要**: - **位置**:文中提到了Windows 7及XP系统...
**jQuery Cookie 插件详解与应用** 在网页开发中,Cookie 是一种常用的数据存储机制,用于在客户端存储少量数据。`jQuery.cookie.js` 是一个针对 jQuery 框架的插件,它为开发者提供了简单易用的接口来处理 Cookie ...
这个函数有多个参数,其中name、value、expire是常用的三个参数。name是Cookie的名称,value是Cookie的值,expire是Cookie的过期时间。path和domain用于限制Cookie的作用范围,secure表示Cookie是否仅通过安全的...
#### 二、知识点详解 ##### 1. Servlet基础 Servlet是Java平台上的服务器端技术,用于扩展应用程序服务器的功能。它被设计成一个轻量级容器,提供对HTTP协议的支持,并可以处理各种类型的网络请求。Servlet的主要...
总的来说,"ssh框架搭建详解与登录实例"涵盖了Java Web开发中的许多关键知识点,包括框架集成、数据库操作、MVC设计模式、用户认证等。通过实践这个实例,开发者能够深入理解SSH框架的工作原理,并提升企业级应用...
- GET:获取资源,是最常用的方法。 - POST:向指定资源提交数据进行处理请求,如表单提交。 - PUT:更新指定资源。 - DELETE:删除指定资源。 - HEAD:类似于GET,但只返回响应头,不返回主体部分。 - OPTIONS:...
### Java面试题题库详解 #### 1. Java基本概念:String是什么?它与其它类型有何不同? **知识点概述:** - **String 类型的基本理解:** 在 Java 中,`String` 是一个不可变的对象,它代表了字符序列。 - **与...
《HttpClient使用详解》 HttpClient是Apache软件基金会的HTTPComponents项目的一部分,它是一个强大的HTTP客户端库,广泛用于Java开发者在处理HTTP协议时的需求。这个8页的PDF文档详细介绍了HttpClient的使用方法,...
如果读者对Yii框架有进一步的学习兴趣,可以参考本站提供的相关专题文章,了解更多关于Yii框架的入门知识、常用技巧、模板使用、面向对象程序设计以及数据库操作等内容。这些资源将对使用Yii框架进行PHP程序设计的...
本书不仅涵盖了JavaScript的基础知识,还涉及了CSS、W3C DOM、Cookie、正则表达式以及Ajax等相关的前端技术。 #### 核心知识点解析 ##### JavaScript编程结构 - **变量与数据类型**:JavaScript支持多种数据类型,...
### Web服务器CCookie类知识点详解 #### 一、引言 在Web开发中,Cookie是一种常用的客户端存储技术,用于记录用户的行为数据和个人偏好等信息。本文将深入解析一个自定义的`CCookie`类,该类实现了基本的Cookie...