基于token的用户认证机制
HTTP是一种无状态协议,用户通过浏览器访问服务端的每次请求都是相互独立的,服务端无法根据HTTP请求来识别用户
Cookie Session 技术来记录访问者的基本信息
Cookie
储存在用户客户端上的数据
不可跨域名性
if(map.containsKey("ticket")) {
Cookie cookie =newCookie("ticket", map.get("ticket").toString());
cookie.setPath("/");
if(rememberme) {
cookie.setMaxAge(3600*24*5);
}
response.addCookie(cookie);
Session
Session对象储存特定用户会话的属性及配置信息,实现会话保持和跟踪
HTTP是一种无状态协议,用户通过浏览器访问服务端的每次请求都是相互独立的,服务端无法根据HTTP请求来识别用户
项目介绍 ,主要负责数据库表结构的设计
设计表结构是否将常更新的字段与不长更新的字段分离,大字段与小字段分离,经常查询的组合放在一个表中, 是否满足数据库范式,索引应该建立在那一列上,选择哪种引擎,数据大小的选择。
user 表包含id name password salt head 四个字段 首先满足第一范式 列的原子性,每一列属性都是不可分割的
满足第二范式 ,每个表必须有一个主键 (id为主键)表中所有列必须完全依赖于主键不能依赖于主键的一部分(表中未使用复合主键无此问题)减少数据库冗余
满足第三范式,表中的每一列都直接依赖于主键(id),没有间接依赖与主键
索引的选择因为登录和注册的时候都需按name查询所以在name作为索引
数据大小的选择,salt字段在代码设计是是生成一个RandomUUID截取5个字符所以长度选择5就足够。
innodb的特性 InnoDB是一个健壮的事务型存储引擎尽量选择innodb引擎
表中要增加唯一索引,在网络卡的时候用户会重复点击提交,会向数据库查人重复记录,前段代码可以拦截【唯一索引是最后一道防线了,高并发的时候如果前端,代码,缓存都没有拦截住重复数据这里就会起到关键的作用】
数据库表结构设计不好会带来很大麻烦,降低性能
分表分库,读写分离,分布式数据库,
网友评论