Javaweb会话跟踪技术(Cookie和Session)

本文介绍了会话跟踪技术的基础概念,包括HTTP协议下的无状态性以及如何通过Cookie和Session实现数据共享。重点讲解了Cookie的工作原理、Session的使用与管理,以及Cookie和Session在存储位置、安全性和服务器性能上的差异。
摘要由CSDN通过智能技术生成

一.会话跟踪技术的概述

会话:

用户打开浏览器,访问网页资源,会话就建立了。直到有一方断开连接,会话结束。在一次会话中可以包含多次请求和响应。


会话跟踪:

一种维护浏览器状态的方法,服务器需要多次识别请求是否来自同一个浏览器,以便在同一次会话中的多次请求共享数据。

通俗理解:例如我打开了某个购物软件,开始了一个会话,然后把一件喜欢的裙子加入了购物车,点击请求,收到响应了,告知商品成功加入购物车。在这个过程中,客户端和服务器建立了一次交互。接着在同一个会话中打开购物车去结算,虽然这是一次新的请求,但由于它是在同一个会话交互中进行的,客户端会在请求中发送会话标识符。服务器能够识别你的会话,并根据之前的请求中的信息,在购物车中显示你所添加的裙子的数据。因此,这就是在一次会话的两次请求中共享数据,确保了连贯的用户体验。

二.为什么要共享数据?


答:因为HTTP协议是无状态的,每次浏览器向服务器请求时,服务器都会将该请求视为新的请求,因此我们需要会话跟踪技术来实现会话内数据共享。

三.实现方式


客户端会话跟踪技术:Cookie
服务端会话跟踪技术:Session

                     Cookei

四.Cookie基本原理


Cookie的实现是基于HTTP协议的
发送cookie到浏览器:响应头:set-cookie
携带cookie访问服务器:请求头:cookie

五.Cookie基本使用


Cookie:客户端会话技术,将技术保存到客户端,以后每次请求都携带Cookie数据进行访问

①发送Cookei

使用response对象

be4e8f4b37794039b7ea4860a78984dd.png

 运行结果65454e82433f48f9aadb4ca1e50c9425.png

 这是edge里面查看的结果a95edf212ff74b7aad0013b45031fdd8.png

获取数组的一个小技巧 iter

78edd63cb646480989f15de059de702e.png

 ②获取Cookie

使用request对象

ecaa4c2093d84a7a911bf634e584a54e.png

 运行结果

844a8ad2022542d0bcfa9d3c5e90dac4.png

六.Cookie存活时间


 默认情况下,cookie存储在浏览器内存中,当浏览器关闭,内存释放,则Cookie被销毁

setMaxAge(int seconds):设置cookie存活时间

1.正数:将cookie写入浏览器所在的电脑硬盘,持久化存储,到时间自动删除

2.负数:默认值,cookie随着浏览器的关闭而销毁

3.零:删除对应的cookie

七.cookie存储中文


cookie不能直接存储中文
如果需要存储,则要进行转码:URL编码 

                        Session


一.session是基于cookie的 

服务端会话跟踪技术:将数据保存到服务端

JavaEE提供HttpSession接口,来实现一次会话的多次请求间数据共享功能

如果数据存储在cookie里面,每次访问带来带去,就会造成泄露的隐患,所以使用Sessoin比较好一点

①Session基本使用


存储Session 

10c9a1d1b82341d4a8fb66a641527c18.png

 获取session

4d2c24dbd5524519b1a8e0b9f9c0f9ba.png

 运行结果:

b2e48b7cc2934dd498ac58a9ad5ca9df.png

 二.Session钝化、活化


服务器在重启后,sesion中的数据是否还存在
钝化:在服务器正常关闭后,Tomacat会自动将sesion数据写入到硬盘中
活化:再次启动服务器后,从文件中加载数据到sesion中.

三.sesion销毁 


默认情况下,无操作,30分钟自动销毁

四Cookie和Sesion区别
区别:

存储位置:cookie是将数据存储在客户端,sesion将数据存储在服务端

安全性:cookie不安全,sesion安全

数据大小:cookie最大3KB,sesion无大小限制

存储时间:cookie可以长时间存储,sesion默认30分钟

服务器性能:cookie不占用服务器资源,sesion占用服务器资源

  • 16
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值