当我们给网站设置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,'/','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,'/','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,'/','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下的所有子域名。

转载于:https://blog.51cto.com/lfliangli/1262874

cookie的作用域相关推荐

  1. 浏览器同源策略及Cookie的作用域

    所谓"同源"指的是"三个相同": 1.协议相同 2.域名相同 3.端口相同 当着三个地方相同才算同源 例如:http://www.example.com:888 ...

  2. 单点登录与权限管理本质:session和cookie介绍

    本篇开始写「单点登录与权限管理」系列的第一部分:单点登录与权限管理本质,这部分主要介绍相关的知识概念.抽象的处理过程.常见的实现框架.通过这部分的介绍,能够对单点登录与权限管理有整体上的了解,对其相关 ...

  3. jmeter学习指南之深入分析跨域传递cookie

    继上篇文章中介绍了Jmeter cookie manager的两种常用使用情况: jmeter视频:https://edu.51cto.com/course/14305.html 同一线程组和不同线程 ...

  4. 单点登录与权限管理本质:cookie安全问题

    继续介绍「单点登录与权限管理」系列的第一部分:单点登录与权限管理本质,前一篇文章介绍了单点登录概念,以CAS协议的基本流程为例讲解了系统间的交互过程,过程中,cookie的设置和传输涉及的比较多,如何 ...

  5. 2019-04-12 cookie基础

    cookie      作为web服务器,必须能够采用一种机制来唯一标识一个用户,同时记录该用户的状态 会话cookie和持久化cookie cookie.setMaxAge(30) 设置cookie ...

  6. 【Python】Cookie 和 Session

    前言 最近在学习 Python 网络编程,已经实现了简单的服务器和浏览器的信息交互.正在进一步学习 Cookie 和 Session(可能还有 Token),所以写一篇随笔来加深自己的理解. 一.Co ...

  7. iframe 中 js 的 cookie 读写不到的解决办法

    先看一个例子比如:我们在 www.cr173.com 中用 iframe 了一个 www.fxxz.com 的一个页面. 如: < iframe height="100" m ...

  8. qq空间登陆 cookie_把这篇 Session、Cookie、Token看完,和面试官随便谈人生

    先看大纲: Cookie 和 Session HTTP 协议是一种无状态协议,即每次服务端接收到客户端的请求时,都是一个全新的请求,服务器并不知道客户端的历史请求记录:Session 和 Cookie ...

  9. ASP.NET企业开发框架IsLine FrameWork系列之十二--使用Session、Cookie与安全支持

    ASP.NET企业开发框架IsLine FrameWork系列之十二--使用Session.Cookie与安全支持 今天来介绍IsLine.HttpContent.HttpContentProvide ...

最新文章

  1. echarts js 删除框选数据_echarts同一页面中四个图表切换的js数据交互方法示例
  2. MorGain2020中文版
  3. Three Integers CodeForces - 1311D(思维+暴力)
  4. 必看!Spark 进阶之路之「SparkSQL」入门概述 | 博文精选
  5. eclipse clean和build作用
  6. multipart/form-data
  7. [转] C#中Dispose和Close的区别
  8. 遍历二叉树(四种方式:前序、中序、后序、层序)
  9. 网管学习日记-单臂路由
  10. 谈谈VIP漂移那点破事
  11. 基于C++的简易的国际象棋双人对战程序设计
  12. ESXI7.0与6.7官网下载地址
  13. ae中合成设置的快捷键_Adobe AE快捷键大全
  14. 谈一下为什么程序员不要进外包吧
  15. 领导的本质就是:管理自己,影响别人
  16. Git命令提交项目代码
  17. matlab均值方差模型,matlab预测ARMA-GARCH 条件均值和方差模型
  18. 原问题与对偶问题的定义和关系
  19. 《网络与信息安全》重点整理
  20. 应用是非正式发布版本, 当前设备不支持安装。

热门文章

  1. 出色管理者的时间管理
  2. 这就是奇客文化?简直太有才了!
  3. CFRunLoopRef 的内部逻辑(向 ibireme学习)
  4. sass的继承,混合宏,占位符的用法总结
  5. 简单的TableViewCell高度自适应(只有Label,仅当参考思路)
  6. 201671010128 2017-11-12《Java程序设计》之图形程序设计
  7. 决策树分类Decision tree classifier
  8. javascript知识点
  9. SugarCRM ListView查询中加入默认条件
  10. 找不到可安装的ISAM”的问题