我正在与 IIS Web 服务器建立 HTTP 连接,并使用使用 Transfer-Encoding: chunked 编码的数据发送 POST 请求。当我这样做时,IIS 只是关闭连接,没有错误消息或状态代码。根据HTTP 1.1 规范 https://www.rfc-editor.org/rfc/rfc2616#section-3.6.1,
所有 HTTP/1.1 应用程序必须能够接收和解码“分块”传输编码
所以我不明白为什么它(a)不处理该编码,(b)它不发回状态代码。如果我更改请求以发送内容长度而不是传输编码,则查询会成功,但这并不总是可能的。
当我对 Apache 尝试同样的操作时,我收到“需要 411 长度”状态和一条消息“禁止分块传输编码”。
为什么这些服务器不支持这种编码?
看看你的客户。
IIS 和 Apache 都支持使用分块传输编码的 POST 请求。您可以使用以下方法验证这一点卷曲实用程序 http://curl.haxx.se/:
curl <upload-url> --form "upfile=@<local_file>" --header "Transfer-Encoding: chunked"
使用以下命令验证传输是否已分块Wireshark http://www.wireshark.org/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)