我有一个使用 AJAX 并行请求大量媒体资产的 Web 应用程序。所有资产都来自同一个 Cloudfront Origin,它本身直接插入到 S3 存储桶中。
我看到来自 Cloudfront 的请求,其 TTFB 为秒级。更奇怪的是,这些请求似乎基本上是排队的,直到前一个请求得到处理:
这两个请求是并行启动的,您可以看到不是 Chrome 将它们排队,而是 Cloudfront 在第一个请求完成下载之前没有对第二个 (2KB) 请求作出任何回应。这大大减慢了我的应用程序,我无法弄清楚出了什么问题......当我检查 Safari 时,我也看到了同样的行为。
这是两个请求的详细信息
如您所见,它们也是Hit from cloudfront
。
最后,因为它可能是相关的,我在我的 Origin 的行为中使用 lambda 函数来添加正确的Vary
标头,以防止 Chrome 使用没有 CORS 标头的缓存请求,这会使后续的 CORS 请求失败(请参阅此处的详细信息)。这是我完整的 Origin 的行为设置:
任何帮助表示赞赏,如果需要,请随时询问更多详细信息!提前非常感谢。