再谈同名 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 的做法是欠揍的。
相关文章
暂无