【发布时间】: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?他们是否附加新信息,是否要求我的浏览器附加信息?
【问题讨论】:
-
您可能想阅读RFC 6265。
标签: javascript http cookies browser http-headers