当前位置: 首页 > news >正文

深入分析java web技术内幕----读书笔记(六)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/63683030

这位大侠,这是我的公众号:程序员江湖。 
分享程序员面试与技术的那些事。 干货满满,关注就送。 
这里写图片描述

session和cookie都是用来保持用户与后端服务器的交互状态。

cookie大小大小受限,并且占带宽。

session不能在多个服务器间共享。

 

cookie是保存在客户端的一个数据结构

session是保存在服务端的一个数据结构。

 

服务端:在tomcat中使用addcookie方法添加cookie,真正则是在response中完成创建。

接受客户端cookie:通过request.getcookies()来获得。

 

request和response 

Request 和 Response 对象起到了服务器与客户机之间的信息传递作用。Request 对象用于接收客户端浏览器提交的数据,而 Response 对象的功能则是将服务器端的数据发送到客户端浏览器。

 

session对cookie的改进:

cookie在每次访问时需要传回,增加传输量,可以设置id作为标志进行传递,即session id是通过cookie传递的,属性值为jsessionid。

 

有了seesionid,服务端可以创建httpsession对象。第一次触发通过request.getsession()。以后都通过session id来找到session。

 

session没过期时,即使容器关闭或重启也会被持久化。

同个浏览器打开同一个应用多次会使用同一个session,不同浏览器打开一个应用会用不同的session。

 

 

 

cookie问题:客户端存储限制、cookie管理混乱,cookie不能跨域名,安全问题。

可以用分布式session框架解决。

实现方式:

 

1统一使用订阅服务器管理cookie,应用服务器需要哪个cookie由订阅服务器来推送。一般用zookeeper实现

集群的配置管理。

 

 

2session将保存到分布式缓存中,让服务器可以共享访问,因为session不可能同步到每个服务器上。

 

分布式缓存可以用memcache实现。

 

3cookie太大的办法是压缩cookie,将keyvalue转化为文本。

 

4多终端session统一:手机和电脑的cookie和session需要统一,即包括数据结构,存储。防止二次登陆等问题。所以需要在服务端统一session,所有终端拿到的session id都一样。

 

5:热门。电脑打开网页扫码登录

服务端不停检测标识,手机登录后产生标识使pc端登录成功。

相关文章:

  • 阻塞、非阻塞、同步、异步浅析
  • JqERY
  • BZOJ 4756 线段树合并(线段树)
  • 给自定义tabBar的按钮添加点击放大缩小的动画
  • idea 实现热部署
  • Advanced Auto Layout:Working with Self-Sizing Table View Cells
  • 震精 - PostgreSQL 单机3.9 万亿/天(计数器、序列、自增)
  • 什么是 SHTML
  • mysql57修改root密码
  • python3编码问题终结者--还搞不懂你来找我
  • Python(三)之Python的表达式和语句概述
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • 消息中间件简介
  • 画像分析(4-1)智能搬迁和数据订阅
  • Bzoj4771 七彩树
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • Docker入门(二) - Dockerfile
  • JavaScript标准库系列——Math对象和Date对象(二)
  • Javascript弹出层-初探
  • JSDuck 与 AngularJS 融合技巧
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • vuex 学习笔记 01
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 力扣(LeetCode)56
  • 使用 QuickBI 搭建酷炫可视化分析
  • 首页查询功能的一次实现过程
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • (1)SpringCloud 整合Python
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (十八)SpringBoot之发送QQ邮件
  • (一)u-boot-nand.bin的下载
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • .NET 回调、接口回调、 委托
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .net6 webapi log4net完整配置使用流程
  • .NetCore部署微服务(二)
  • @Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成
  • @transaction 提交事务_【读源码】剖析TCCTransaction事务提交实现细节
  • @Valid和@NotNull字段校验使用
  • [ C++ ] 继承
  • [ 数据结构 - C++] AVL树原理及实现
  • [AIGC 大数据基础]hive浅谈
  • [BZOJ2281][SDOI2011]黑白棋(K-Nim博弈)
  • [dfs搜索寻找矩阵中最长递减序列]魔法森林的秘密路径
  • [EFI]Atermiter X99 Turbo D4 E5-2630v3电脑 Hackintosh 黑苹果efi引导文件
  • [IE技巧] 如何关闭Windows Server版IE的安全限制
  • [javaSE] 数据结构(二叉查找树-插入节点)
  • [linux] GFLOPS和TFLOPS的换算
  • [node]Node.js 模块系统
  • [导入][原创]关于Select Where In 的排序问题
  • [工业自动化-19]:西门子S7-15xxx编程 - 软件编程 - PLC程序块、组织块OB与PLC多线程原理、OB、FC、FB、DB
  • [故障解决]Ssh连接port 22: Connection refused