会话技术(Cookie与Session)揭密

《Session/Cookie 封神教程!3张图 + 可运行代码,讲透会话技术(原理 + 实战 + 避坑)》 《Session/Cookie 封神教程!三张图 + 可运行代码,讲透会话技术(原理 + 实战 + 避坑)》 阅读详情

一、什么是会话技术

简单的说:客户开一个浏览,点击多个超链接,访问服务器多个Web资源,然后关闭浏览器,整个过程称之为一个会话。

问:若多个用户访问服务器产生了各自的数据需要保存,那么就可以用会话技术来保存了。

二、Cookie技术

1.      概念:cookie技术是客户端的技术,代表数据会保存在客户端中。服务器把每个用户的数据以cookie的形式写给用户各自的浏览器。这样当用户使用浏览器再去访问服务器的web资源时就会带着各自的cookie数据去。

2.      Cookie API相关

2.1创建一个Cookie可以直接new Cookie(name,value)。如何写入进去,可以通过response.addCookie(cookie),它相当于response.setHeader(“set-cookie”,”name=value”)。

2.2一个Cookie只能标识一种信息一个name,它至少含有一个name和value属性。另外一个Web站点可以向浏览器发送多个cookie,但最多只能发20个。而且每个Cookie大小不能超过4KB.

而一个浏览器最多只能存放300个Cookie。即Web浏览器存放了多个站点的Cookie。

2.3 Cookie的属性有以下:

name:属性必有。 Value:唯一的值,取值必须有。  Comment:可选属性,注释。

Path:路径。可选的,默认值:path。此path具有包含的性质,即/demo5的path,可以对http://localhost/demo5/servlet/DE.do有效果,对http://localhost/demo5/1.do也有效果。但/demo5/servlet,只对http://localhost/demo5/servlet/DE.do有效果,而对http://localhost/demo5/1.do是没有效果。这个是有默认值的,访问http://localhost/demo5/servlet/DE.do,则respo.addCookie的path为/demo5/servlet,而访问http://localhost/demo5/1.do,则respo.addCookie的path为/demo5。

Domain:域名。访问地址http://localhost/demo5/servlet/ui.do默认值是localhost。

maxAge:最大存活。可选的,默认值是一次会话,在用户退出浏览器会自动消失。巧妙的利用这个属性,可以让用户的数据清空掉setMaxAge(0),或保存为一长段时间 setMaxAge(num)。

注意:删除cookie时,必须保证path一致,否则不会删除掉。一般都是setPath(request.getContextPath())。Name不能唯一定位Cookie,只有domain+path+name才能唯一定位Cookie。

三、Session技术

1.      概念:session技术是服务器技术,代表数据会保存在服务器端中,便需要Cookie的支持(若客户端禁用了cookie了,那个客户端向服务器每个url请求最好服务器向客户端传url地址时,就用response.encodeURL)。服务器在运行时可以为每个用户的浏览器创建一个其独享的HttpSession对象,由于session为用户浏览器独享。所以用户在访问web服务器的web资源时可以把各自的数据放在各自的session中,当用户再访问其它的web资源时,其它的web资源就可以从session中取出用户自己的数据进行处理了。

2.      Session原理概述图:

细节说明:

           Request.getSession,首先

2.1 会从请求中找name为JSESSIONID的cookie,找到取出JSESSIONID的值id。把此id从内存中相应的session对象。

2.2 若找不到session对象,则web容器会创建一session对象。并把此session对象id以JSESSION-ID的name-value的cookie形式存入的response.addCookie中。

2.3 或找到了session对象,则把此id值的session对象,从内存中取出来用。

2.4 下次客户端再次请求时会带的cookie的值来。这样同一次会话,同一jsessionid,所以同一会话中session的值可以共享保存。

 

