zoukankan      html  css  js  c++  java
  • “同名Cookie”的分析


    了解Cookie的同学应该知道,浏览器客户端是以domain,path,name作为Cookie的唯一标识的,只要Name、Domain、Path中的任何一项不同,Cookie就是不能同的。由此便产生了同名Cookie。

    例如有四个cookie如下:
    d=1; expires=Sat, 23 May 2009 03:48:22 GMT; path=/; domain=.dny.com
    d=2; expires=Sat, 23 May 2009 03:48:46 GMT; path=/; domain=.test.dny.com
    d=3; expires=Sat, 23 May 2009 03:48:46 GMT; path=/test/; domain=.dny.com
    d=4; expires=Sat, 23 May 2009 03:48:46 GMT; path=/test/; domain=.test.dny.com
    他们是可以共存的。

    了解Cookie的同学也应该知道,cookie的domain、path在服务器端都是只写的,也就是说在服务器端不能读取到任何一个Cookie的domain或者path值,只能读取到name和value。那么问题便产生了,假设上面的四个Cookie同时存在,那么服务器端读取到的name为“d”的cookie到底会是哪个值呢?

    经过我的测试,结果是这样的,如果客户端浏览器发送了多个同名的 cookie,那么 Request.Cookie 将返回其中最符合(符合条件且范围最小)当前domain、path的一个

    例如,还是上面四个cookie,我通过下面这些地址去获取Request.Cookie["d“],值是不同的:
    http://test.dny.com/test/cookies.aspx    4
    http://dny.com/test/cookies.aspx        3
    http://test.dny.com/cookies.aspx        2
    http://dny.com/cookies.aspx        1

    而实际上,服务器上用Request.Cookies.Count可以知道,得到的确实是有4个Cookie。

    以上内容欢迎更加深入讨论。

  • 相关阅读:
    UE4.7的IOS发布和调试的相关问题
    【翻译】CEDEC2015 速成Albedo Chart 制作
    【翻译】KNACK制作介绍
    【翻译】口袋妖怪X/Y 制作技法
    【翻译】圣斗士星矢:圣域传说 制作介绍 特效合成等
    【翻译】圣斗士星矢:圣域传说 制作介绍 场景篇
    Linux 磁盘管理
    linux 文件系统
    Ubuntu18.04系统安装与设置
    C#(99):lazy延迟加载
  • 原文地址:https://www.cnblogs.com/flashlm/p/theSameNameCookie.html
Copyright © 2011-2022 走看看