状态管理

作者: itachi | 来源:发表于2016-12-29 10:45 被阅读14次

1、状态管理
(1)HTTP协议中每次连接处理一个请求,当连接断开时,服务器不会记住用户曾经访问过,该特点叫做无 状态,即HTTP协议是无状态协议
(2)我们在做某些业务时,可能一些业务是多次请求并有关系的(连贯的),需要服务器知道本次的请求 和上次的请求时一个连贯的业务,如:记住我,登录检查
(3)状态:记录一些数据,让服务器知道我曾经来过
(4)管理:采用某些技术实现这种记录

2、实现状态管理的技术
(1)Cookie:将数据保存在浏览器端,每次浏览器访问服务器,都会携带cookie中的数据
优点:服务器的压力小
缺点:数据容易被篡改,不安全
(2)Session:将数据保存在服务器端,需要给浏览器返回此数据的编号(sessionId),浏览器每次访问 服务器时需要携带此编号
优点:相对安全
缺点:服务器压力大

3、Cookie
浏览器访问服务器时,服务器将一些数据以set-cookie消息头的形式发送给浏览器,浏览器会将这些数据保 存在内存中,当浏览器再次访问服务器时,会将这些数据以cookie消息头的形式发送给服务器,通过这种方 式来管理状态。

3.1 Cookie的创建
Cookie cookie = new Cookie(String name, String value);
response.addCookie(cookie);

3.2 查询Cookie
Cookie[ ] cookie = request.getCookies( );
String name = cookie.getNmae( );
String value = cookie.getValue( );
//没有返回null

3.3 Cookie保存编码问题
Cookie的值只能是ASCII字符,若处理中,需要将中文转成ASCII字符形式可以使用 URLEncoder.encode( )方法和URLDecoder.decode( )方法进行转换

3.4 Cookie的保存时间
默认:浏览器关闭,cookie消失,可以是通过设置过期时间将其保存在硬盘上

3.5 Cookie的路径
浏览器访问服务器时,访问路径必须是创建Cookie时的路径或是其子路径才会携带cookie,否则浏览器访 问时不会发送cookie

3.6Cookie的限制
(1)cookie可以禁止
(2)cookie的大小有限制
(3)cookie的数量有限制(300)
(4)cookie的值只能是字符串,要考虑编码问题
(5)cookie不安全

相关文章

  • 学习笔记(十八)Vuex状态管理

    Vuex状态管理 组件状态管理及组件间通信回顾 状态管理 状态集中管理和分发,解决多个组件共享状态的问题 状态自管...

  • 轻松flutter之 组件状态管理

    管理状态的最常见的方法: 方法描述自身状态管理Widget管理自己的状态。父组件管理子组件状态父Widget管理子...

  • Flutter优质文章

    状态管理系列 Flutter | 状态管理探索篇——Scoped Model(一) Flutter | 状态管理探...

  • 状态管理

    1、状态管理(1)HTTP协议中每次连接处理一个请求,当连接断开时,服务器不会记住用户曾经访问过,该特点叫做无 ...

  • 状态管理

    响应式的编程框架中都会有一个永恒的主题——“状态管理”,无论是在React/Vue(两者都是支持响应式编程的web...

  • 状态管理

    小时候我也是一个蛮努力的人,别人学习的时候 我在学习,别人玩的时候我也在学习,但是学习成绩一直都排着末尾,明...

  • 状态管理

    1.局部状态管理 局部状态管理实际上是替代了setState带来的没必要的渲染 1.状态管理 按照个人的理解来看,...

  • 状态管理

    对于状态管理,有现成的vuex和redux等框架,能方便我们的开发,但在使用这些框架的时候,还是有必要先了解下什么...

  • 状态管理

    今天来简单的谈一下什么是状态管理。 首先看一下这两个图 1. 服务端渲染的WEB开发 2.前后端分离的单页应用(S...

  • 状态管理

    InheritedWidget ScopedModel(第三方库)

网友评论

    本文标题:状态管理

    本文链接:https://www.haomeiwen.com/subject/phbuvttx.html