cookie session sessionStorage localStorage
什么是会话?
会话指的是浏览器与服务器之间的数据交互。所白了就是 浏览器和服务器进行的请求和响应。
http协议是无状态的,多次请求之间没有关联性
cookie和session的作用?干啥的?
利用cookie和session可以进行会话保持, 会话保持就是指: 保持用户的登录状态,服务器记录了用户的登录信息,下一次访问服务器就认识该用户了
关于cookie
cookie是浏览器中储存数据的容器,大小为 4k
cookie中的数据会在请求时,进行携带
cookie默认是会话级别的,一旦关闭浏览器cookie就会被销毁
cookie里面可以存储sessionid
多页面共享(在同一个浏览器中)
常见的一些面试问题
1 cookie是浏览器中存储数据的容器,为什么服务器中可以获取cookie中的数据?
因为cookie在向服务器请求时,会将cookie中的数据携带在请求头中;服务器可以读取请求头中的内容,从而间接的获取cookie中的数据。(cookie中的数据被放在请求头中,发送到服务器)
2 cookie是浏览器中存储数据的容器,为什么服务器可以设置cookie中的数据?
服务器是无法直接修改cookie的,但是可以通过响应头来设置;setcookie设置的是响应头;set-cookie:'值' ,将来通知浏览器进行设置cookie.
关于session
session是服务器端储存数据的容器,每个用户都有自己的session空间
session机制
01 如果用户是第一次访问服务器,会自动生成一个sessionid,这个sessionid是一个随机字符串;
02 根据sessionid,服务器就会为该用户开启一块session存储空间(会真的创建一个session文件,这个文件的名字就是sessionid,可以用来存储数据)
03 通过响应头,将sessionid传递回浏览器,设置在cookie中
04 第二次访问,cookie里面存储的数据会在请求时携带在请求头中,把sessionid携带着
05 服务器根据sessionid就可以找到对应的session的文件,就认识这个用户了。
sessionStorage
浏览器中存储数据的容器, 5M
会话级别的,一关闭浏览器就销毁
多窗口之间不能共享
不携带
localStorage
浏览器中存储数据的容器,5M IE只有1M左右
永久存储,只要用户不手动删除,一直存在
多窗口可以共享
不携带
<script>
1. localStorage的api
(1) 设置:localStorage.setItem(key , value)
(2) 获取:localStorage.getItem( key )
(3) 删除:localStorage.removeItem( key )
(4) 清空所有:localStorage.clear() 慎用,会将所有清除
注意:
01 localStorage只能存储 字符串类型 的数据,读出来的数据 都是字符串
02 localStorage储存复杂数据类型
(1)储存, obj=> jsonStr 将对象转换成有格式的json字符串
JSON.stringify( obj/arry) 将复杂数据类型转成json格式的字符串
localStorage.setItem(key , value)存储 (2)获取, jsonStr=> obj
localStorage.getItem( key )
获取到的是json字符串,需要转换成js中的数组或对象
JSON.parse( jsonStr )
</script>
cookie session sessionStorage localStorage的更多相关文章
- Cookie、session和localStorage、以及sessionStorage之间的区别
一.Cookie.session和localStorage的区别 cookie的内容主要包括:名字.值.过期时间.路径和域.路径与域一起构成cookie的作用范围.若不设置时间,则表示这个cookie ...
- 浅谈session,cookie,sessionStorage,localStorage的区别及应用场景
浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟服务端进行数据交互. 一.cookie和session cookie和session都是用来跟踪浏览器 ...
- session,cookie,sessionStorage,localStorage的区别及应用场景
session,cookie,sessionStorage,localStorage的区别及应用场景 浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟 ...
- session,cookie,sessionStorage,localStorage的区别
浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟服务端进行数据交互. 一.cookie和session cookie和session都是用来跟踪浏览器 ...
- 缓存session,cookie,sessionStorage,localStorage的区别
https://www.cnblogs.com/cencenyue/p/7604651.html(copy) 浅谈session,cookie,sessionStorage,localStorage的 ...
- [转] 浅谈session,cookie,sessionStorage,localStorage的区别及应用场景
浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟服务端进行数据交互. 一.cookie和session cookie和session都是用来跟踪浏览器 ...
- 6.cookie、session,localStorage、sessionStorage
必须在服务器下运行 cookie/session 存东西 cookie 时间 过期时间 4k 服务器把一部分数据保存在客户端(浏览器) session 回话 时间 服务器存取用户信息 5M local ...
- cookie session localstorage sessionStorage区别
cookie:http://www.cnblogs.com/Darren_code/archive/2011/11/24/Cookie.html 重要特点: 1.cookie 有大小设置,有过期时间设 ...
- session,cookie,sessionStorage,localStorage的相关设置以及获取删除
一.cookie 什么是 Cookie? "cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie.你可以使用 JavaScrip ...
随机推荐
- 微信小程序全局变量改变监听
问题来源 最近工作需要写小程序页面,其中有个页面情况为:父页面中包含了一个组件页面,组件页面中又包含了另外一个组件页面.需求为:点击最后一个组件页面中的一个view,需要显示最外层父页面中的一个弹出层 ...
- c++指针经典题目分析
首先看一下题目,下列程序会在那一行崩溃,程序如下: #include<iostream> using namespace std; struct S{ int i; int *p; }; ...
- Linux 文件系统的基本结构
Linux文件系统为一个倒置的树状结构,所有文件或文件夹均包含在一个根目录/中. Linux系统严格区分大小写所以在Linux中:一个名为“A”的文件夹和一个名为“a”的文件夹是不同的两个文件夹,这点 ...
- [ZJOI2008]杀蚂蚁antbuster 题解
一个题目的可读版本:https://www.zybuluo.com/Jerusalem/note/221811 这两天做的又一道大模拟题,感觉这玩意有毒,会上瘾啊…… 比起猪国杀这道题真心不知道高到哪 ...
- STM32F4xx系列_独立看门狗配置
看门狗由内部LSI驱动,LSI是一个内部RC时钟,并不是准确的32kHz,然而看门狗对时间的要求不精确,因此可以接收: 关键字寄存器IWDG_KR: 写入0xCCCCH开启独立看门狗,此时计数器开始从 ...
- 快速掌握mongoDB(三)——mongoDB的索引详解
1 mongoDB索引的管理 本节介绍mongoDB中的索引,熟悉mysql/sqlserver等关系型数据库的小伙伴应该都知道索引对优化数据查询的重要性.我们先简单了解一下索引:索引的本质就是一个排 ...
- 洛谷P1690 贪婪的Copy 题解
题目:https://www.luogu.org/problemnew/show/P1690 分析: 这道题就是一道最短路的题目,因为看到数据范围: n≤100n\leq100n≤100 所以考虑使用 ...
- apache添加https证书
今天折腾了一下,总结apache添加https证书的方法. 证书类型分为两种, A)自签名证书 利用oepnssl命令生成.csr和key文件,没有授信,没有有效期,但是可以强制使用https协议,可 ...
- 九、chart控件的使用(图表数据的展示)
chart属于老插件网上还有新的插件功能也更多) Chart控件是VS自带的控件,只是比较老了,功能肯定不如现在出来的某些插件强,不过对于简单的显示还是够用:那么现在来看看chart控件的使用方法: ...
- 《VR入门系列教程》之17---发布第一个应用
发布运行 Unity可以支持多种目标平台的发布,包括:桌面端.Web端.移动端.游戏主机端. 发布运行之前的Cubes场景至桌面端,我们先选择File->Build Settin ...