nhe*_*nn1 7 load-balancing google-cloud-platform
使用Google Cloud HTTPS负载平衡器时,我们遇到了以下错误。找不到任何相关信息。
我们的请求中有一个自定义的http标头:
X-<Company name>-abcde
。如果我们直接针对服务器工作,那么一切都很好,但是一旦我们通过负载平衡器工作,则缺少我们的自定义标头。我们没有在文档中找到任何需要白名单标题或类似内容的参考。
为什么在通过Google Cloud Load Balancer工作时我的自定义标头没有传输到后端服务器?以及如何使其工作?
谢谢
经过大量测试,这些是我得出的结果:
因此,在您的情况下,X-Custom-Header
转换为x-custom-header
.
据我所知,RFC 2047指定了X-
自定义 HTTP 标头的前缀并为每个单词传播了大写字母的伪标准已被弃用并由RFC 6648取代,该RFC 6648一般建议反对X-
前缀,并且没有提及任何关于自定义 HTTP 标头键名中的其余单词。如果我是 Google,我会更改此行为以按原样传递自定义 HTTP 标头,并让开发人员按照他们设置的方式处理字符串。
小智 5
用于 HTTP/1.1 消息语法和路由的 RFC ( RFC 7230 ) 说头字段具有不区分大小写的字段名称。如果您依赖大小写来匹配与 RFC 不一致的标头。
回到那天,我查看了 Jetty 源代码中的任何一个 Tomcat,他们将所有内容都作为.toLower()
.
Go 有一个CanonicalMIMEHeaderKey,它将以一种通用的方式格式化标题,以确保所有内容都在同一页面上。
Python 仍然回到 RFC822 (hg.python.org/cpython/file/2.7/Lib/rfc822.py#l211) 天,但它强制.lower()
标头标准化。
基本上,尽管就 RFC 而言,GCP HTTP(S) 负载均衡器正在做的事情是可以接受的。
归档时间: |
|
查看次数: |
1937 次 |
最近记录: |