tomcat升级到8之后URL中带的特殊字符如:^|报400问题解决方案
2018-01-04 17:05
519 查看
Tomcat8升级后URL中特殊字符报错出现原因
根据rfc规范,url中不允许有 |,{,}等特殊字符,但在实际生产中还是有些url有可能携带有这些字符,特别是|还是较为常见的。在tomcat升级到8以后,对url字符的检查都变严格了,如果出现这类字符,tomcat将直接返回400状态码。后来有人对此提出了异义,见: https://bz.apache.org/bugzilla/show_bug.cgi?id=60594
经过一番讨价还价,tomcat的开发人员增加一项设置,允许配置在url可以出现的特殊字符,但也仅限于|,{,}三种,见:http://tomcat.apache.org/tomcat-8.0-doc/config/systemprops.html#Other
该项设置在以下版本的tomcat中有效:
- 8.5.x for 8.5.12 onwards
- 8.0.x for 8.0.42 onwards
- 7.0.x for 7.0.76 onwards
问题解决方案
转义:>>encodeURI("http://www.duzhi.me?msg=name|id|") >>http://www.duzhi.me?msg=name%7Cid%7C或者
>> encodeURIComponent("msg=name|id|") >> msg%3Dname%7Cid%7C
更多内容见:https://stackoverflow.com/questions/1547899/which-characters-make-a-url-invalid/13500078#13500078
相关文章推荐
- JS 字符串编码函数(解决URL特殊字符传递问题):escape()、encodeURI()、encodeURIComponent()区别详解
- jQuery在异步请求数据返回后,调用$("selector").html(data.content);之后因为一些特殊字符或者',"不能显示内容的问题解决办法
- tomcat 请求url中带有特殊符号{} | 返回400的问题
- JS 字符串编码函数(解决URL特殊字符传递问题):escape()、encodeURI()、encodeURIComponent()区别详解
- tomcat请求url中带有特殊符号{}|返回400的问题
- JS 字符串编码函数(解决URL特殊字符传递问题):escape()、encodeURI()、encodeURIComponent()区别详解
- JS 字符串编码函数(解决URL特殊字符传递问题):escape()、encodeURI()、encodeURIComponent()区别详解
- GET重定向url带特殊字符参数拼接问题的解决
- URL中文乱码的问题,特殊字符的解决办法
- Tomcat 8.5 400错误:Invalid character found in the request target. 问题解决方法
- 如何解决在.Net中用Sql语句向SqlServer数据库中插入特殊字符失败的问题?
- liferay-tomcat注册服务的方法和之后产生的乱码问题的解决办法
- url 传递参数(特殊字符)解决方法
- eclipse tomcat报Several ports (8005, 8080, 8009) 端口被占用问题解决方案
- 解决get方法传递URL参数中文乱码和解决tomcat下中文乱码问题
- 密码中有特殊的字符IOS如何处理 IOS中URL包含中文参数的问题
- 解决数据库中列名带特殊字符导致查询报错的问题
- mac升级yosemite之后xampp中mysql不能启动的问题解决
- 【已解决】URL里有#号,传参到Servlet时,url编辑器会自动删掉#号之后的所有字符串问题
- url 特殊字符 传递参数解决方法