注意:session的存活默认是30分钟,若30分钟之内浏览器没有进一步操作,那么30分钟之后,虽然浏览器再次带来此cookie值,但内存中session已经消亡了。而另一个情况是,session默认是1次会话存活着。所以关闭浏览器后,再打开后由于一次会话上次的cookie消失了,那么也取不到内存的session对象了。

request.getSession(boolean create):

create=true:作用等同于getSession()

          create=false:只获取不创建。

3.      客户端禁用Cookie后的会话数据保存问题

3.1当客户端禁用cookie后,如果访问地址是http://localhost,则禁用无效.(根据客户端的不同而不同),测试用是http://ip地址

URL重写:

http://127.0.0.1:8080/demo5/servlet/BuyServlet  oldUrl

http://127.0.0.1:8080/demo5/servlet/BuyServlet;JSESSIONID=23432432newUrl

3.2操作代码示例:response.encodeURL(oldUrl)------------>newUrl

           自动判断客户端有无禁用cookie,如果禁用了就重写url,没有禁用就不写了。

4.      HttpSession对象的生命周期和状态转换.

4.1修改session的默认超时时间

在web.xml修改:

<session-config>

           <session-timeout>1</session-timeout>分钟,至少一分钟

</session-config>

4.2浏览器会话的界定:

IE:

IE8+:开启的多个IE进程窗口共享同一个会话。

IE7-:开启一个新的IE进程不共享同一次会话。

新开的标签(Tab)页也属于同一次会话。

           通过<ahref="" target="_blank"/>开启的新窗口和原来的窗口属于同一次会话。


注: 原文链接地址http://blog.youkuaiyun.com/chenshufei2/article/details/8009992

cas单点登录流程揭密 cas中的Cookie、Session运用流程 阅读详情

相关推荐

FPGA 核脉冲梯形成型 Verilog 实现:从 MATLAB 到 50MHz 采样率部署

本文详细解析了FPGA实现核脉冲梯形成型的完整流程,从MATLAB仿真到50MHz采样率的Verilog硬件部署。重点探讨了梯形成型算法对负指数信号的优化处理,包括定点数量化、流水线架构设计及资源优化技巧,为核辐射探测与高能物理实验提供高效解决方案。

weixin_30920513的博客 389

会话技术(Cookie和Session)

会话技术(Cookie和Session)

weixin_62190119的博客 3293

ensp企业网综合实验(课程设计)

使用MSTP+VRRP技术实现负载均衡以及增加网络的可靠性;出口配置napt;所有用户均为自动获取IP地址;

qq_50829760的博客 1万+

会话技术------Cookie、Session、Token(JWT)详解

Cookie是一种在客户端(通常是Web浏览器)和服务器之间传输的小型文本文件。它由服务器通过HTTP响应的头部设置,并存储在客户端的浏览器中。当客户端发送后续请求时,会将该Cookie信息包含在HTTP请求头中发送给服务器。Session是一种在Web应用程序中跨请求保持用户状态的机制。Session是一段服务器上的存储区域,用于存储用户信息和状态。当用户第一次访问Web应用程序时,服务器会创建一个Session,并给它分配一个唯一的标识符(session ID),然后将该标识符发送给客户端。

m0_74229735的博客 5260

Mumax3代码模板:从基础设置到材料参数优化

本文提供了一份详尽的Mumax3微磁学模拟代码模板,从基础网格设置、边界条件到核心材料参数(如钴的Msat、Aex、Ku1)配置与优化均有涵盖。文章深入解析了特征长度计算、初始化方法、弛豫与动力学模拟流程,并分享了并行计算与参数扫描等效率提升技巧,旨在帮助用户快速上手并优化模拟工作流。

moss5的博客 702

西电微机系统课程设计步进电机开环控制系统

** 微机系统与应用课程设计 课题二 步进电机开环控制系统设计** 一、程设计目的 掌握微机系统总线与各芯片管脚连接方法,提高接口扩展硬件电路的连接能力。 加深对 A/D 和并行接口芯片的工作方式和编程方法的理解。 搞懂步进电机的工作原理及控制方式,掌握开环控制系统的设计思路和实现方法。 二、课程设计的内容 手动调节电位器旋钮(0V~5V),通过 ADC0809 模拟输入水库水位 0 米~50...

