ALB认为哪些头字段是“有效”的?

11
截至2019年11月13日,ELB 负载均衡器属性 文档如下:
以下属性仅由应用程序负载均衡器支持... - routing.http.drop_invalid_header_fields.enabled - 表示负载均衡器是否删除具有无效标题字段的HTTP标题(true),或将其路由到目标(false)。默认值为true。
标题字段的验证规则是否与RFC 7230中定义的规则不同?如果是,这些差异在任何地方都有记录吗?
编辑:Jon Zobrist报告,自太平洋标准时间晚上8点(11月13日)起,默认值为false。

是的,更改已被还原 - 请参见编辑。 - VoiceOfUnreason
3个回答

4

如果您的标题中有下划线,则无效。我们在标题中使用了app_token,遇到了这个问题。


3
所有AWS文档似乎都指向这些标准:RFC 7230第3.2节,RFC 822第3.1节和RFC 2616第4.2节。因此,我可以自信地说,除了在这些RFC中定义的规则之外,没有针对标题字段的验证规则。

只要每个标题字段由不区分大小写的字段名称后跟冒号(“:”),可选的前导空格,字段值和可选的尾随空格组成,您就可以放心使用;这基本上是RFC 7230第3.2节中定义的内容 (https://www.rfc-editor.org/rfc/rfc7230#section-3.2)

字段由回车符(CR)和换行符(LF)分隔。

维基百科有一个好的标准和常见非标准标题字段列表: https://en.wikipedia.org/wiki/List_of_HTTP_header_fields

其他RFC链接:

https://www.rfc-editor.org/rfc/rfc822#section-3.1

https://www.rfc-editor.org/rfc/rfc2616#section-4.2


请注意,标题名称中不允许使用下划线:https://forums.aws.amazon.com/thread.jspa?messageID=923182 - explunit

1

2
那个链接是论坛的错误页面,告诉你要登录;最好将答案直接粘贴在回答中 :) - Chris McKee
我猜他所提到的帖子是这个 - guessimtoolate
谢谢,我已经更新了答案以匹配该链接。 - VoiceOfUnreason
ALB访问日志不记录请求中接收到的标头。是否有其他方法可以记录标头并检查标头的问题所在? - user1
请注意,此答案中的源链接以及@guessimtoolate的评论中的链接均已失效。 - Chris Harrington

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接