【博学谷学习记录】超强总结,用心分享| Cookie&Session详解

本文介绍了Cookie和Session作为客户端和服务端的会话跟踪技术,详细讲解了它们的基本使用、工作原理及细节。Cookie数据存储在客户端,可能存在安全风险,而Session数据存储在服务端,相对安全。Cookie的存活时间可通过setMaxAge设置,Session则依赖于Cookie实现,无操作30分钟后自动销毁,可通过invalidate()立即销毁。
摘要由CSDN通过智能技术生成

Cookie

概述

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

基本使用

  • 发送Cookie
    • 创建Cookie对象,并设置数据
    Cookie cookie = new Cookie("key","value");
    
    • 发送Cookie到客户端:使用response对象
    response.addCookie(cookie);
    
  • 获取Cookie
    • 获取客户端携带的所有Cookie,使用request对象
    Cookie[] cookies = request.getCookies();
    
    • 遍历数组,获取每一个Cookie对象:for
    • 使用Cookie对象方法获取数据
    cookie.getName();
    cookie.getValue();
    

原理分析

对于Cookie的实现原理是基于HTTP协议的,其中设计到HTTP协议中的两个请求头信息:

  • 响应头:set-cookie
  • 请求头: cookie

使用细节

  • Cookie的存活时间
    • 设置Cookie存活时间
    setMaxAge(int seconds)
    

参数值为:
1.正数:将Cookie写入浏览器所在电脑的硬盘,持久化存储。到时间自动删除
2.负数:默认值,Cookie在当前浏览器内存中,当浏览器关闭,则Cookie被销毁
3.零:删除对应Cookie

  • Cookie存储中文
    • 存储中文,需要掌握URL编码和解码的使用

Session

概述

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

  • Session是存储在服务端而Cookie是存储在客户端
  • 存储在客户端的数据容易被窃取和截获,存在很多不安全的因素
  • 存储在服务端的数据相比于客户端来说就更安全

基本使用

  • 获取Session对象,使用的是request对象
	HttpSession session = request.getSession();
  • Session对象提供的功能
    • 存储数据到 session 域中
    void setAttribute(String name, Object o)
    
    • 根据 key,获取值
    Object getAttribute(String name)
    
    • 根据 key,删除该键值对
    void removeAttribute(String name)
    

原理分析

Session是基于Cookie实现的

使用细节

  • 钝化
    • 在服务器正常关闭后,Tomcat会自动将Session数据写入硬盘的文件中
  • 活化
    • 再次启动服务器后,从文件中加载数据到Session中
  • Session销毁
    • 默认情况下,无操作,30分钟自动销毁
    • 调用Session对象的invalidate()进行销毁
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值