带有传输编码的HTTP GET

时间:2017-02-12 17:30:05

标签: http https amazon-elb

我最近看到一个GET调用,它将Transfer-Encoding标头设置为Chunked。我们从这个调用中注意到的是延迟然后是500个套接字超时。

深入挖掘,我们展示了来自ELB和Apache Web服务器的500的这种行为。

值得注意的是,如果我们使用Transfer-Encoding作为Chunked进行GET调用并包含空的有效负载,则在我们的情况下ELB允许请求正常进行。

鉴于此ELB和Apache Web服务器会出现此行为,我的问题是在HTTP GET调用上发送传输编码为Chunked是否有效?

1 个答案:

答案 0 :(得分:2)

Transfer-Encoding标题现在由RFC 7230, section 3.3.1授权(另请参阅IANA Message Header Registry。您会发现此标头是HTTP消息框架的一部分,因此它对两者都有效,要求和回应。

请记住GET requests may carry bodies,服务器的反应绝对正确。导致500跟随的延迟的原因可能如下:服务器会期望一个正文但找不到一个,因为空字符串的块编码表示不是空字符串而是zero-sized chunk。结果,服务器正在运行超时。