cookie
cookie是服务器发给浏览器的一段大小为4kb以内的文本信息,浏览器向服务器发送请求是需要附带上。
用途:
- 对话(session)管理:保存登录、购物车等需要记录的信息。
- 个性化信息:保存用户的偏好,比如网页的字体大小、背景色等等。
- 追踪用户:记录和分析用户行为。
cookie包含的元数据
- Cookie 的名字
- Cookie 的值(真正的数据写在这里面)
- 到期时间(超过这个时间会失效)
- 所属域名(默认为当前域名)
- 生效的路径(默认为当前网址)
cookie的生成和发送
生成:如果服务器希望浏览器保存cookie,需要的响应头设置Set-Cookie字段,字段包含多个cookie的属性。
发送:浏览器向服务器发送请求时附带之前已经保存好的cookie,可以是多个cookie。cookie的属性
- Expire
一个具体的过期时间,如2020年8月20号过期。到期后浏览器将不再保存cookie,由于是本地时间,既不精准也可以通过修改本地时间而导致失准。 - Max-Age
一个绝对的时间,如100000秒后过期,Max-Age会优先于Expire使用,如果既没有设置Expire也没有也只MaxAge,浏览器窗口关闭后,cookie就不再被保存。 - Path
- Domain
- HttpOnly
指定该cookie无法使用js脚本读取到,只有浏览器发起http请求的时候才会带上cookie
- Expire
storage
storage用于脚本在浏览器保存数据,分为两个接口:localStorage和sessionStorage
- localStorage 数据长期保存,需要手动清理数据。
- seesionStorage 数据在会话期间保存,关闭浏览器窗口即清空数据。
- API
- storage.getItem('key') 用于读取数据,参数是一个字符串形式的键名
- storage.setItem('key',value) 两个参数以key、value形式写入数据,也可以知己赋值
效果等同 window.sessionStorage.setItem('foo', '123'); window.localStorage.foo = '123';
- storage.removeItem('key')
- storage.clear()
- storage.key(index) 传入一个数值index,返回对应位置的键名。