Cookie
编辑Cookie 是一种文本信息,可以存储在查看者终端设备(电脑、笔记本电脑、智能手机、平板电脑等)的浏览器中,用于访问的网站(网络服务器、服务器)。 Cookie 由 Web 服务器发送到浏览器或由浏览器中的脚本 (JavaScript) 生成。 网络服务器可以在随后重新访问本网站时直接读取此 cookie 信息,或通过网站上的脚本将 cookie 信息传输到服务器。 例如,此 cookie 的任务是识别冲浪者(会话 ID)、保存对 Web 应用程序的登录,或保存在线零售商的购物车。 一个常见的应用是使用专门准备的页面对用户进行网络跟踪。 使用 cookie 分析用户行为和用于广告目的需要征得用户同意。
cookie 一词在数据保护中也用作数据提取、数据存储、数据使用、数据利用、数据传输和数据滥用的同义词,无论实际使用的是物理 cookie 还是使用其他技术。
结构
编辑cookie 由名称和值组成。 定义 cookie 时,可以或必须指定一个或多个附加属性。
名称和值是可打印的 US-ASCII 字符序列,不包括某些字符。 Name 的语法使用受限字符集,如 RFC 2616 中的其他 HTTP 标头所使用的那样。 值不包括分号、逗号、空白字符和反斜杠。 要将任何数据存储为 cookie 值,可以使用 Base64 等编码或使用 %xx 的 URL 编码。
HttpOnly 属性旨在防止使用 JavaScript 访问 cookie。 无法通过 JavaScript 访问具有 HttpOnly 属性的 Cookie。 如果使用的浏览器支持此属性,这代表了一种可能的针对跨站点脚本的保护。
规范
编辑根据 RFC 6265,浏览器应支持以下最小尺寸:
- 一个 cookie 应该至少包含 4096 字节。
- 每个域应该可以存储至少 50 个 cookie。
- 总共应该能够保存至少 3000 个 cookie。
所有参与的浏览器和服务器都必须保证最小尺寸。 但是,该规范确实允许更大的 cookie 或更多的 cookie。
工作原理
编辑网站可以通过两种方式传输、分配和评估 cookie:
- 通过 HTTP 在请求和响应的标头中传输。 客户端中的 Cookie 是在访问 Web 服务器时在服务器响应中传输 cookie 行和其他 HTTP 标头时创建的(请参阅结构)。
- Cookie 也可以通过 JavaScript 或其他脚本语言在本地生成。 脚本在服务器发送的网页中。
可以读取、使用和更改同一域(即不是其他网站)的本地 cookie。 例如,JavaScript 可用于合并有关会话中发生的本地用户活动的信息,而无需与服务器进一步联系。 下次您联系该网站时,它们也会在 HTTP 标头中传输到那里。
Cookie 信息存储在浏览器本地,通常存储在 cookie 数据库中。 随着随后对 Web 服务器的进一步访问,客户端浏览器搜索该域中与 Web 服务器和当前调用的目录路径匹配的所有 cookie。 此 cookie 数据也在 HTTP 访问的标头中传输,因此 cookie 只能返回到它们最初来自的 Web 服务器。
Cookie 可以包含任何文本,因此除了纯标识之外,它还可以在本地保存任何设置,但其长度不应超过 4 千字节(4 1024 字节),以便与所有浏览器保持兼容。 cookie 随每个传输的文件一起传输,包括图像文件或任何其他类型的文件; 这尤其适用于嵌入的元素,例如由服务器集成的广告横幅,而不是显示的 HTML 文件的来源。 单个网站可能会导致多个 cookie 来自不同的服务器并被发送回不同的服务器。
Cookie 由客户专门管理。 所以他决定客户端是否在 Web 服务器所需的生命周期后再次保存或删除 cookie。 但是,相应的信息也可以存储在服务器上,例如统计网站的访问量。
应用
编辑HTTP 是一种无状态协议,因此页面浏览量对于 Web 服务器而言是相互独立的。 通过多个页面视图与用户交互的 Web 应用程序必须使用技巧才能跨多个访问识别参与者。 为此,服务器可以将xxx的会话标识符存储在 cookie 中,以便在以后的调用中准确识别该客户端。 出于安全原因,电子银行倾向于在每次页面查看时使用一次性令牌。
在线商店可以使用 cookie 来收集虚拟购物篮中的商品。 客户可以用它来将商品放入购物篮,然后继续浏览网站,然后一起购买这些商品。 购物车或用户会话的标识存储在 cookie 中,商品标识符分配给此购物车或网络服务器上的用户会话。 此信息仅在下订单时在服务器端进行评估。
Cookie 可用于临时存储,以便在与服务器的连接丢失时(例如在移动电话网络中),用于服务器的用户操作和输入不会在 Web 应用程序中丢失。 当连接恢复时,从服务器查询它们。 Web 应用程序识别 cookie 的生成顺序并标记已处理的 cookie 或删除其内容。 因为这种使用可能会导致创建很多cookie,最早要等到浏览器关闭后才被删除,但是浏览器对cookie的存储空间是有限的,所以web应用必须做好cookie溢出的防范措施。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/331431/