LMLPHP后院

再谈同名 Cookie 优先级问题技术

maybe yes 发表于 2017-06-05 23:58

关于同名 Cookie 在秃域名二级域名优先级问题

先看看根域名带点和不带点的问题。比如设置了同名 Cookie 在域名 .lmlphp.com 和 lmlphp.com 下,当访问跟域名 lmlphp.com 时,浏览器将两个同名 Cookie 都会发给服务器,哪个优先级更高看哪个放在前面,而在我之前的测试结果里面认为 .lmlphp.com 优先级更高,现在认为是错的。猜测,没有实验过。

下面看真实的测试。

二级域名 blog.lmlphp.com 和 .lmlphp.com 分别设置了 Cookie "LBLOGUSS"。请求二级域名发出的 Header 头 Cookie 内容

Cookie:UM_distinctid=15b0b9348e3d9-0e113a11eeb39a-317f0158-100200-15b0b9348e5d6; LBLOGUSS=2_1497048432_083ef83241f27343c7cd8e975494763a0a4bfb24; LBLOGUSS=15_1497928608_f666d8527a54b0355ffd407e27f58a318968c772; LBLOGSID=euef9scusfgom5r2rpd73s85b0; a6014_pages=1; a6014_times=37; CNZZDATA1253286891=1916695458-1490971098-%7C1496411346; Hm_lvt_611d0ab5726828d7f68896cec0aefbf6=1496160084,1496265782,1496274079,1496442120; Hm_lpvt_611d0ab5726828d7f68896cec0aefbf6=1496444472; _ga=GA1.2.106199550.1490547854; _gid=GA1.2.2119853286.1496442120

LBLOGUSS 在服务端 PHP 接收只有第一个:

array(10) {
  ["UM_distinctid"]=>
  string(58) "15b0b9348e3d9-0e113a11eeb39a-317f0158-100200-15b0b9348e5d6"
  ["LBLOGUSS"]=>
  string(53) "2_1497048432_083ef83241f27343c7cd8e975494763a0a4bfb24"
  ["LBLOGSID"]=>
  string(26) "euef9scusfgom5r2rpd73s85b0"
  ["a6014_pages"]=>
  string(1) "1"
  ["a6014_times"]=>
  string(2) "37"
  ["CNZZDATA1253286891"]=>
  string(33) "1916695458-1490971098-|1496411346"
  ["Hm_lvt_611d0ab5726828d7f68896cec0aefbf6"]=>
  string(43) "1496160084,1496265782,1496274079,1496442120"
  ["Hm_lpvt_611d0ab5726828d7f68896cec0aefbf6"]=>
  string(10) "1496444472"
  ["_ga"]=>
  string(26) "GA1.2.106199550.1490547854"
  ["_gid"]=>
  string(27) "GA1.2.2119853286.1496442120"
}

最后发现,和 Cookie 位置有关,先设置的在前面,而服务端只取了第一个,所以二级域名 Cookie 设置晚了就获取不到。

到底是谁的问题?也许不同的浏览器处理方式不一样,也许不同的服务器软件处理的方式也不一样。总之,服务端软件放弃其中一个同名 Cookie 的做法是欠揍的。

相关文章
2024-12-22 11:49:31 1734839371 0.011286