是Http标题中的特殊字符"名称"有效?

时间:2015-04-17 01:19:03

标签: java http web-applications web http-headers

我最近使用自定义标头来覆盖我们的Web应用程序的行为(我们的a-b测试分配),以便通过浏览器进行测试。它的工作原理是,如果应用程序代码检测到具有某些命名约定的标题名称,它将对其进行处理,并采取相应的行动。

功能适用于localhost 以及qa等其他内部环境。但是当它上线时它失败了(我们的应用程序是在tomcat上运行的公共网站,语言是Java 7; qa环境使用相同的技术)。

根本原因是标题“命名”约定中包含特殊字符,如点(。)和感叹号(!)。我很困惑它完全适用于内部环境但不适用于生产。任何想法是怎么回事?

如果标题名称中没有特殊字符,我确认生产代码有效。

1 个答案:

答案 0 :(得分:1)

有效字符在http://greenbytes.de/tech/webdav/rfc7230.html#header.fields中定义;两个"!"和"。"是有效的。