写之前转载两篇写的很棒的文章先看看:Session和Cookie
Session和Cookie

一:cookie

1、定义:

cookie是存储在浏览器上的一小段数据,用来记录某些当页面关闭或者刷新后仍然需要记录的信息

2、大小:

一般浏览器存储cookie 最大容量为4k

3、cookie的特征:

每次网络请求 Request headers 中都会带上cookie。所以如果 cookie 太多太大对传输效率会有影响。

clipboard.png

4、查看cookie的路径

通过打开网页,点击检查,找到application,找到storage,就找到了cookie!

clipboard.png

5、cookie的来源

在解析cookie之前,我们先做一个小实验,找到cookie后点击右键清除cookie,
clipboard.png
但当我重新刷新一遍网页,cookie又出现了,why?
clipboard.png

来源:

我们点击network-name/html-header,会发现我们请收请求的响应体里面有一个setcookie的东西,它可以把cookie种植到浏览器。
当浏览器发送的请求没有cookie时,服务器会把响应头里面放入setcookie,浏览器接受setcookie之后,会把内容种植到浏览器的cookie内部,之后向服务器发送的请求就都会带cookie了。
clipboard.png

5、主要参数:

  1. name
  2. value 字符串
  3. domain作用域
  4. expires/max-age 有效期
  5. secure是否在http里面有效(当 secure 值为 true 时,cookie 在 HTTP 中是无效,在 HTTPS 中才有效)
  6. httponly是否允许通过js修改cookie,为true不允许

6、作用:

cookie可以看一下方方老师写的这篇博客简述 Cookie 是什么

  • 记录用户信息,cookie有个地方放用户名
  • 记录历史信息

二、session

1、定义:

session是一种让服务器能识别某个用户的「机制」,session 在实现的过程中需要使用cookie

2、使用:

  1. 用户在输入用户名密码提交给服务端,服务端验证通过后会创建一个session用于记录用户的相关信息
  2. 创建session后,会把关联的session_id 通过setCookie 添加到http响应头部中。
  3. 浏览器在加载页面时发现响应头部有 set-cookie字段,就把这个cookie 种到浏览器指定域名下。
  4. 当下次刷新页面时,发送的请求会带上这条cookie, 服务端在接收到后根据这个session_id来识别用户。

3、 session 可保存在服务器内存中,也可保存在数据库中,只是id在cookie中

三:localStorage

1、定义:

localStorage HTML5本地存储web storage特性的API之一,用于将大量数据(最大5M)保存在浏览器中,保存后数据永远存在不会失效过期,除非用 js手动清除。
不参与网络传输。
一般用于性能优化,可以保存图片、js、css、html 模板、大量数据。

2、js手动修改

注意value里面存的是字符串,如果写入对象,就会转换成字符串[objectobject]
clipboard.png
所以要用JSON.stringify转成字符串再传
clipboard.png


bamboo
75 声望9 粉丝

bamboo前端学习笔记


« 上一篇
bom笔记
下一篇 »
Ajax笔记