讲师中心 微信公众号

工具推荐

视频效率加速
剧云
剧云

中文短剧剧本制作平台

updream

一键生成高质量推广成片

AniShort
AniShort

AI短剧协同制作平台

Laper
Laper

剧本策划到成片协作

Web.xml session-config cookie-config配置 Session Cookie设置

夏宇酱_5551

夏宇酱_5551

发布时间:2026-02-27 01:35:06

|

252人浏览过

|

来源于php中文网

原创

cookie-config 仅对新创建会话生效,不影响已有 Cookie;需清理浏览器 Cookie 或用隐身窗口验证,且须确保反向代理正确传递协议头、前端请求携带 credentials、domain/SameSite 配置合法。

web.xml session-config cookie-config配置 session cookie设置

session-config 中 cookie-config 不生效的常见原因

直接说结论:cookie-config 配置只在容器创建新会话(即调用 request.getSession() 且 session 不存在时)才写入 Cookie 响应头;如果会话已存在、或客户端已携带旧 JSESSIONID,容器不会重发 Cookie,配置自然“看起来没用”。

典型现象:改了 http-only 或 secure,但浏览器里旧 Cookie 还是没标记;或者本地开发设了 max-age,但关掉浏览器再打开,会话仍存在——其实是浏览器复用了内存中未过期的 Cookie,不是服务端没配对。

  • cookie-config 不影响已有 Cookie,只控制新发的响应头
  • 必须配合客户端清理(比如清空浏览器 Cookie 或用隐身窗口验证)才能观察效果
  • 若应用前端用 XMLHttpRequest 或 fetch 且未设 credentials: 'include',Cookie 根本不会被带上,此时服务端配置再全也没意义

secure 和 http-only 在不同部署环境下的行为差异

secure="true" 并不等于“只在 HTTPS 下生效”,而是要求容器只在响应协议为 HTTPS 时才发送该 Cookie;但如果反向代理(如 Nginx)终止 SSL,而 Tomcat 收到的是 HTTP 请求,它就认为不安全,不会加 Secure 标志——即使用户实际走的是 HTTPS。

同理,http-only="true" 是防止 JS 读取 document.cookie,但它对拦截网络请求、调试工具、或服务端 Session 劫持无防护能力。

  • 反向代理场景下,需在 web.xml 外额外配置 Tomcat 的 RemoteIpValve,让容器识别真实协议头(如 X-Forwarded-Proto)
  • http-only 开启后,前端 axios 或 fetch 仍可自动携带 Cookie,但 document.cookie 读不到值,调试时别误以为“Cookie 没传”
  • 某些老版本 IE 对 http-only 支持不一致,但现代主流浏览器均无问题

session-timeout 设置后,Cookie max-age 为什么没同步更新

session-config 里的 session-timeout 控制服务端 Session 对象的失效时间(单位分钟),而 cookie-config 中的 max-age 控制浏览器端 Cookie 的存活秒数——两者完全独立。不显式配置 max-age,容器默认发的是「会话级 Cookie」(即浏览器关闭即失效),和 session-timeout 无关。

例如:设了 session-timeout 为 30 分钟,但没设 max-age,用户关掉浏览器再打开,Session 就丢了;而如果设了 max-age="1800",Cookie 会在 30 分钟后自动删除,哪怕浏览器一直开着。

  • 要实现“服务端 30 分钟过期 + 浏览器 30 分钟自动删 Cookie”,必须同时配 session-timeout 和 cookie-config/max-age
  • max-age 值为负数(如 -1)表示会话 Cookie(默认行为),设为 0 表示立即删除(常用于登出逻辑)
  • 注意单位:session-timeout 是分钟,max-age 是秒

Tomcat 9+ 对 cookie-config 的兼容性限制

Tomcat 9 默认启用严格 Cookie 处理(RFC 6265),如果 cookie-config 中设置了 domain 但值不合法(比如带协议、含下划线、或非一级域名),整个 Cookie 可能被浏览器拒绝,导致会话无法维持。

更隐蔽的问题是:Tomcat 9.0.31+ 后,若未显式声明 same-site,容器不会自动补默认值,而现代浏览器(Chrome 80+)会对缺失 SameSite 的 Cookie 应用 Lax 策略——这可能导致跨站表单提交或 iframe 内嵌时丢失会话。

  • Domain 值必须以点开头(如 .example.com),且不能是 IP 或 localhost
  • 如需跨子域共享 Session,务必确认域名格式合法,并测试各浏览器表现
  • Tomcat 10+ 支持 same-site 属性,但低版本需靠过滤器或响应头手动设置

真正容易被忽略的,是 Cookie 生命周期由三段独立逻辑共同决定:服务端 Session 对象存活时间、响应 Cookie 的 Max-Age 或会话属性、以及浏览器自身策略(比如 Chrome 的第三方 Cookie 限制)。配错其中一环,问题就可能出现在你看不见的地方。

热门AI工具

更多
Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

相关专题

更多
如何配置Tomcat环境变量
如何配置Tomcat环境变量

配置Tomcat环境变量需要在系统中添加CATALINA_HOME变量,并将Tomcat的安装路径添加到PATH变量中。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

925

2023.10.26

idea如何集成Tomcat
idea如何集成Tomcat

idea集成Tomcat的步骤:1、添加Tomcat服务器配置;2、配置项目部署;3、运行Tomcat服务器;4、访问项目;5、注意事项;6、关闭Tomcat服务器。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

324

2024.02.23

怎么查看Tomcat源代码
怎么查看Tomcat源代码

查看Tomcat源代码的步骤:1、下载Tomcat源代码;2、在IDEA中导入Tomcat源代码;3、查看源代码;4、理解Tomcat的工作原理;5、参与社区和贡献;6、注意事项;7、持续学习和更新;8、使用工具和插件。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

509

2024.02.23

常见的tomcat漏洞有哪些
常见的tomcat漏洞有哪些

常见的tomcat漏洞有:1、跨站脚本攻击;2、跨站请求伪造;3、目录遍历漏洞;4、缓冲区溢出漏洞;5、配置漏洞;6、第三方组件漏洞。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

305

2024.02.23

tomcat日志乱码怎么解决
tomcat日志乱码怎么解决

tomcat日志乱码的解决办法:1、修改tomcat的日志编码设置;2、检查ide的编码设置;3、检查操作系统的编码设置;4、使用过滤器处理日志;5、检查外部系统的编码设置;6、检查文件编码方式等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

348

2024.02.23

weblogic和tomcat有哪些区别
weblogic和tomcat有哪些区别

weblogic和tomcat的区别:1、功能;2、性能;3、规模;4、价格;5、安全性;6、配置和管理;7、社区支持;8、集成能力;9、升级和更新;10、可靠性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

349

2024.02.23

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

601

2024.02.23

tomcat启动闪退怎么解决
tomcat启动闪退怎么解决

tomcat启动闪退的解决办法:1、检查java环境;2、检查环境变量配置;3、检查端口被占用;4、检查配置文件编码;5、检查启动时需要的配置文件;6、检查相关文件是否丢失;7、检查防火墙和杀毒软件设置。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

322

2024.02.23

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

40

2026.11.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Revel 官方 app.conf 文档
Revel 官方 app.conf 文档

共0课时 | 0人学习

php注册登录系统开发实战
php注册登录系统开发实战

共10课时 | 13.8万人学习

PHP基于Cookie的购物车模块设计
PHP基于Cookie的购物车模块设计

共10课时 | 11.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn