zoukankan      html  css  js  c++  java
  • HttpCookie

    参考 : http://www.cnblogs.com/fish-li/archive/2011/07/03/2096903.html

    上文结尾有提到一个说法

    4. HttpRequest.Cookies 与 HttpResponse.Cookies 会有关系(很奇怪吧)。

    微软官网也是这么说的 : https://msdn.microsoft.com/en-us/library/system.web.httprequest.cookies(v=vs.110).aspx

    After you add a cookie by using the HttpResponse.Cookies collection, the cookie is immediately available in theHttpRequest.Cookies collection, even if the response has not been sent to the client.

    这情况有时候会让我们有点混淆。所以我特别写了一篇来解释它.

    首先我们要知道 

    1.

    var listx = Response.Cookies.AllKeys.ToList();  //empty list
    if (Response.Cookies["c"] != null)
    { 
                                    
    }
    var list = Response.Cookies.AllKeys.ToList(); //["c"] got 1 data 

    即使我们只是读取,也是再创建 

    2. httpRequest.cookie 的 expires 永远是 0001 年

     Response.Cookies["c"].Expires.Year == 1

    回到真题

    所以如果说我们想获取某些请求的cookie,我们可以使用 httpRequest.cookie['a'] 去拿,这时你当然有可能也会把response的一起拿出来, 这时我们需要过滤 

    如果cookie.expires.year == 1 就表示他是request 而不是response, 除非你的response 也是year == 1 , ... 这哪里可能=.=" 

    那么如果我们想要拿一个response则相反,我们去httpResponse拿,然后过滤 year != 1; 

    当你的request和response 同时拥有一个同名的cookie时,你使用 request.cookie 和response.cookie 拿出来的cookie是不同的。

    说的有点含糊,但是基本上测试一下就明白了。以后有空才写整齐版本.

  • 相关阅读:
    [asp.net core]SignalR一个例子
    [Asp.net core]bootstrap分页
    ${pageContext.request.contextPath}无法解析
    [Java web]Spring+Struts2+Hibernate整合过程(2)
    [Java web]Spring+Struts2+Hibernate整合过程
    java.lang.IllegalStateException: Failed to load ApplicationContext
    [Struts2]配置文件
    unihtmlmemo使用
    ADO序列
    variant和rawbytestring相互转换
  • 原文地址:https://www.cnblogs.com/keatkeat/p/4881429.html
Copyright © 2011-2022 走看看