【问题标题】:The cookie is the whole line?饼干是整行?
【发布时间】:2018-02-02 21:57:19
【问题描述】:

有一些服务器,我将一些文件上传到该服务器,服务器向我发送了响应,我需要记住服务器响应中的 cookie。服务器响应的标头如下所示:

StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
  X-Frame-Options: DENY
  Keep-Alive: timeout=5, max=100
  Connection: Keep-Alive
  Date: Fri, 02 Feb 2018 21:46:49 GMT
  Set-Cookie: re_cookie=EHKJGIMA; Domain=tr.something.com; Expires=Mon, 31-Jan-2028 21:59:44 GMT; Path=/
  Server: CPWS
  Content-Length: 1279
  Content-Type: application/json; charset=UTF-8
}

我从服务器响应中提取了cookie名称,即:re_cookie,我还提取了cookie值,即EHKJGIMA

问题是我是 cookie 的新手,我不确定是否应该提取整行,我的意思是这一行:

Set-Cookie: re_cookie=EHKJGIMA; Domain=tr.something.com; Expires=Mon, 31-Jan-2028 21:59:44 GMT; Path=/ 或者我应该只记得re_cookie=EHKJGIMA,谢谢。

【问题讨论】:

  • 所有相关的。域显示其适用的位置、相关性的路径和到期日期,何时不再有效。

标签: c# cookies http-headers


【解决方案1】:

很多信息只适用于how Browsers handle Cookies。浏览器必须处理大量的 cookie。可能有数百个。而且他们必须将每个 cookie 作为每个请求的一部分发送,因此过滤到实际发送很多东西。

所以它被告知了很多次要信息:

  • 也可以发送这些域
  • 发送它们的路径(如果有用于单独子页面的特殊 cookie)
  • 何时清理 cookie(在浏览器关闭时,一定间隔或从不)

这些都不是由浏览器作为请求的一部分发送的。它只发送名称和值。

作为一般规则,您只需要处理 cookie 的名称和值。只有当您的程序开始使用多个 WebAPI 时,您才需要担心处理多个 cookie。即使这样,您也可以通过简单的数据结构来处理它们,而不是 WebBrowser 必须执行的复杂存储和管理。

【讨论】:

    猜你喜欢
    • 2015-06-06
    • 2018-10-03
    • 2014-11-19
    • 1970-01-01
    • 1970-01-01
    • 2010-09-15
    • 2016-03-21
    • 2010-10-06
    • 1970-01-01
    相关资源
    最近更新 更多