`

JS设置Cookie,及COOKIE的限制

    博客分类:
  • js
阅读更多

在Javascript脚本里,一个cookie 实际就是一个字符串属性。当你读取cookie的值时,就得到一个字符串,里面当前WEB页使用的所有cookies的名称和值。每个cookie除了 name名称和value值这两个属性以外,还有四个属性。这些属性是: expires过期时间、 path路径、 domain域、以及 secure安全。

Expires – 过期时间。指定cookie的生命期。具体是值是过期日期。如果想让cookie的存在期限超过当前浏览器会话时间,就必须使用这个属性。当过了到期日期时,浏览器就可以删除cookie文件,没有任何影响。

Path – 路径。指定与cookie关联的WEB页。值可以是一个目录,或者是一个路径。如果http://www.zdnet.com/devhead /index.html 建立了一个cookie,那么在http://www.zdnet.com/devhead/目录里的所有页面,以及该目录下面任何子目录里的页面都可以 访问这个cookie。这就是说,在http://www.zdnet.com/devhead/stories/articles 里的任何页面都可以访问http://www.zdnet.com/devhead/index.html建立的cookie。但是,如果http: //www.zdnet.com/zdnn/ 需要访问http://www.zdnet.com/devhead/index.html设置的cookes,该怎么办?这时,我们要把cookies 的path属性设置成“/”。在指定路径的时候,凡是来自同一服务器,URL里有相同路径的所有WEB页面都可以共享cookies。现在看另一个例子: 如果想让 http://www.zdnet.com/devhead/filters/ 和http://www.zdnet.com/devhead/stories/共享cookies,就要把path设成“/devhead”。

Domain – 域。指定关联的WEB服务器或域。值是域名,比如zdnet.com。这是对path路径属性的一个延伸。如果我们想让 catalog.mycompany.com 能够访问shoppingcart.mycompany.com设置的cookies,该怎么办? 我们可以把domain属性设置成“mycompany.com”,并把path属性设置成“/”。不能把cookies域属性设置成与设置它的服务器的 所在域不同的值。

Secure – 安全。指定cookie的值通过网络如何在用户和WEB服务器之间传递。这个属性的值或者是“secure”,或者为空。缺省情况下,该属性为空,也就是 使用不安全的HTTP连接传递数据。如果一个 cookie 标记为secure,那么,它与WEB服务器之间就通过HTTPS或者其它安全协议传递数据。不过,设置了secure属性不代表其他人不能看到你机器本 地保存的cookie。换句话说,把cookie设置为secure,只保证cookie与WEB服务器之间的数据传输过程加密,而保存在本地的 cookie文件并不加密。如果想让本地cookie也加密,得自己加密数据。


JS设置Cookie的方法

   function setCookie(c_name,value,expiredays) {
    var exdate=new Date();
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie=c_name+ "=" +escape(value)+
    ((expiredays==null) ? "" : ";expires="+exdate.toGMTString())+";path=/";
   }
   function getCookie(c_name) {
    if (document.cookie.length>0)
    {
     c_start=document.cookie.indexOf(c_name + "=");
     if (c_start!=-1)
     {
      c_start=c_start + c_name.length+1 ;
      c_end=document.cookie.indexOf(";",c_start);
      if (c_end==-1) c_end=document.cookie.length;
      return unescape(document.cookie.substring(c_start,c_end));
     }
    }
    return "";
   }

在jsp页面添加cookie解说如上,推荐下朋友开的淘宝店筱夜宫主(http://xiaoyegongzhu.taobao.com/)DR.HU 胡博士美妆~坐在电脑旁的汉子姑娘注意脸部护理呀,做了程序媛,也要美丽啊。。。小店有优惠码:YE4450,报优惠码,抵两元券,(⊙o⊙)…好啦,实验过的代码奉上,(*^__^*) 嘻嘻……

下面是我的代码:

<script language="JavaScript">
function getCookie(objName) {//获取指定名称的cookie的值
    var arrStr = document.cookie.split("; ");
    for ( var i = 0; i < arrStr.length; i++) {
        var temp = arrStr[i].split("=");
        if (temp[0] == objName)
            return unescape(temp[1]);
    }
}
//同一服务器下,不同子项目,要设置path
function addCookie(objName,objValue){      //为父窗口添加cookie
	var str = objName + "=" + escape(objValue)+";path=/";
	document.cookie = str;
}
function init()
{	
	addCookie("FAP_MID","http://xiaoyegongzhu.taobao.com");
	var arrStr = document.cookie.split("; ");
    for ( var i = 0; i < arrStr.length; i++) {
        //var temp = arrStr[i].split("=");
        alert(arrStr[i]);
    }
	//alert(getCookie("FAP_SID"));
	
	//document.autoJumpForm.submit();
}
</script>

 

一、浏览器允许每个域名所包含的 cookie 数:Microsoft 指出 Internet Explorer 8 增加 cookie 限制为每个域名 50 个,但 IE7 似乎也允许每个域名 50 个 cookie( color=&quot;#006da3&quot;&gt;《Update to Internet Explorer’s Cookie Jar》)。Firefox 每个域名 cookie 限制为 50 个。Opera 每个域名 cookie 限制为 30 个。Safari/WebKit 貌似没有 cookie 限制。但是如果 cookie 很多,则会使 header 大小超过服务器的处理的限制,会导致错误发生。注:每个域名 cookie 限制为 20 个将不再正确!二、当很多的 cookie 被设置,浏览器如何去响应。除 (可以设置全部cookie,不管数量多少),有两个方法:最少最近使用(least recently used (LRU))的方法:当 Cookie 已达到限额,自动踢除最老的 Cookie ,以使给最新的 Cookie 一些空间。 Internet Explorer 和 Opera 使用此方法。Firefox 很独特:虽然最后的设置的 Cookie 始终保留,但似乎随机决定哪些 cookie 被保留。似乎没有任何计划(建议:在 Firefox 中不要超过 Cookie 限制)。三、不同浏览器间 cookie 总大小也不同:Firefox 和 Safari 允许 cookie 多达 4097 个字节, 包括名(name)、值(value)和等号。Opera 允许 cookie 多达 4096 个字节, 包括:名(name)、值(value)和等号。Internet Explorer 允许 cookie 多达 4095 个字节, 包括:名(name)、值(value)和等号。注:多字节字符计算为两个字节。在所有浏览器中,任何 cookie 大小超过限制都被忽略,且永远不会被设置。





 

分享到:
评论

相关推荐

    JS添加Cookie的例子

    在JavaScript(JS)中,Cookie是一种非常常见的技术,用于存储客户端的数据。Cookie主要由服务器端设置,然后由浏览器在每次请求该服务器时自动发送。在本文中,我们将深入探讨如何使用JavaScript来创建、读取、更新...

    js对cookie操作的封装

    在Web开发中,Cookie是一种广泛使用的机制,用于在客户端存储小量的数据,这些数据可以在用户与网站交互时发送回服务器。...同时,要注意处理Cookie的大小限制(通常为4KB)以及跨域、安全等方面的问题。

    jquery 设置cookie、删除cookie、获取cookie

    jQuery 提供了一个非常方便的方式来处理这些操作,本文将详细介绍如何利用 jQuery 和其插件来设置、获取及删除 Cookie。 #### 二、环境搭建 首先,确保您的项目环境中已经包含了 jQuery 库。可以使用 CDN 方式引入...

    js+cookie购物车

    在这个“js+cookie购物车”项目中,我们看到开发者使用JavaScript和Cookie技术来实现这一功能。下面我们将详细探讨JavaScript、Cookie以及它们如何在购物车场景中结合使用。 JavaScript是一种强大的客户端脚本语言...

    cookie访问限制ip

    要使用JavaScript实现Cookie的IP限制,我们需要在设置Cookie时记录该Cookie关联的IP地址。以下是一个简单的示例: ```javascript function setCookie(name, value, days, ipAddress) { var expires = ''; if ...

    JS操作Cookie

    JavaScript(简称JS)是一种广泛用于网页和网络应用的编程语言,尤其在客户端脚本中扮演着重要角色。Cookie是Web开发中的一个关键概念,它允许网站存储和检索用户信息,如浏览历史、登录状态等。在本文中,我们将...

    cookiejs一个用于处理浏览器cookie的简单轻量级JavaScriptAPI

    在使用Cookie.js时,需要注意浏览器对cookie的一些限制,例如每个域名下的cookie数量有限制,每个cookie的大小不能超过4KB,以及cookie的生命周期不能无限长。开发者需要根据实际需求合理设置cookie的参数,以确保其...

    JS cookie Java cookie regex 整理结果

    JavaScript(JS)Cookie和Java Cookie是Web开发中用于存储客户端数据的两种常见方式,而正则表达式(Regex)在处理字符串和数据匹配时扮演着重要角色。下面将详细阐述这三个知识点及其应用。 首先,JavaScript ...

    CookiesjsJavaScript客户端的Cookie操作库

    4. **Cookie限制:** 浏览器对每个站点的Cookie数量和大小有限制,开发者需注意不要超出这些限制,否则可能导致性能问题。 5. **应用场景:** Cookies.js 主要用于实现用户会话管理、个性化设置、跟踪用户行为等...

    js操作cookie.pdf

    JavaScript可以通过document.cookie属性来读取、设置和删除cookie。document.cookie是一个字符串,包含了当前域下的所有cookie,各cookie之间以分号和空格分隔。 3. 读取Cookie 要读取特定名称的cookie,可以使用...

    jquery.cookie.js包

    `jquery.cookie.js`插件由Karsten Dambekalns开发,它是jQuery的一个轻量级解决方案,用于读取、设置和删除Cookie。使用这个插件,开发者可以方便地进行以下操作: 1. **设置Cookie**:通过`.cookie()`方法,我们...

    JS实现的目录树,可以无限制级刷新,用js操作cookie实现

    在JavaScript(JS)编程中,实现一个可无限刷新的目录树结构,并利用JavaScript操作Cookie来存储用户的相关数据或设置,是一项常见的任务。这样的功能在网页应用中尤其常见,例如文件管理系统、网站导航或者多层级...

    JS Cookie的操作

    这篇博客“JS Cookie的操作”将深入探讨如何利用JavaScript进行Cookie的创建、读取和删除,以及一些相关的实用技巧。 一、Cookie的基本概念 Cookie是由服务器端设置并发送到客户端(浏览器)的一小段文本信息,...

    js做的cookie记忆功能

    1. **设置Cookie**:当用户在表单中输入数据并提交时,可以捕获这些数据,并通过JavaScript的`document.cookie`来设置一个新cookie。例如,我们可以创建一个名为`searchHistory`的cookie,其值为用户的输入。`...

    js操作cookie(增删改查)

    这篇博客“js操作cookie(增删改查)”可能详细讲解了如何使用JavaScript进行Cookie的添加、删除、修改和查询操作。虽然没有提供具体的内容,但我可以为你提供一个通用的教程来介绍这些基本概念。 1. **添加Cookie*...

    jquery.cookie.js 以及用法 cookie读取与存储

    总结,`jquery.cookie.js`简化了JavaScript对Cookie的操作,使得在Web应用中管理用户数据变得更加便捷。然而,随着Web Storage(localStorage和sessionStorage)以及IndexedDB等现代存储技术的出现,对于大量数据或...

    jquery下的cookie.js文件

    jQuery.cookie.js主要依赖于Document.cookie接口,这是一个内置的JavaScript属性,用于设置和获取Cookie。但由于其原始API限制较多,如不支持跨域、最大长度限制等,jQuery.cookie.js进行了封装,解决了这些问题。它...

Global site tag (gtag.js) - Google Analytics