有些Web API 在URL查询字符串中使用方括号,典型的例子是 Promethues HTTP API ,它使用诸如的查询参数如:match【】=<series_selector>。不幸的是,许多浏览器不符合该规范,并以未编码形式使用这些字符。这将导致Tomcat返回400错误。
为解决 此问题 ,Tomcat 8.5.32引入了HTTP连接器的 两个配置属性 ,以放松在URL路径和查询字符串中处理这些字符的限制。只适合如下字符:
<font>" < > [ / ] ^ `` { | } </font>
这两个属性是:
如果您使用的是Spring Boot嵌入式Tomcat服务器,则可以使用 配置属性 server.tomcat.relaxed-path-chars和server.tomcat.relaxed-query-chars。
在Spring Boot 中2.2.0.M5 添加 了Tomcat的这些配置属性。如果您使用的是旧版的Spring Boot,则可能需要切换到另一个servlet容器,例如Undertow。