对网站的前端界面根据客户终端的设备来决定提供对应的界面样式是常见的网站设计需求。该需求的常见设计思路是源站根据用户的请求然后在源站对用户的请求做302的跳转到对应的页面上进行服务。
在对网站部署CDN后由于CDN的产品性质,CDN会对用户的访问资源缓存到CDN的节点上以便后续可以加快用户的访问,这种情况下就可能会出现第一个用户访问后会对对应的302的请求进行缓存。而其他不同终端设备的用户通过该URL进行访问的时候就会出现访问到的页面情况仍然是第一个用户缓存的302的请求到的页面上。这就会造成用户源站设置的对不同终端的适配功能失效。
要解决这种问题的思路就是设置对第一个请求的URL不缓存,而对302跳转后的页面进行缓存。这样设置就可保证用户源站的终端配置功能可以生效的同时也可以实现CDN对于页面的加速。CDN对于缓存的配置暂时支持两种:目录和后缀名,用户可以结合这两种的缓存配置以及其优先级来根据自己的站点目录结构定义初始URL不缓存,而对于其他的URL缓存;另外更为方便的方法是用户可以在源站对于初始页面设置不缓存,因为源站的不缓存策略对于CDN是具有最高优先级的。只要该页面的response中带有下述头信息就保证该页面不缓存:
Cache-control:no-cache,no-store,private
Cache-control:s-maxage=0,max-age=0
pragma:no-cache
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。