`
wenjinglian
  • 浏览: 807590 次
  • 性别: Icon_minigender_1
  • 来自: 株洲->深圳
社区版块
存档分类
最新评论

cookie的作用域

    博客分类:
  • Web
阅读更多

[转]cookie的作用域

 

当我们给网站设置cookie时,大家有没有发现在网站的其他域名下也接收到了这些cookie。这些没用的cookie看似不占多少流量,但如果对一个日PV千万的站点来说,那浪费的资源就不是一点点了。因此在设置cookie时,对它的作用域一定要设置准确了。

我们都知道在PHP中用setcookie 来设置网站的cookie,该函数的用法如下:

bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string$domain [, bool $secure = false [, bool $httponly = false ]]]]]] )
 

今天我们就来探讨一下它的第五个参数$domain,因为它决定了cookie的作用域。

现在有如下3个域名,一个顶级域名、一个二级域名和一个三级域名:

① zydya.com
②blog.zyday.com
③one.blog.zyday.com

  • 首先在①zyday.com域名下设置cookie,做四次测试,分别设置domain参数为空、'zyday.com'、'blog.zyday.com'与'one.blog.zyday.com'。
    √表示该域名下能取到cookie,×表示不能取到cookie
domain参数 zydya.com blog.zyday.com one.blog.zyday.com
setcookie('name',1,time()+1)  √  √  √
setcookie('name',1,time()+1,'/','zyday.com')    √  √
setcookie('name',1,time()
+1,'/','blog.zyday.com')
 ×  ×  ×
setcookie('name',1,time()
+1,'/','one.blog.zyday.com')
× × ×

当domain设置为空时,domain默认为当前域名,并且该域名下的子域名都可以接收到cookie。
但是domain参数设置其子域名时,所有域名就接收不到了,包括那个子域名。

  • 然后在②blog.zyday.com域名下设置cookie,测试条件同上
domain参数 zydya.com blog.zyday.com one.blog.zyday.com
setcookie('name',1,time()
+1)
×
setcookie('name',1,time()+1,'/','zyday.com')
setcookie('name',1,time()+1,'/','blog.zyday.com') ×
setcookie('name',1,time()+1,'/',one.blog.zyday.com') × × ×

看第二行,domain参数是zyday.com,是blog.zyday.com的父域名,那么zyday.com下所有子域名(包括zyday.com、blog.zyday.com、one.blog.zyday.com)都能接收到cookie。
当domain为自身域名时,那么其父域名不受影响,其本身与其子域名可以接收到cookie。
而设置其子域名或其他域名时,所有域名都接收不到cookie了。

  • 最后在③one.blog.zyday.com域名下设置cookie
domain参数 zydya.com blog.zyday.com one.blog.zyday.com
setcookie('name',1,time()
+1)
× ×
setcookie('name',1,time()+1,'/','zyday.com')
setcookie('name',1,time()+1,'/','blog.zyday.com') ×
setcookie('name',1,time()+1,'/',one.blog.zyday.com') × ×

第三个测试得出的结论在上面已经总结了。再看一遍,这里就不多解释了。

domain的设置,有两点要注意:

1.在setcookie中省略domain参数,那么domain默认为当前域名。

2.domain参数可以设置父域名以及自身,但不能设置其它域名,包括子域名,否则cookie不起作用。

那么cookie的作用域:

cookie的作用域是domain本身以及domain下的所有子域名。

 

补充:

Path默认值为”/”,表示该Cookie在整个站点内有效。除定义的Cookie要在全站作用页面使用的情况外,其他定义的Cookie要指定其Path属性,遵循作用域最小原则,如:定义Cookie的Path值为”/Shoes”,表示该Cookie在Shoes目录下的所有页面会向服务回复该Cookie信息

 

 

domain为空,则为当前域名

分享到:
评论

相关推荐

    二级域名和顶级域名需要同步登录如何设置cookie作用域1

    二级域名和顶级域名需要同步登录如何设置cookie作用域当有二级域名和顶级域名需要同步登录时,请在 config/config_global.php 中修改 c

    Session Cookie的HttpOnly和secure属性

    如果在Cookie中设置了"HttpOnly"属性,那么通过程序(JS脚本、Applet等)将无法读取到Cookie信息,这样能有效的防止XSS攻击。 对于以上两个属性, 首先,secure属性是防止信息在传递的过程中被监听捕获后信息泄漏,...

    php中cookie的作用域

    setcookie(“cookie名”,”值”,”作用域”) 作用域“/”表示COOKIE作用在根目录下所有文件 作用域“/ROOT/”表示COOKIE作用在根目录下ROOT目录下的所有文件  您可能感兴趣的文章:php中cookie实现二级域名可访问...

    Cookie,Session,Application的区别与应用

    在ASP.NET中,有很多种保存信息的内置对象,如:Application,Session,Cookie,ViewState和Cache等。下面分别介绍它们的用法和区别。 方法 信息量大小 作用域和保存时间 应用范围 保存位置

    帝国Cms万能会员接口和论坛通行证接口介绍

    想学习帝国cms的朋友,看看这篇介绍文章一定对你很有帮助

    Discuz论坛 v5.0 通行证帝国CMS整合内付有5.0的通行证程序

    //cookie作用域 $EcmsCookiePath='/';//cookie作用路径 3.将压缩包的所有文件复制到discuz目录,覆盖已存在的文件 4.通行证接口整合完毕 其它说明: 1.通行证整合后“Ecms的登录与退出”要全转向“Discuz的登录与退出...

    带你了解session和cookie作用原理区别和用法

    主要介绍了session和cookie作用原理,区别和用法,以及使用过程中的优缺点,通过列举区别和原理,使读者更能理解两者之间的关系,需要的朋友可以参考下

    weapp-cookie:一行代码让微信、头条、百度、支付宝小程序支持 cookie,兼容 uni-app :cookie::rocket: One line of code allows weapp to support cookie(wx weixin wxapp cookie)

    支持 domain/path 作用域 Install npm install weapp-cookie --save # 将 npm 包复制到 vendor 文件夹,避免小程序可能不能找到文件(Tips:支持npm包的开发环境无需此步) cp -rf ./node_modules/ ./vendor/

    ShopNC多用户商城商务系统 v2.5-sp1

    商城系统设置里对商城附件等进行设置,cookie作用域主要在集成其他系统时使用, 开店审核设置可根据您商城的需要自行设置。 2.系统设置-->基本栏目管理 在这里对您商城页脚部分的相关链接页的信息进行填写, 然后...

    jemeter自动化测试

    把login放到setup中,登录无论是通过cookie还是session都会存在同一个问题,那就是作用域,cookie的作用域是线程组,因此在测试线程组中没法获取这些值, session也是一样,虽然能够统通过属性来获得这些值,但是...

    leetcode分类-blog::cookie:我的博客

    leetcode 分类 生活、工作和兴趣 To Do List 前端 ...基本的表单标签 ...划分作用域的意义 函数作用域 ...块级作用域 let可以将变量绑定到所在的任意作用域中(通常是{...}内部) this 浅拷贝(shallow copy)

    设置跨域名的Cookie

    所有的网站开发者都会非常喜欢cookie的强大特性和易用性,它在跟踪用户信息,建设人性化、个性化的网站方面,有着强大的作用,而且,又避免了使用数据库的昂贵开销。但是,cookie却不能跨越域传递,只有那些创建它的...

    Session相关知识点PDF版本

    包括Session的定义,特点,重要属性,优缺点,作用和使用场景,以及介绍Session的作用域及相关判断,总结了Cookie与Session之间的区别。 相关的博客连接:...

    JavaScript实现基于Cookie的存储类实例

    本文实例讲述了JavaScript实现基于Cookie的存储类。分享给大家供大家参考。具体分析如下: ...// 两个参数分别代表储存有效期和作用域 // 获取一个储存全部cookies的对象 var cookies = (function()

    ASP.NET中Cookie的使用方法

    Cookie是一段文本信息,在客户端存储 Cookie 是 ASP.NET 的会话状态将请求与会话关联的方法之一。浏览器对 Cookie 的大小有限制,因此,只有不超过 4096 字节才能保证被接受。

    Cache_Session_Cookie_Application_Hidden的区别

    很多人搞不清楚这个保存内置对象的作用域,保存时间,保存位置。这个文档可以详细的告诉你们。还有代码示例

    Servlet+jsp.docx

    创建web工程还有代码是试练,请求方式+重定向+请求转发+cookie+session+jsp(四大作用域九大内置对象)

    【JavaScript源代码】详解JS浏览器储存.docx

     目录 引言CookieCookie是什么Cookie生成方式Cookie的应用场景Cookie的缺点解决方法LocalStorage特点使用示例使用场景SeesionStorage特点使用场景Cookie、LocalStorage 和SessionStorage 之间的区别作用域的不同...

    tpc-check:检查用户是否启用了第三方Cookie

    第三方Cookie基本上是常规Cookie,但来自不同的域。 它们对于识别用户的浏览器以及聚集特定用户周围的请求和数据很有用。 不幸的是,用户未同意的实体可以将它们用于跟踪目的,因此有很多用户为了保护自己的隐私而...

Global site tag (gtag.js) - Google Analytics