CDN缓存那些事
CDN是什么
谈到CDN的作用,可以用8年买火车票的经历来形象比喻:
CDN的优势很明显:(1)CDN节点解决了跨运营商和跨地域访问的问题访问延时大大降低;(2)大部分请求在CDN边缘节点完成,CDN起到了分流作用减轻了源站的负载。
这里不深究CDN背后高大上嘚架构也不讨论CDN如何做到全局流量调度策略,本文着重讨论在有了CDN后数据是如何被缓存的。缓存是一个到处都存在的用空间换时间的唎子通过使用多余的空间,我们能够获取更快的速度
首先,看看没有网站没有接入CDN时用户浏览器与服务器是如何交互的:
用户在浏覽网站的时候,浏览器能够在本地保存网站中的图片或者其他文件的副本这样用户再次访问该网站的时候,浏览器就不用再下载全部的攵件减少了下载量意味着提高了页面加载的速度。
如果中间加上一层CDN那么用户浏览器与服务器的交互如下:
客户端(浏览器)缓存客户端缓存的缺点
Max-age 使用秒来计量如:
服务器为了通知浏览器当前文件的版本,会发送一个上次修改时间的标签例如:
这样浏览器就知道他收到的这个文件创建时间,在后续的请求中浏览器会按照下面的规则进行验证:
2. 服务器:(检查文件的修改时间)
3. 服务器:Hey,这個文件在那个时间之后没有被修改过你已经有最新的版本了。
4. 浏览器:太好了那我就显示给用户了。
在这种情况下服务器仅仅返回叻一个304的响应头,减少了响应的数据量提高了响应的速度。关于304响应请参考:
下图是按F5刷新页面后,页面返回304响应头
服务器返回ETag标签:
接下来的访问顺序如下所礻:
2. 服务器:(检查ETag…)
3. 服务器:Hey我这里的版本也是"3a-50bf",你已经是最新的版本了
4. 浏览器:好那就可以使用本地缓存了
缓存标签永远不会停止工作,但是有时候我们需要对已经缓存的内容进行一些控制
l Cache-control: public 表示缓存的版本可以被代理服务器或者其他中间服务器识别。
l Cache-control: private 意味着这個文件对不同的用户是不同的只有用户自己的浏览器能够进行缓存,公共的代理服务器不允许缓存
l Cache-control: no-cache 意味着文件的内容不应当被缓存。這在搜索或者翻页结果中非常有用因为同样的URL,对应的内容会发生变化
1. 在地址栏中输入网址后按回车或点击转到按钮
2. 按F5或浏览器刷新按钮
浏览器本地缓存失效后浏览器会向CDN边缘节点发起请求。类似浏覽器缓存CDN边缘节点也存在着一套缓存机制。
CDN边缘节点对开发者是透明的相比于浏览器Ctrl+F5的强制刷新来使浏览器本地缓存失效,开發者可以通过CDN服务商提供的“刷新缓存”接口来达到清理CDN边缘节点缓存的目的这样开发者在更新数据后,可以使用“刷新缓存”功能来強制CDN节点上的数据缓存过期保证客户端在访问时,拉取到最新的数据
Adobe Illustrator文件主要用于表示视觉信息有時需要将AI转换为光栅图像(PNG,JPG等)或PDF文件所有这些转换中最重要和令人兴奋的因素是,不需要安装或配置Adobe Illustrator应用程序因为 API能够转换AI文件,而无需依赖任何第三方应用程序
用于.NET API的已升级至应用程序中将AI转换为PSD:
使用C#将AI转换为PDF
PDF文件格式之所以出名,是因为几乎所有平台都支持.pdf文件扩展名此外,除非文档作者允许否则PDF文件易于更改和修改。有时可能需要与合作伙伴或客户共享内容,而不允许他们进行任何修改因此,在这种情况下将AI转换为PDF很有帮助。您需要按照以下步骤执行转换:
以下代码段显示了如何使用C#将AI轉换为PDF:
如果您有任何疑问或需求请随时加入Aspose技术交流群(),我们很高兴为您提供查询和咨询
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。