qq_37015775的博客 4038

会话技术

一、会话技术的概述 1、会话技术: 是一种维护同一个浏览器与服务器之间多次请求数据状态的技术,它可以很容易地实现对用户登录的支持,记录该用户的行为,并根据授权级别和个人喜好显示相应的内容。 2、PHP中最常用的两种会话技术 Cookie指的是一种在浏览器端存储数据并以此来跟踪和识别用户的机制 Session指的是将信息存放在服务器端的会话技术 二、Cookie简介 ●在Web应用程序中,Cooki...

weixin_44739304的博客 781

深入解析UE5内存分析:从Memreport到Unreal Insights

本文深入解析了UE5内存分析的两大核心工具:Memreport与Unreal Insights。Memreport提供详细的内存快照,帮助定位UObject等资源的内存占用;而Unreal Insights则能进行实时监控与历史回溯,精准追踪内存泄漏。掌握这两款工具是优化UE5项目性能、确保大型项目稳定运行的必备技能。

lg888的博客 1009

Cookie及Session

一 会话技术 1、会话 一次会话中包含多次请求和响应 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止 2、功能 在一次会话的范围内的多次请求间,共享数据 3、方式 客户端会话技术:Cookie 服务器会话技术:Session Cookie 1、概念 客户端会话技术,将数据保存到客户端 2、快速入门 使用步骤 1 创建Cookie对象,绑定数据 new ...

superfloat的博客 283

【Bug已解决】codex: tool call timeout / Function execution exceeds limit — CodeX CLI 工具调用超时解决方案

CodeX CLI 工具调用超时(Bash/文件/MCP)的解决方案,含增加超时、拆分命令、后台运行、避免交互卡住与限制读取。

博客 4204

热力学仿真软件:SimScale_(1).SimScale入门与基础操作

导航栏:位于页面顶部,包含项目管理、仿真设置、结果分析等主要功能。项目列表:展示用户创建的所有项目。工作区:用于进行具体的操作,如几何建模、网格划分、边界条件设置等。控制台:显示操作日志和仿真进度。网格划分是将几何模型离散化为一系列小单元的过程,这些单元用于求解热力学方程。SimScale提供了多种网格划分方法,包括结构化网格和非结构化网格。SimScale提供了丰富的API接口,用户可以通过编程语言进行二次开发,实现自动化仿真和结果分析。项目管理:创建、删除和管理项目。几何建模:创建、导入和修复几何模型。

kkchenjj的博客 1867

Tomcat之Session和Cookie大揭密

一、JSP和Servlet中的Cookie     由于HTTP协议是无状态协议(虽然Socket连接是有状态的,但每次用HTTP协议进行数据传输后就关闭的Socket连接,因此,HTTP协议并不会保存上一次的状态),因此,如果要保存某些HTTP请求过程中所产生的数据,就必须要有一种类似全局变量的机制保证数据在不同的HTTP请求之间共享。这就是下面要讲的Session和Cookie。    

autoinspired的专栏 5144

学Simulink——基于Simulink的PMSM矢量控制(FOC)从零搭建

《Simulink下PMSM矢量控制(FOC)全流程开发指南》 本教程系统讲解了基于Simulink的永磁同步电机(PMSM)磁场定向控制(FOC)实现方法。主要内容包括:FOC控制原理与双闭环架构设计、Simulink建模全流程(含PMSM本体建模、坐标变换、PI控制器设计等)、关键调试技巧以及工程扩展方向。教程以48V伺服电机为例,详细演示了从Clarke/Park变换到SVPWM生成的完整实现过程,并提供了参数配置建议和常见问题解决方案。通过本教程,读者可掌握FOC系统的核心实现技术,为开发高性能电机

