java.lang.IllegalArgumentException: Control character in cookie value or attribute.

该异常说明cookie中的value或属性有控制字符,但是我设置的value并没有特殊字符。
初步怀疑是中文编码问题,于是在将字符串进行base64编码之前先用Cookie cookie = new Cookie("name", URLEncoder.encode(str, "UTF-8"));将原字符串先进行utf-8编码,但是结果还会有如上异常。
把原来字符串中的中文去掉,用英文代替,尝试结果还是失败,看来不是字符串编码问题。

从网上检索相关资料如下:
Cookie的长度限制:
(1) 浏览器所允许的每个域下的最大cookie数目,从网上找到的资料大概是这么个情况 
IE :原先为20个,后来升级为50个 
Firefox: 50个 
Opera:30个 
Chrome:180个 
Safari:无限制

当Cookie数超过限制数时浏览器的行为:IE和Opera会采用LRU算法将老的不常使用的Cookie清除掉,Firefox的行为是随机踢出某些Cookie的值。当然无论怎样的策略,还是尽量不要让Cookie数目超过浏览器所允许的范围。

(2) 浏览器所允许的每个Cookie的最大长度 
Firefox和Safari:4079字节 
Opera:4096字节 
IE:4095字节

我们这里关心的是cookie最大长度,IE支持的最大cookie长度可达4095字节,但是这个长度应该是整个cookie对象的大小,如何计算还不清楚。
我这边IE9测试结果是,value的长度最大是76个字符,这个是经过base65编码后的,编码前的原始字符串长度要比这个更小。
另外,尝试将cookie的name长度减小,发现value的最大支持长度还是没变,应该是个固定值。
如果要保存比较多的数据,要么使用多个cookie,要么保存数据库的id等关键信息,下次取出后再查询数据库或读文件等。

以上的解决办法都尝试了,虽然系统运行正常,cookie也保存了,也可以正常记住密码并且登录。可是后台还是报错Control character in cookie value or attribute

后来才发现测试服务器环境与本地开发环境不一样,测试服务器Tomcat为7.0版本,而本地开发环境tomcat为8.5,

环境不统一就会出现各种千奇百怪的异常,在此提醒大家开发环境、测试、正式环境软件版本一定要统一!!!

cookie遇到java.lang.IllegalArgumentException: Control character in cookie value or attribute的更多相关文章

  1. Cookie存储中文报错:java.lang.IllegalArgumentException: Control character in cookie value or attribute.(转)

    项目中做自动登录和保存密码时,Cookie报错Java.lang.IllegalArgumentException,上google查了下 在http://hi.baidu.com/xtxycy/blo ...

  2. tomcat使用cookies缓存的时候中文报错解决办法 java.lang.IllegalArgumentException: Control character in cookie value or attribute.

    报错出现 java.lang.IllegalArgumentException: Control character in cookie value or attribute. at org.apac ...

  3. 异常:java.lang.IllegalArgumentException: Control character in cookie value or attribute.

    后台提示: 严重: Error processing requestjava.lang.IllegalArgumentException: Control character in cookie va ...

  4. HTTP Status 500 - Request processing failed; nested exception is java.lang.IllegalArgumentException: Control character in cookie value or attribute.

    HTTP Status 500 - Request processing failed; nested exception is java.lang.IllegalArgumentException: ...

  5. 创建Cookie抛出异常:java.lang.IllegalArgumentException: Control character in cookie value

    调用Cookie对象的构造函数可以创建Cookie.Cookie对象的构造函数有两个字符串参数:Cookie名字和Cookie值.   名字和值都不能包含空白字符以及下列字符:[ ] ( ) < ...

  6. 在浏览器访问Tomcat的时候报错java.lang.IllegalArgumentException: Control character in cookie value or attribute.

    出现这种情况的原因就是因为cookie中存在中文或者特殊符号造成的,应为Tomcat7不支持 解决方法: 1,首先必须先删除本地的cookie,否则项目无法访问 2,然后调整编码就行了

  7. 解决Tomcat的IllegalArgumentException: Control character in cookie value or attribute错误

    接口中带有中文,tomcat8 17-Apr-2019 13:21:23.734 严重 [http-nio-8082-exec-2] org.apache.coyote.http11.Abstract ...

  8. java.lang.IllegalArgumentException: Illegal character in query at index 261

    在BaseFragment中使用了LoadingPage,而LoadingPage的联网加载使用的是AsyncHttpClient.一直报java.lang.IllegalArgumentExcept ...

  9. Tomcat v7.0 java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986

    十二月 , :: 下午 org.apache.coyote.http11.AbstractHttp11Processor process 信息: Error parsing HTTP request ...

随机推荐

  1. Net core学习系列(四)——Net Core项目执行流程

    "跨平台"后的ASP.Net Core是如何接收并处理请求的呢? 它的运行和处理机制和之前有什么不同?本章从"宏观"到"微观"地看一下它的结 ...

  2. 【2019.09.19】数独(Sudoku)游戏之我见(软工实践第三次作业)

    Github项目地址:https://github.com/MokouTyan/suduku_131700101 [2019.09.20]更新:代码经过Code Quality Analysis工具的 ...

  3. 以SQL命令方式调用存储过程

    string str = "Data Source=.;Initial Catalog=***;Integrated Security=True"; using (SqlConne ...

  4. top中的wa的理解

    CPU使用率:参考 mpstat 手册,%usr + %nice + %sys + %iwoait + %irq + %soft + %steal + %guest + %gnice + %idle ...

  5. nginx支持websocket及websocket部分原理介绍

    nginx支持websocket及websocket部分原理介绍最近ipc通过websocket与server进行通行,经过无法通过nginx进行反向代理,只有直连nodejs端口.而且部署到阿里云用 ...

  6. typescript - 1.环境搭建

    安装 1.安装node.js 安装typescript npm install -g typescript 3.编译 tsc helloworld.ts Typescript开发工具Vscode自动编 ...

  7. Oracle系列六 分组函数

    分组函数作用于一组数据,并对一组数据返回一个值. 组函数类型 AVG COUNT MAX MIN STDDEV SUM 组函数语法 SELECT [column,] group_function(co ...

  8. WebGL调试工具分享

    学习WebGL,我们需要一些好用的调试工具,下面分享3个常用的调试工具. WebGL Inspector 下载地址:https://github.com/benvanik/WebGL-Inspecto ...

  9. 基于EasyNVR摄像机网页无插件直播服务二次开发实现H5播放页面的简单集成方案

    我们通常在构架一套视频SaaS应用的过程中,将平台设计为3层:视频硬件层(视频源).视频能力平台(vPaaS).视频应用平台(vSaaS),视频硬件包括各种IPC.NVR.编码器等视频生成设备,vPa ...

  10. 淡sqlserver对like '%关键词%' 处理时的索引利用问题

    说法一:百分号%通配符前置会让SQL查询不走索引,改走全表扫描.这种说法很流行 结论是错误的 事实上这种说法不太准确 通配符%前置会让SQL查找索引时效率极速下降,但在大多数情况下还是会走索引(不需要 ...