[转]cookie、sesstion、localstorage、sesstionstorage的使用和区别
文章目录
- 基本概念
- cookie详解
- 1、服务端写入cookie
- 2、客户端查看cookie
- 3、前端JS获取cookie
- sesstion详解
- 1,服务端生成sesstion。
- 2,客户端查看sesstionId
- localStorage的使用
- sesstionStorage
基本概念
- cookie,是在客户端(浏览器)存储少量数据的地方,通常用于存储用户数据。在客户端和服务端进行交互的时候,会携带cookie到服务器。默认情况下,退出浏览器,cookie会被清除,但是cookie你可以给设置一个过期时间,在这个时间之前,cookie都不会被清除。
- sesstion,是在服务端存储数据,保持用户会话的一种技术,通常用于客户端和服务端的通信。sesstion会在客户端的cookie中,存储一个sesstionid,每次发送请求的时候,会把这个sesstionid携带过去。在没有用户操作的情况下,sesstion会默认存储30分钟的数据,过期之后,需要重新获取sesstion。
- localstorage,一种纯前端的存储数据的方式,存储数据量远远大于cookie。localstorage中的数据存储,和服务端完全没有任何关系。localstorage没有过期时间,只能手动调用相关API进行清除。
- sesstionstorage,也是一种纯前端的数据存储方式,不过这个sesstionstorage,仅仅是在浏览器打开的状态下的临时数据存储,当浏览器刷新,关闭时,存储的数据会丢失。
cookie详解
在一个网页登陆的时候,调用登陆接口,服务端在返回数据的时候,会忘cookie中写入用户信息。以后的每次接口请求,都会自动携带这个cookie信息。
在前端,使用js也能获取当前域名下的cookie信息,获取到的cookie是一个字符串,基本语法是:
let cookie = document.cookie;
1、服务端写入cookie
Cookie cookie = new Cookie("user", "admin");
response.addCookie(cookie);
cookie是在服务端实例化一个Cookie类得到的。在响应中response.addCookie()方法进行添加cookie。
package com.ipackage.servlet;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;/*** Created by mapbar_front on 2019/8/1.*/
@WebServlet("/cookie")
public class CookiesServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {System.out.println("用户登陆成功");Cookie cookie = new Cookie("user", "admin");response.addCookie(cookie);response.getWriter().println("login sucess");}
}
2、客户端查看cookie
在浏览器中访问http://localhost:8080/cookie,就可以看到相应的请求信息。
显而易见,cookie是存储在客户端的。
3、前端JS获取cookie
console.log(document.cookie);
// "user=admin"
浏览器能够获取当前的cookie,证明我们的cookie其实是一种不安全的交互方式。基于这种保存用户信息的缺陷,出现了sesstion用户会话技术。
sesstion详解
这里要切记,每次打开新的浏览器窗口,都会生成新的sesstionId,浏览器窗口和sesstion一一对应,这是保证用户数据安全的核心部分。
1,服务端生成sesstion。
HttpSession session = request.getSession();
session.setAttribute("name", "张三");
String sesstionId = session.getId();
package com.imooc.servlet.session;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;/*** Created by mapbar_front on 2019/8/1.*/
@WebServlet("/sesstion/login")
public class SesstionLoginServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {HttpSession session = request.getSession();session.setAttribute("name", "张三");String sesstionId = session.getId();System.out.println(sesstionId);request.getRequestDispatcher("/sesstion/index").forward(request, response);}
}
2,客户端查看sesstionId
在浏览器输入http://localhost:8080/sesstion/login
localStorage的使用
不同于cookie和sesstion,localStorage是纯前端的存储数据的方式。
localStorage.setItem("user", "mapbar_front");
执行了上面的语句,你在你的控制台中的Application中看到刚刚设置的LocalStorage。
localStorage.getItem("user"); // "mapbar_front"
localStorage在不清除的情况下,哪怕关闭浏览器,还是会得到信息,是持久存储的。
sesstionStorage
sessionStorage.setItem("user", "mapbar_front");
sesstionStorage.getItem("user");
// "mapbar_front"
[转]cookie、sesstion、localstorage、sesstionstorage的使用和区别相关推荐
- cookie html5,HTML5——存储(cookie、localStorage、sessionStorage)的区别
cookie 本来用于客户端和服务端通信, 但是因为它有本地存储的功能,于是被"借用"了. 使用方法 document.cookie 获取和修改即可 缺点 存储量太少,只有4kb ...
- cookie、localStorage和sessionStorage三者的区别
cookie.localstorage和sessionStorage三者都是在开发中用到的临时存储客户端会话信息或者数据的方法,下面就简单介绍一下三者的区别: 一.存储的时间有效期不同 1.cooki ...
- 用cookie和localStorage存储登录信息的区别
前几天面试问项目时问到了为什么用localStorage存储登录信息不用cookie,做项目的时候确实没有想过为什么,只是因为localStorage这个api用起来方便,cookie还要自己封装,于 ...
- session,cookie,sessionStorage,localStorage的区别及应用场景
浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟服务端进行数据交互. 一.cookie和session cookie和session都是用来跟踪浏览器 ...
- 彻底理解cookie,session,localStorage(附代码)
2019独角兽企业重金招聘Python工程师标准>>> 1. cookie 1.1 什么是cookie cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某 ...
- 用cookie实现localstorage功能
在项目中需要利用到html5的localstorage.但在利用这个属性的时候却发现无法达到预定目标.经过不断的检查及排除,最后发现原因所在: 项目中使用的浏览器是支持localstorage的,但是 ...
- cookie对比localStorage哪个适合作为网站皮肤存储
cookie对比localStorage哪个适合作为网站皮肤存储 cookie cookie : 一般由服务器生成,可设置失效时间.如果在浏览器生成,默认是关闭浏览器之后失效 存储大小:4k 每次都会 ...
- “约见”面试官系列之常见面试题第十二篇之cookie和localstorage(建议收藏)
目录 1.cookie (1)什么是cookie (2)通过JavaScript创建cookie 2.localStorage和sessionStorage 使用相同的API 3.cookie.loc ...
- 前端存储之cookie、localStorage、sessionStorage、indexDB
cookie Cookie 是小甜饼的意思.顾名思义,cookie 确实非常小,它的大小限制为4KB左右,是网景公司的前雇员 Lou Montulli 在1993年3月的发明.它的主要用途有保存登录信 ...
最新文章
- 【ubuntu】ubuntu14.04、16.04、18.04 LTS版本支持时间
- /bin/bash^M解决办法
- lucene,基于QueryParser的搜索
- ambari hive mysql_ambari方式安装hadoop的hive组件遇到的问题
- 小程序----使用Less
- 将对象集合包装成JSON格式
- 编译原理(四)之解析语言翻译成三地址代码
- [na]华为acl(traffic-filter)和dhcp管理
- centos8 yum太慢_Yum 慢到无法忍受?那是因为你没有这么做
- 数据库一些开发者了解的操作
- 使用Kibana工具测试elasticsearch数据
- ERROR - ORA-12560: TNS:protocol adapter error
- 机械臂视觉抓取仿真,vrep与matlab联合仿真示例
- 从零开始学习Java的简单步骤和方法技巧
- 【私藏好用】将bmap地图,Quik等五款软件打包送你端午节礼物
- 芝士合集(以便查看)
- 主题颜色提取 ——— Palette
- 媒体对华为不公,国人应该清醒 [转]枯荷雨声
- Github每日精选(第77期):Go (Golang) 编写的 HTTP Web 框架gin
- 【转载】面向对象编程的弊端是什么?
热门文章
- RocketMQ-PushConsumer配置参数详解
- activiti 功能概述_子串功能概述
- json 转对象函数_JSON_QUERY()函数从JSON数据提取对象
- 使用PowerShell SQL Server DBATools的IDENTITY列阈值
- centos7 安装sql_在Linux Distribution CentOS 7上安装SQL Server vNext CTP
- 行存储索引改换成列存储索引_索引策略–第2部分–内存优化表和列存储索引
- Fiddler过滤css、js、图片等静态文件
- RaspberryPi(一)
- Scikit-learn库中的数据预处理(一)
- springmvc文件下载之文件名下划线问题终极解决方案