如果有多个内容长度标题,我应该
然后我对transfer_encoding标题也有同样的问题。我认为使用transfer_encoding我们应该使用最后一个。
然后,同样的问题,主持人'标题也是。
感谢, 迪安
答案 0 :(得分:2)
WRT Content-Length:是的,你实际上必须失败(除非两个值都相同,在这种情况下你可以选择一个)。请参阅RFC 7230。
"传送编码"不同之处在于它允许多个值;因此,您必须按顺序处理它们。
答案 1 :(得分:0)
Content-Length
是单值标头。通常最后一个标题会有权限;但是RFC 7230, section 3.3.2表示:
如果收到的消息具有多个Content-Length标头字段,其字段值包含相同的十进制值,或者单个Content-Length标头字段,其字段值包含相同十进制值的列表(例如,“ Content-Length:42,42“),表示上游消息处理器生成或组合了重复的Content-Length头字段,然后收件人必须拒绝该消息为无效或用单个有效字段值替换重复的字段值Content-Length字段,在确定邮件正文长度或转发邮件之前包含该十进制值。
Transfer-Encoding
是另一回事,因为它包含列表。可以有多个,都是有效的。这里重要的是应用的编码必须按照它们的应用顺序列出。例如。如果内容已被gzip压缩然后进行块编码,则标题必须看起来像
Transfer-Encoding: gzip, chunked
或
Transfer-Encoding: gzip
Transfer-Encoding: chunked