域名和cookie问题(域名后缀)

域名和cookie
偶然想到一个问题:能把cookie设置为.g.cn,那么能设置把cookie设置为.com.cn吗?

试验结果:不能。因为浏览器知道的后缀是.com.cn而不是.cn,所以禁止设置cookie。
因为浏览器内置了域名后缀列表。todo:如果以后出现新的后缀,而老浏览器没法更新列表,岂不是会允许设置cookie?

  extension后缀   一级域名   二级域名  
  .cn   g.cn   *.g.cn  
  .com.cn     *.  
  .com.cn   google.com.cn   *.google.com.cn  

能读取到.example.com的cookie吗?
能。
能读取到example.com的cookie吗?
不能。todo:把和example.com做SSO,即可防止cookie带到static.example.com。
example.com能读取到的cookie吗?
答:不能。
setcookie('a', 'aa', time() + 1234, 'https://www.jb51.net/', 'example.com'); 设置的cookie是 .example.com 还是 example.com的?
答:是.example.com的。
如果想设置example.com的cookie,需要使用setcookie('default', 'default', time() + 1234, 'https://www.jb51.net/');。
cookie的设置和读取范围:

HTTP请求域名   一级域名   cookie可设置(并可读取)的范围   cookie不可设置   cookie不可读取  
example.com   example.com   example.com,.example.com      
  example.com   ,.,.example.com   example.com   example.com  
g.com.cn   g.com.cn   g.com.cn,.g.com.cn   .com.cn      
    ,.   .com.cn  

设置cookie代码:

复制代码 代码如下:


<?php
setcookie('default', 'default', time() + 1234, 'https://www.jb51.net/');
setcookie('a', 'aa', time() + 1234, 'https://www.jb51.net/', 'example.com');
setcookie('b', 'bb', time() + 1234, 'https://www.jb51.net/', '.example.com');
?>


读取cookie代码:

复制代码 代码如下:


<?php
var_dump($_COOKIE);
?>


结果截图:

域名和cookie问题(域名后缀)

域名和cookie问题(域名后缀)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/2ec09fea5a91c453e558100b1913b9f5.html