解决Tomcat8提示“有效字符在RFC 7230和RFC 3986中定义”的问题
字符 问题 解决 有效 定义 提示 RFC tomcat8
2023-06-13 09:16:49 时间
背景
在使用Tomcat8部署项目做测试的时候,发现有的接口会报错400,后端提示在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义的错误
原因
因为日志显示请求地址中包含不合法字符,出现400错误,
tomcat高版本严格按照RFC 3986规范解析地址。该规范只允许包含 a-zA-Z 0-9 - _ . ~ 以及所有保留字符 ! * ’ ( ) ; : @ & = + $ , / ? # [ ] 符号 。 但是项目在发起请求的参数中出现{}符号。
解决方法
在tomcat配置文件中做出以下配置,找到tomcat配置中的server.xml文件。 解决方案:找到apache-tomcat-7.0.105confserver.xml:
修改为:relaxedPathChars=“|{}[],%” relaxedQueryChars=“|{}[],%”
加上红色框中的代码 问题解决。 尤其是原IE浏览器出现该问题,当前火狐、google、edge需要校验。
本文共 190 个字数,平均阅读时长 ≈ 1分钟
相关文章
- HTML空白字符占位问题
- redis常见字符乱码问题及解决办法
- [android] 字符乱码问题的处理详解手机开发
- MySQL设置:解决字符编码问题(mysql设置字符编码)
- Linux断行符:解决文本行尾字符的问题(linux断行符)
- Linux 中文字符显示疑难解决(linux中文显示问号)
- 开启Linux之旅:学习字符设备文件(linux 字符设备文件)
- 如何将Oracle半角字符转换为全角字符(oracle半角转全角)
- 串MSSQL中将字符串转换为数值(mssql转换字符)
- 排查1366字符编码报错的MySQL问题(1366 mysql报错)
- MySQL存储问题无法存储字母字符(mysql不能存字母)
- 解决方案MySQL数据库无法接受中文字符的问题(mysql不接受中文)
- Oracle中文字符搜索解决复杂问题的有效方式(oracle中文字符搜索)
- 解决Oracle数据库中文字符乱码问题(Oracle中文字符乱码)
- 包含中文字符的URL编码问题
- PHP中iconv函数转码时截断字符问题的解决方法
- php中隐形字符65279(utf-8的BOM头)问题