前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >客户端存储 ---cookie

客户端存储 ---cookie

作者头像
玖柒的小窝
修改2021-11-02 11:06:39
9110
修改2021-11-02 11:06:39
举报
文章被收录于专栏:各类技术文章~

前言

今天我们来讲一讲客户端存储,肯定想到的是cookie。随着Web 应用程序的出现,直接在客户端存储用户信息的需求也随之出现。这背后的想法是合理的:与特定用户相关的信自访凡右在田户的机器上。无论是登录信息今天我们来讲一讲客户端存储,肯定想到的是cookie。随着Web 应用程序的出现,直接在客户端存储用户信息的需求也随之出现。这背后的想法是合理的:与特定用户相关的信自访凡右在田户的机器上。无论是登录信息、个人偏好,还是其他数据,个人偏好,还是其他数据,Web应用程序提供者都需要有办法把它们保存在客户端。对该问题的第一个解决方案就是cookie, cookie的规范定义。今天,cookie的规范定义由古老的网景公司发明,由一份名为Persistent Client State: HTTP Cookies。今天,cookie只是在客户端存储数据的一个选项。

cookie介绍

HTTP cookie通常也叫作cookie,最初用于客户端存储会话信息。这个规范要求服务器在响应HTTP请求的时候,通过发送set-Cookie HTTP头部包含会话信息。例如,下面是包含这个头部的一个HTTP响应:

  • HTTP/1.l 200 OK
  • Contenc-CYpe: text /html
  • Set-CO0k1e: name=value
  • other-header: otner-header-value

"name"、值为"value "的 cookie,名和值在发送时都会经过URL这个HTTP响应会设置一个名为 浏览器会存储这些会话信息,并在之后的每个请求中都会通过HTTP头部cookie返回服务器,比如:

  • GET /index.jsl HTTP/1.1
  • Cookie: name=value
  • other-header: other-header-value

这些发送回服务器的额外信息可用于唯一标识发送请求的客户端。

cookie的构成

cookie在浏览器中是由以下参数构成的。

  • 名称: 唯一标识cookie的名称myCookie 和l MyCookie是同—个名称。cookie名不区分大小写。不过,因为一些服务器软件可能这样对待它们。所以,实践中最好将 cookie名当成区分大小写来对待。cookie名必须经过URL编码。
  • 值: 存储在cookie里的字符串值。这个值必须经过 URL编码。
  • 域: cookie有效的域。发送到这个域的所有请求都会包含对应的cookie。这个值可能包含子域(如www.WTOx.com ),也可以不句含(如www.wrOx.com 表示对 Wrox.cO确设置的所有子域都有效)。如果不明,则默认为设置cookie的域。
  • 路径: 请求URL 中包含这个路径才会把 cookie 发送到服务器.例如,可以指定 cookie只能由www.wrox.com/books/ 访问,因此访问www.WrOx.cOm/ 下的页面就不会发送 cookie,即使请求的是同一个域。
  • 过期时间: 表示何删除 cookie的时间戳(即什么时间之后就不发送到服务器了)。默认情况下,浏览器会话结束后会删除所有cookie。不过,也可以设置删除cookie的具体时间。这个值是GMT格式(Wdy, DD-Mon-YYYY HH:MM:SS GMT),用于指定删除cookie的时间。这样即使关闭,
  • 安全标志: 设置之后,只在使用SSL安全连接的情况下才会会发送 cookie,而请求www.wrOx.com 则不会。比如:请求www.WrOx.com 会发送cookie, 而请求www.WrOx.com 则不会。
这些参数在 set-Cookie头部中使用分号加空格隔开,比如:
  • HTTP/1.1200 OK
  • Content-type: text/htm
  • Set-Cookie: name=value; expires=Mon, 22-Jan-07 07:10:24Other-header: other-header-value

这个头部设置一个名为"name "的 cookie,这个 cookie在2007年1月22日7:10:24过期,对 WWW.wrOX.com 及其他 Wrox.com的子域(如p2p.wrox.com)有效。

安全标志secure是cookie中唯一的非名/值对,只需一个secure就可以了。比如:

  • HTTP/1.1200 OK
  • Content-type: text/htm.
  • Set-Cookie: name=value
  • domain=.wrox.cOm;
  • path=/;secur
  • Other-header: other-header-value

这里创建的 cookie 对所自wrOx.com 的域及该域中的所有页面有效(通过 path=/指定)。不过、 这个cookie只能在SSL 连接上发送,因为设置了secure标志。情况下应该在请求中包含cookie。要知道,域、路径、过期时间和secure标志用于告诉浏览器什值对。这些参数并不会随请水友送给服务器,实际发送的只有cookie的名/头部中使用分号加空格隔开。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • cookie介绍
  • cookie的构成
    • cookie在浏览器中是由以下参数构成的。
      • 这些参数在 set-Cookie头部中使用分号加空格隔开,比如:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档