【问题标题】:cloudfront responds with a status of 413 (Request Entity Too Large)cloudfront 响应状态为 413(请求实体太大)
【发布时间】:2016-10-25 16:15:48
【问题描述】:

我们需要将大数据作为 URL 的一部分发送,这些数据将由 Angular 读取以呈现页面。网址超过 10000 个字符。但是云端返回错误 -

错误的请求。由 cloudfront (CloudFront) 生成的请求 ID: I2fOApzZr4psKrWsY6abezp5R0m30zKDKE7c0MuB_JkjWbvxz5GVnQ==

浏览器控制台返回错误代码 413 和以下消息 -

加载资源失败:服务器响应状态为 413(请求实体太大)

云端是否有任何设置可以允许接受大型 URL 请求。

我知道在 apache 上有像 LimitRequestBody 这样的设置可以允许大量输入,但是请求没有到达 apache 并且由 cloudfront 本身出错。

当我使用字符数时 - 云端在 8226 个字符后中断。

【问题讨论】:

  • 即使可以,我也不愿(ab)使用 url 来放置那么多数据。相关:stackoverflow.com/questions/417142/… - cloudfront 完全有理由不接受这种大小的 url。
  • 我们的 Angular js 代码是一种模板,它提供从其他内容服务检索到的数据。有没有一种方法可以将数据发布到 Angular js,而不是从 URL 读取数据。我不希望这成为有角度的 js 问题。由于某些身份验证问题,Angular 无法直接调用 api。而且我不知道 angular 的 abc。
  • 肯定有办法做到这一点,但您需要更详细地解释系统。 => 发布一个新问题(或几个,这听起来需要进行相当大的更改)。

标签: amazon-web-services amazon-cloudfront http-status-code-413


【解决方案1】:

这不受支持。 CloudFront 有这些硬性限制,这对于大多数应用程序来说都是合理的:

请求的最大长度,包括标头和查询字符串:20,480 字节

网址的最大长度:8,192 字节

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cloudfront-limits.html

8,226 − 8,192 = 34 之间的明显差异可能归因于您的主机名长度和http://(如果您计算的话)。 CloudFront 的文档说“URL”,但该限制实际上可能仅适用于路径 + 查询字符串的组合长度,因为在实际的 HTTP 协议中,Host: 标头与请求的其余部分是分开的。

上述限制以及其他一些限制似乎无法协商。

其他限制,例如带宽 (40 Gbps)、每个 AWS 账户的 Web 分配数量 (200) 只是默认限制,您可以通过向 AWS 支持提交描述您的使用案例的请求来增加这些限制,但确实如此好像不是这样,这里。

由于某些身份验证问题,Angular 无法直接调用 api。

这听起来像是对代理 REST API 的 ajax 调用的案例,该 API 从需要授权的源中获取数据,因此浏览器端代码不必......也许是 API Gateway 后面的 Lambda 中的某些东西。

【讨论】:

    猜你喜欢
    • 2019-04-24
    • 2018-09-04
    • 2014-12-30
    • 2014-12-23
    • 1970-01-01
    • 2012-09-23
    • 2015-10-04
    • 2015-01-25
    相关资源
    最近更新 更多