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 ...
随机推荐
- Maxon Cinema 4D Studio R20.026 中文破解版下载
Maxon Cinema 4D Studio,是 Maxon 公司开发的一款专业三维工具包,如果你需要一个得力助手,轻松快速创建令人称赞的 3D 图形作品,那么这是你的最佳选择. 为何使用Cinema ...
- springboot+druid连接池及监控配置
1. 问题描述 阿里巴巴的数据库连接池Druid在效率与稳定性都很高,被很多开发团队使用,并且自带的Druid监控也很好用,本章简单介绍下springboot+druid配置连接池及监控. 2. 解决 ...
- 多线程总结-同步之ReentrantLock
目录 1 ReentrantLock与synchronized对比 2.示例用法 2.1 基本用法 2.2 尝试锁 2.3 可打断 2.4 公平锁 1 ReentrantLock与synchroniz ...
- STM32F072从零配置工程-串口USART配置
也是使用HAL库进行配置,通过STMCube生成代码,可以通过这个简单的配置过程看到STMCube生成代码的一种规范: 从main函数入手观察其外设配置结构: 首先是HAL_Init()进行所有外设的 ...
- Linux系统-CENTOS7界面美化
前期准备: 在美化前,我们先安装一个扩展源. yum install -y epel-release 然后安装字体包 yum -y install liberation-mono-fonts 安装gn ...
- Java编程思想:文件读写实用工具
import java.io.*; import java.util.ArrayList; import java.util.Arrays; public class Test { public st ...
- C# .net Ueditor实现图片上传到阿里云OSS 对象存储
在学习的时候,项目中需要实现在Ueditor编辑器中将图片上传到云储存中,老师演示的是上传到又拍云存储,既然看了一遍,直接照搬不算本事,咱们可以依葫芦画瓢自己来动手玩玩其它的云存储服务. 现在云计算产 ...
- D:苏卿念发红包
首先,题目中已经说得很明确了(按照常理也是). 当有mmm个包,你第kkk个抢.k>mk>mk>m的话.显然,平时会显示:来晚了一步,红包已经被领完了\text{来晚了一步,红包已经 ...
- PTA 打印沙漏
https://pintia.cn/problem-sets/17/problems/260 #include <bits/stdc++.h> using namespace std; i ...
- Flink实战(七) - Time & Windows编程
0 相关源码 掌握Flink中三种常用的Time处理方式,掌握Flink中滚动窗口以及滑动窗口的使用,了解Flink中的watermark. Flink 在流处理工程中支持不同的时间概念. 1 处理时 ...