饼干是整条线?

时间:2018-02-02 21:57:20

标签: c# cookies http-headers

有一些服务器我将一些文件上传到此服务器,服务器向我发送响应,我需要记住服务器响应中的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

问题是我是新手使用cookies而且我不确定是否应该提取整行,我的意思是这一行:

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

1 个答案:

答案 0 :(得分:0)

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

所以它被告知了很多因素的信息:

  • 哪些域名也可以发送
  • 发送它们的路径(如果有单独的子页面的特殊cookie)
  • 何时清理cookie(在浏览器关闭时,某个intervall或从不)

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

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