apache - 为什么 IIS 不支持分块传输编码?

标签 apache http iis chunked-encoding

我正在与 IIS Web 服务器建立 HTTP 连接,并发送一个 POST 请求,其中包含使用 Transfer-Encoding: chunked 编码的数据。当我这样做时,IIS 只是关闭连接,没有错误消息或状态代码。根据HTTP 1.1 spec ,

All HTTP/1.1 applications MUST be able to receive and decode the "chunked" transfer-coding

所以我不明白为什么它 (a) 不处理该编码以及 (b) 它不发回状态代码。如果我将请求更改为发送 Content-Length 而不是 Transfer-Encoding,查询就会成功,但这并不总是可能的。

当我对 Apache 尝试同样的操作时,我得到了“411 Length required”状态和一条消息“chunked Transfer-Encoding forbidden”。

为什么这些服务器不支持这种编码?

最佳答案

看看你的客户。

IIS 和 Apache 都支持使用分块传输编码的 POST 请求。您可以使用 curl utility 来验证这一点:

curl <upload-url> --form "upfile=@<local_file>" --header "Transfer-Encoding: chunked"

使用 Wireshark 验证传输是否分块

关于apache - 为什么 IIS 不支持分块传输编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/338624/

相关文章:

php - .htaccess 删除 index.php 并从 URL 中隐藏参数键

asp.net-mvc - 当来自 POST 的响应是重定向时,使用 HttpWebRequest 回调的 POST 未触发

c# - 如何发送客户端特定的受信任证书颁发机构来决定用户可以在 asp.net web 表单站点上使用哪些客户端证书

Android JSON POST 与 OKHTTP

iis - Jeff讲述的IIS 6压缩配置

CSS 在服务器上的渲染与本地渲染不同

ruby-on-rails - 空闲后 "PGError: no connection to the server"

apache - 使用多个不同的 Tomcat 7 实例设置 Apache2 的指南

apache - Wildfly 管理控制台访问被拒绝,权限不足

java - java中等待异步http请求