【问题标题】:I need a more detailed understanding of precisely how cookies work我需要更详细地了解 cookie 的工作原理
【发布时间】:2016-05-18 04:17:13
【问题描述】:

我可以使用 Ruby on Rails、JavaScript、React、HTML 和 CSS 构建一个全栈应用程序。然而,我觉得我并不完全了解 cookie 的实际工作原理以及它们的确切含义。下面我写下我认为的内容,并要求有人确认或更正所写的内容。

  • HTTP 请求包含 HTTP 方法、路径、HTTP 协议版本、标头和正文。

  • HTTP 响应包含 HTTP 协议版本、状态代码、状态消息、标头和正文。

  • 两者都是简单的文本(这意味着它们只是编码字符的序列),但是当解析此文本时,它包含有用的结构。 是否有一个 HTTP 请求通常被解析成的单一结构(数组、哈希)? HTTP 响应呢?

  • Cookie 表示与 HTTP 请求中的特定标头相关联的一些内容,特别是“Cookie”标头。

  • 在构建 HTTP 响应时,服务器会设置“Set-Cookie”标头。此标头需要以下信息:cookie 的名称、路径和 cookie 的实际内容。路径是对应该从客户端发送到服务器的 cookie 的 URL 范围的描述。

  • 浏览器是否保留 cookie 列表(即,作为某种文本的元素列表),并且它只将正确的那些发送到正确的站点(例如 google cookie 到 google.com )?

  • 假设我访问站点 A,然后访问站点 B,并在两者上进行身份验证。会话管理只是在 cookie 中添加一个特定元素(可能是一个名为 Session 的哈希在另一个哈希中,对应于存储在 Cookie 中的全部 cookie),对吗?网站如何更改我的 cookie?他们是否附加新信息,是否要求我的浏览器附加信息?

【问题讨论】:

标签: javascript http cookies browser http-headers


【解决方案1】:

cookie 是您的浏览器存储的字符串(具有特定格式)。它可以由服务器在发送 http-response 时通过“Set-Cookie”标头设置。您的浏览器发送的每个与 cookie 路径匹配的 http 请求都将在“Cookie”标头中包含该 cookie。

服务器无法告诉浏览器将数据附加到 cookie。它只能获取当前cookie值,添加新信息,然后重新设置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-20
    • 2020-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多