Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

同名Cookie的识别问题

  当Cookie的域名或目录不同而名称相同时,对于页面来说就可能存在多个同名的Cookie。因为页面的Cookie输出是不会显示除了名字和值以外的其它信息的。而且不仅如此,Cookie再向服务器传输时使用的也是同样的格式,所以无服务器端也会遇到问题。
  比如下面这个程序,如果运行在一个叫 /abc/def/ 的目录下 <script>
with(document){
  cookie="n=abc; Path=/abc/";
  cookie="n=root; Path=/";
  cookie="n=def; Path=/abc/def/";
  write(cookie);
};
</script>

  这样直接看上去就是三个同名的Cookie,把它发送到服务器,如果服务器程序是PHP,且直接使用内置的方法获取Cookie的话会出现这种情况 print_r($_COOKIE);
  直接获取会丢失掉其它几个同名的Cookie,但实际上这些同名的Cookie也有发送到服务器上,只是PHP在解析时候给合并起来了而已。可以使用 $_SERVER['HTTP_COOKIE']   来获取传输的原始Cookie。但是我们能获取到的近是Cookie的名称和值而已,具体的目录和域名依然无法获取。这是HTTP的不足,目前没办法从协议上直接弥补。但是其实这样的问题具体遇上的情况也非常少,就算遇到了也可以用其它方法避开。所以这个现象只要稍微了解就足够了。   
网名:
54.144.24.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^