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 ...
随机推荐
- asp.net core 系列之Configuration
在ASP.NET Core中的App configuration 是通过configuration providers基于key-value对建立的.Configuration providers读取 ...
- Java内存模型以及线程安全的可见性问题
Java内存模型 VS JVM运行时数据区 首先Java内存模型(JMM)和JVM运行时数据区并不是一个东西,许多介绍Java内存模型的文章描述的堆,方法区,Java虚拟机栈,本地方法栈,程序计数器这 ...
- KVM :vnc 远程控制kvm创建虚拟机
一.vnc远程控制服务器 前期准备: 1.编辑/etc/hosts vi /etc/hosts 10.1.16.32 kvm 2.关闭防火墙 service iptables stop 3.关闭sel ...
- NOIp 2018 普及&提高组试题答案
你们考的咋样呢?在评论区说出自己的分数吧!
- 将web工程署到Linux简单实现
1,将数据库文件导出并导入到Linux下的数据库中 2,将数据库连接池的连接IP改为Linux所在服务器的 3,将工程文件以war包形式导出 4,利用secureCRT,Xshell等工具远程连接Li ...
- C#3.0新增功能09 LINQ 基础02 LINQ 查询简介
连载目录 [已更新最新开发文章,点击查看详细] 查询 是一种从数据源检索数据的表达式. 查询通常用专门的查询语言来表示. 随着时间的推移,人们已经为各种数据源开发了不同的语言:例如,用于关系数据 ...
- [小米OJ] 5. 找出旋转有序数列的中间值
排序,输出 #include <bits/stdc++.h> using namespace std; int main() { string input; while (cin > ...
- [HDOJ] 2026.Max Sum
2026.Max Sum (c++) Problem Description Consider the aggregate An= { 1, 2, -, n }. For example, A1={1 ...
- 《C# 语言学习笔记》——委托
委托是一种可以把引用存储为函数的类型. 委托的声明非常类似于函数,但不带函数体,且要使用delegate关键字.委托的声明制定了一个返回类型和一个参数列表. 在定义了委托后,就可以声明该委托类型的变量 ...
- Ubuntu通过修改配置文件进行网络配置
Ubuntu系统进行网络配置有的时候用图形界面不起作用,这种情况下可以直接修改某些启动脚本或配置文件 Ubuntu系统进行网络配置涉及到几个配置文件1./etc/network/interfaces ...