cookie&session&localStorage

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

一:cookie

一、定义:

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

二、大小:

通常浏览器存储cookie 最大容量为4knode

三、cookie的特征:

每次网络请求 Request headers 中都会带上cookie。因此若是 cookie 太多太大对传输效率会有影响。git

clipboard.png

四、查看cookie的路径

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

clipboard.png

五、cookie的来源

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

来源:数据库

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

五、主要参数:性能优化

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

六、做用:

cookie能够看一下方方老师写的这篇博客简述 Cookie 是什么服务器

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

2、session

一、定义:

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

二、使用:

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

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

三:localStorage

一、定义:

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

二、js手动修改

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

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息