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

为什么IIS不支持分块传输编码?,第1张

概述为什么IIS不支持分块传输编码

我正在build立到IIS Web服务器的http连接,并发送一个POST请求,其中包含使用transfer-encoding编码的数据:分块。 当我这样做时,IIS只是closures连接,没有错误信息或状态码。 根据http 1.1规范 ,

所有http / 1.1应用程序必须能够接收和解码“分块”的传输编码

所以我不明白为什么它是(a)不处理该编码和(b)它不发回状态码。 如果我更改发送Content-Length而不是transfer-encoding的请求,则查询成功,但这并非总是可行。

当我对Apache尝试同样的事情时,我得到“411长度要求”的状态和一个消息说“分块传输编码禁止”。

用django处理http分块编码

Rails何时以“传输编码”与“内容长度”进行响应?

启用Nginx块传输编码

Web服务器 – 我应该何时使用分块传输编码?

如何通过Nginx进行分块的请求

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

Nginx代理http PUT分块到apache

我的理解是分块编码只能在http响应中使用。 分块的请求体将具有与1.0服务器不兼容的属性,并且在任何情况下,在用户代理已经发送请求之前,没有办法知道服务器是1.0服务器。

但是我同意从文档中不清楚。

看看你的客户。

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

curl <upload-url> --form "upfile=@<local_file>" --header "transfer-encoding: chunked"

验证传输是使用Wireshark分块的

它是双向的。 尝试上传一个图像2MB ++到photobucket并记录下来。 他们的上传者上传到他们的apache服务器。

我唯一的猜测就是他们没有为了安全考虑而实施它。 在一个天真的解决方案中,通过启动多个永不结束的分块传输很容易建立一个DOS攻击。 而一个能解释DOS攻击的复杂解决方案可能是不值得的。

当然,我不能说Apache或IIS,但可以直接联系Apache团队: http : //httpd.apache.org/BUG_report.HTML

我同意MarkR的观点,我一直认为分块编码只能作为响应,但是文档肯定会使它听起来像可以在请求或响应中使用。

这个命令来救我!

C: windows System32 Inetsrv Appcmd.exe设置config -section:httpCompression


– [name ='gzip']。staticCompressionLevel:9 – [name ='gzip']。dynamicCompressionLevel:4

救了我的一天…希望能帮助像我这样的人!

总结

以上是内存溢出为你收集整理的为什么IIS不支持分块传输编码?全部内容,希望文章能够帮你解决为什么IIS不支持分块传输编码?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1272170.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存