Cloudfront如何避免每次If-Modified-Since标头请求

时间:2016-10-11 11:19:45

标签: amazon-web-services amazon-cloudfront ttl if-modified-since

AWS Cloudfront文档说:

  

如果您将特定原点的TTL设置为0,CloudFront仍会保留   缓存该来源的内容。然后它会发出GET请求   使用If-Modified-Since标头,从而为原点提供机会   表示CloudFront可以继续使用缓存内容   在原点没有改变

我需要配置动态内容。我已经将TTL设置为0 ..我希望每个请求始终都是Origin。有没有办法我使用If-Modified-Since标头避免这个额外的GET请求!为什么每次这个额外的请求!

2 个答案:

答案 0 :(得分:3)

  

我有没有办法避免这个额外的GET请求

听起来好像你误解了你正在读的东西。不幸的是,你没有引用消息来源,因此很难回过头来获取更多背景信息;但是,这并不是指“额外”的请求。

  

然后它将使用If-Modified-Since标头生成GET请求

每次随后浏览器请求对象时,这指的是。 CloudFront使用If-Modified-Since:发送下一个请求,以便您的源服务器具有返回304 Not Modified响应的选项 ...它不会发送响应来自浏览器的一个请求,向原点发出两个请求。

如果您的内容始终是动态的,请返回Cache-Control: private, no-cache, no-store并将最小TTL设置为0。

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html#ExpirationDownloadDist

答案 1 :(得分:1)

这是我从AWS获得的答案:

  

但是,如果转发该特定来源的所有标题,则   如果没有If-Modified-Since,请求将每次都转到原点   标题提到[1]。请查看以下链接中的摘录   进一步的细节:

     

“将所有标题转发到您的来源重要说明:如果您配置   CloudFront将所有标题转发到您的源,CloudFront不会   缓存与此缓存行为关联的对象。相反,它   将每个请求发送到原点。“