【问题标题】:Are special characters in Http header "names" valid?Http 标头“名称”中的特殊字符是否有效?
【发布时间】:2015-04-17 01:19:02
【问题描述】:

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

该功能适用于 localhost 和其他内部环境,如 qa。但是上线后就失败了(我们的应用是运行在tomcat上的公共网站,语言是Java 7;qa环境使用相同的技术)。

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

如果标题名称中没有特殊字符,我验证生产代码可以正常工作。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 谢谢,我去看看。但是它在某些环境中是如何工作的,比如 localhost?
    • 因为服务器实现的质量不同?
    • 标题名称中允许使用句点。 tchar =“!” /“#”/“$”/“%”/“&”/“'”/“*”/“+”/“-”/“.” /“^”/“_”/“`”/“|” /“~”/数字/阿尔法
    猜你喜欢
    • 1970-01-01
    • 2017-07-12
    • 1970-01-01
    • 2017-10-24
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 2015-11-04
    • 1970-01-01
    相关资源
    最近更新 更多