Jor*_*pez 14 akamai cdn http-caching http-headers
我目前使用Akamai作为CDN,但我注意到浏览器也在缓存内容.浏览器缓存images/css/js非常棒,但我想知道是否有一种方法可以不在浏览器上缓存,而是在Akamai中缓存.
现在,从我的起源开始,我发送这样的标题:
Cache-Control: public, must-revalidate, max-age=300
Expires: Sun, 19 Feb 2012 19:04:30 GMT
Date: Sun, 19 Feb 2012 18:59:30 GMT
Akamai尊重这些标题,但也将它们传递给用户.这使得浏览器实际上也缓存了内容.
这在大多数情况下都很有用,但我们也有一些CDN逻辑,如果用户有登录的cookie,绕过CDN缓存并直接到源.
因此,如果让一个未经过验证的用户点击"登录",则会通过登录过程发送它们并返回到同一页面.即使CDN会从源页面请求此页面,浏览器实际上再次请求相同的页面,看起来好像登录没有工作.
现在,我可以强制登录过程添加一个查询参数,如?l = 1或者其他什么,但必须有更好的方法.
我很想知道Akamai是否可以将Cache-Control标头覆盖为硬编码的无缓存值,但我想知道是否有办法在源中执行此操作?
谢谢!
Cam*_*ron 20
Akamai有一个名为"Edge-control"的标题,其格式与Cache-Control相同.您可以使用正max-age指定Edge-control,然后将Cache-Control设置为"no-cache,no-store".这应该得到你想要的.
当我为缓存的页面发送Edge-control标头时,我总是在值前面加上"!no-store"以确保Akamai缓存它.因此格式为"!no-store,max-age = 1234".
小智 2
Akamai 确实提供了一种在 Akamai 服务器内设置不同缓存行为的方法,而不是通常的 Cache-Control: 和 Expires: 标头。您可以从源服务器传递自定义标头,Akamai 边缘服务器在将内容传递到浏览器时会理解、遵守并剥离这些标头。此信息可在 Akamai 门户文档中找到。
在您的情况下,您希望行为根据用户是否登录而改变。您可以要求在将对象传送到登录用户的浏览器时将对象绕过缓存,或者您可以使用 cookie 值来修改缓存键(Akamai 服务器如何引用该对象),但您可能需要在此联系 Akamai 寻求帮助。
您需要非常小心,以确保 Akamai 缓存的其他用户无法查看个性化内容。如果有疑问,请谨慎行事,不要允许 Akamai 缓存该对象。
| 归档时间: | 
 | 
| 查看次数: | 16154 次 | 
| 最近记录: |