xiaoheshang_123的博客 273

Tomcat之Session和Cookie大揭密(二)

二、Tomcat中的Servlet和Session    由于Cookie数存在保存在客户端,这样对于一些敏感数据会带来一些风险。而且Cookie一般只能保存字符串等简单数据。并且大小限制在4KB。如果要保存比较复杂的数据,Cookie可能显得有些不合适。基于这些原因,我们自然会想到在服务端采用这种类似Cookie的机制来存储数据。这就是我们这节要讲的会话(Session)。而在一个客户端和服务端...

guo_yang的博客 172

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Session过期问题揭密

//<![CDATA[Sys.WebForms.PageRequestManager._initialize(AjaxHolder$scriptmanager1, document.getElementById(Form1));Sys.WebForms.PageRequestManager.getInstance()._updateControls([tAjaxHolder$

坚定的锡兵 2082

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

会话技术(Session)

会话技术(Session) 什么是会话? 会话:生活中 一次谈话 一次交谈 会话是浏览器和服务器之间的多次请求和响应 为了实现某一个功能(比如买东西),浏览器和服务器之间可能会产生多次的请求和响应,从浏览器访问服务器开始,到访问服务器结束,浏览器关闭为止,这期间产生的多次请求和响应加在一起就称之为浏览器和服务器之间的一次会话 web中的会话:指的是 浏览器与服务器建立的一次连接 这次连接 就称之为一次会话 在这次会话中 可以包含多次请求与多次响应 并且可以在多次请求和响应间进行数据共享 会话技术 解决

cx9977的博客 3265

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Cookie&Session会话技术

第1章 案例:记录用户的上次访问的时间 1.1 需求: 当用户访问某些Web应用时,经常会显示出该用户上一次的访问时间。例如,QQ登录成功后,会显示用户上次的登录时间。通过本任务,读者将学会如何使用Cookie技术实现显示用户上次的访问时间的功能。 1.2 案例分析 1.2.1 流程分析与实现 1.2.2 新技术点分析 Cookie Cookie将用户的信息保存到客户端浏览器的一个技术,当下次访问的时候,浏览器会自动携带Cookie的信息过来到服务器端. Cookie的基本使用: 创建cooki

Sparks_t 1060

简述什么是会话技术?(Java Web)

会话技术的概述: 可以理解为:在日常生活中,从拨打电话到挂断电话之间的一系列通话过程就是一个会话。 会话技术分为Cookie技术和Session技术 Cookie技术:用于将会话过程中的数据保存到用户的浏览器中,从而使浏览器和服务器可以更好地进行数据交互。 Session技术:一种将会话数据保存到服务器的技术。 ...

wenter666的博客 5152

会话技术概述

当用户首次访问Web应用程序时,服务器可以在HTTP响应头中设置一个Set-Cookie头信息,在其中包含一些关于该用户的信息,比如会话ID、过期时间等。当用户首次访问Web应用程序时,服务器会为该用户创建一个Session对象,并将该Session对象与该用户的会话ID(通常保存在Cookie中)关联起来。无论使用Cookie还是Session,它们都能够保持用户的会话状态,使得用户在同一次会话中可以连续的访问Web应用程序。会话技术是指在Web应用程序中为每个用户维护其会话状态的技术。

记录java学习日常~ 539

会话技术Session

一、概念 Session:服务器端会话技术,在一次会话中的多次请求间共享数据,将数据保存在服务器端的对象中 获取HttpSession对象 HttpSession sessionrequest.getSession() 使用HttpSession对象:主要介绍以下三个方法 Object getAttribute(String name) void removeAttribute(String name) void setAttribute(String name,Object value) .

乌鸦喜欢写字台 896
上一篇: Java 23种设计模式的有趣见解
下一篇: Eclipse快捷键大全
疯疯爱吃辣
博客等级 码龄15年 25粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值