Tomcat:A cookie header was received[xxxxxx] that contained an invalid cookie. That cookie will be ignored.
搬运来源:https://blogs.yahoo.co.jp/dk521123/36721868.html
原因:
*从Tomcat 8,Cookie的解析已经符合RFC 6265。
*由于RFC 6265不再接受以前允许的逗号分隔符(例如RFC 2109)
"Cookie:KEY 1 = VAL 1,KEY 2 = VAL 2"的格式被视为非法
发生过程:
*客户端(Java)
|
HTTPS
↓
负载均衡器/粘性会话
|
HTTP
↓
* Apache(v 2.4.6)*也发生在2.2.31版本中
|
AJP 1.3
↓
* Tomcat(v8.5.11)
↓
* Web服务(Java)
RFC 2109
Cookie标头中的分隔符在任何地方都是分号(;)。
#Cookie标头中的分隔符是分号(;)无处不在 服务器还应该接受逗号(,)作为cookie值之间的分隔符,以便将来兼容。
#服务器应该接受逗号和分隔符以向后兼容cookie值。 ⇒换句话说,RFC 2109中的"Cookie:KEY 1 = VAL 1,KEY 2 = VAL 2"正常
RFC 6265
cookie-header ="Cookie:"OWS cookie-string OWS
cookie-string = cookie-pair *(";"SP cookie对) #没有具体使用逗号作为分隔符的描述
摘自Tomcat源码
org.apache.tomcat.util.http.parser.Cookie
public static void parseCookie(byte[] bytes, int offset, int len,
ServerCookies serverCookies) { // ・・・略・・・ // Using RFC6265 parsing rules, check to see if the header starts with a
// version marker. An RFC2109 version marker may be read using RFC6265
// parsing rules. If version 1, use RFC2109. Else use RFC6265. skipLWS(bb); // ・・・略・・・
if (skipResult != SkipResult.FOUND) {
// No need to reset position since skipConstant() will have done it
parseCookieRfc6265(bb, serverCookies);
return;
}
解决方法:
旧版中,修改${catalina.home}/conf/server.xml如下
<CookieProcessor className="org.apache.tomcat.util.http.LegacyCookieProcessor"/>
</Context>
Tomcat8/9修改context.xml如下
<CookieProcessor className ="org.apache.tomcat.util.http.LegacyCookieProcessor"/>
</Context>
参考资料:
https://tomcat.apache.org/tomcat-8.5-doc/config/cookie-processor.html
更多摘录
传统Cookie处理器 - org.apache.tomcat.util.http.LegacyCookieProcessor 这是基于RFC 6265,RFC 2109和RFC 2616的遗留cookie解析器。
它实现了对cookie规范的严格解释。
由于浏览器的各种互操作性问题,并不是所有严格的行为都被启用
默认情况下,还有其他选项可用于进一步放松此cookie处理器的行为
如果需要。
Tomcat:A cookie header was received[xxxxxx] that contained an invalid cookie. That cookie will be ignored.的更多相关文章
- webMagic解析淘宝cookie 提示Invalid cookie header
webMagic解析淘宝cookie 提示Invalid cookie header 在使用webMagic框架做爬虫爬取淘宝极又家页面时候一直提醒cookie设置不可用如下图 淘宝的验证特别严重,c ...
- HttpClient 报错 Invalid cookie header, Invalid 'expires' attribute: Thu, 01 Jan 1970 00:00:00 GMT
今天在给我姐夫写一个 QQ 自动加好友的程序,但是在 HttpClient 登陆 QQ 的时候报了一个错: -- ::] - Invalid cookie header: Jan :: GMT -- ...
- HttpClient4 警告: Invalid cookie header 的问题解决(转)
原文地址:HttpClient4 警告: Invalid cookie header 的问题解决 最近使用HttpClient4的时候出现如下警告信息 org.apache.http.client.p ...
- HTTP Cookie header 中set-cookie格式
Cookie相关的Http头 有 两个Http头部和Cookie有关:Set-Cookie和Cookie. Set-Cookie由服务器发送,它包含在响应请求的头部中.它用于在客户端创 ...
- requests库使用:通过cookie跳过验证码登录,并用Session跨请求保持cookie
拿我平时测试的一个系统为例,从UI层面来说必须先登录才可以进行后续操作,但是我在测试接口文档提供的接口时,发现并不需要登录,每个接口只要传参就可以正常返回.原因是我们这边专门弄了一个接口包来统一管理常 ...
- 只要访问的地址匹配cookie的地址时候 发送request请求时候 会携带上该cookie
只要访问的地址匹配cookie的地址时候 发送request请求时候 会携带上该cookie
- Cookie默认不设置path时,哪些请求会携带cookie数据
默认不设置path的时候,只会在请求和servlet同路径的情况下才会携带cookie中存储的数据,包含同级目录和下级目录 例如: 在http://localhost:8080/day01/test/ ...
- nginx日志配置(cookie,header,post等字段记录)
如果你对nginx日志格式,有这样那样的要求. 那么就看一下说明吧. $remote_addr The remote host $remote_user The authenticated user ...
- tomcat 8.5 及其 9.0 response写cookie 设置damain为 [.test.com] 出错 An invalid domain [.test.com] was specified for this cookie
抛出异常: java.lang.IllegalArgumentException: An invalid domain [.test.com] was specified for this cooki ...
随机推荐
- 「CQOI2016」K 远点对
/* 考虑暴力 可以n ^ 2枚举点对 然后用一个容量为2k的小根堆来维护第k大 kd-tree呢就是来将这个暴力优化, 每次先找远的并且最远距离不如堆顶的话就不继续找下去 貌似挺难构造数据卡的 */ ...
- mysql更新(八) 可视化工具Navicat的使用 索引
17-索引 一.索引的介绍 数据库中专门用于帮助用户快速查找数据的一种数据结构.类似于字典中的目录,查找字典内容时可以根据目录查找到数据的存放位置吗,然后直接获取. 二 .索引的作用 约束和加速查 ...
- SQL SERVER回滚恢复误操作的数据
在生产数据库做CURD操作时,可能会有执行某条语句误操作的情况发生,针对这个种情况有两点建议: 1. 在SQL SERVER上开启事务确认功能,当执行完语句后确认无误,再提交事务.(开启方法见附件图片 ...
- linux操作系统1 Linux入门
知识内容: 1.操作系统简介 2.Linux操作系统简介 3.Linux安装 4.Linux各大发行版本介绍 一.操作系统介绍 1.为什么需要操作系统 现代的计算机系统由处理器,主存,硬盘,键盘,鼠标 ...
- 搭建 yum 仓库
翻译来自:https://wiki.centos.org/HowTos/CreateLocalRepos 本地仓库 http 仓库 测试 Steps: 1.把rpm包放在一个目录中.可以根据需要在该目 ...
- python编程之禅
在python界面输入 import this >>> import this The Zen of Python, by Tim Peters Beautiful is bette ...
- 5.用 CSS 创作一个立体滑动 toggle 交互控件
原文地址:https://segmentfault.com/a/1190000014638655 HTML代码: <html> <head> <link rel=&quo ...
- leetcode551
public class Solution { public bool CheckRecord(string s) { ; ; ; var preChar = '\0'; ; i < s.Len ...
- random内置模块
import random random.random() #生成0-1的随机浮点数 random.randint(1, 10) #生成1-10的整数 random.randrange(1,10) # ...
- ABAP-消息发布
FUNCTION ZSDI0009_DO_INFOMESSAGE. *"----------------------------------------------------------- ...