【问题标题】:What is the difference between maxAllowedContentLength and maxRequestLengthmaxAllowedContentLength 和 maxRequestLength 有什么区别
【发布时间】:2019-02-14 18:35:33
【问题描述】:

我上网查了一下,没找到合适的解释。

我检查的链接:Difference

这个链接说:

如果您尝试上传大文件(如图像或文档),您 需要注意,您可能需要调整您的 maxRequestLength。 然后,如果文件真的很大,您可能需要调整 最大允许内容长度。

但是两个句子意思一样,我很困惑。

另一个链接:Difference

这是说

maxRequestLength 表示支持的最大文件上传大小 在 ASP.NET 中,maxAllowedContentLength 指定最大长度 IIS 支持的请求中的内容。因此,我们需要同时设置 上传大的 maxRequestLength 和 maxAllowedContentLength 值 文件。

我的问题是:如果我有 10GB 的文件上传。我的内容是 10GB 还是我的 FileSize 是 10GB?我不明白上传的文件大小和内容大小有什么区别?

底线:如果我有一个 10GB 的文件上传,请通俗地告诉我这两个参数是如何产生的。

【问题讨论】:

  • RequestLength 是每个数据包可以发送多少,ContentLength 是总体可以发送多少(我认为)。您可以发送最大 4Mb 的数据包,直到达到 [x]Mb 的内容长度限制

标签: c# asp.net web-config


【解决方案1】:

请求由标头和正文组成(在您的情况下提供文件的编码内容)。所以请求长度是请求的总大小,content length 是主体的字节大小(这可能大于您发送的数据大小)。

假样本:

User-agent: Bob the builder the 4th
Authorization: hereIcome
Content-length: 4
Content-Encoding: Base64

BEEF

所以这里的请求长度约为 100,内容长度仅为 4(“BEEF”的长度)但实际数据为 3 个字节(FromBase64String("BEEF") - 0x04 0x41 0x05)。

对于大文件的情况,可以忽略标头大小,并将 maxRequestLength 和 maxAllowedContentLength 设置为相同的非常高的值。根据用于发送文件的编码,这些值需要是文件最大大小的某个倍数。

【讨论】:

  • IIS 中的 maxRequestLength 和 maxContentLength 配置设置不是 HTTP 标头吗?
  • 完美答案。我得到了我需要的东西。谢谢!
  • @crunchy 我不确定您的 cmets 说什么...是的 IIS 中的 maxRequestLength 和 maxContentLength 配置设置...我认为我的帖子不会以某种方式使它们成为 HTTP 标头(实际上 maxContentLength 是直接与“content-length”标头相关,但 maxContentLength 本身并不是 HTTP 消息的一部分)
  • 最后一个问题,可以肯定地说请求长度总是大于内容长度吗?
  • @AlexeiLevenkov 您提供的描述内容长度的链接讨论了 http 标头,因此显然我跳过了您的其余答案并跳到了我的错误结论。
【解决方案2】:

这些设置在语义和用法上都不同。

ma​​xAllowedContentLength

这是 IIS 特定的设置。您发送的任何请求都将首先由 IIS 处理,而不管它是否将由您的应用程序或任何其他应用程序处理。因此,如果您将 Web 服务器想象成一座建筑物,这将是您进入建筑物的入口。正如@Alexei 所提到的,这仅考虑内容或有效负载大小,并以字节为单位。如果您发送的请求的负载大小超过此限制,您将收到 Http 404.13 错误响应(http 响应 404,子代码为 13。您可以在 this link 中查看不同的 IIS 状态代码)。

最大请求长度

相比之下,maxRequestLength 是 ASP.Net 特定的设置,它定义了输入流的缓冲阈值。因此,在建筑示例中,这是公寓的门,因此是特定于公寓的。因此,您的请求必须同时通过大楼门和公寓门。这考虑了整个请求长度,而不仅仅是有效负载,并且以 kbs 为单位。如果您的请求通过了 IIS 设置,但由于大小而未能通过这里,您将收到 Http 500 错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-02
    • 2011-12-12
    • 2010-09-16
    相关资源
    最近更新 更多