这是我参与更文挑战的第26天,活动详情查看: 更文挑战
继上次阐述关于加速网站速度的前端内容建议之后,我们继续来学习关于如何通过配置服务器端来加速网站响应速度。
服务器
使用CDN
CDN-Content Delivery Network 内容分发网络,是分布在多个位置的web服务器的集合,以便更有效地向用户分发内容。如CDN对网络邻近性,通过指定服务器将内容传递给某个用户。例如,选择网络跳数最少的服务器或响应时间最快的服务器,比如北京与海外的用户访问同一个网站,使用CDN下载资源,其实际响应服务器很可能是不同的。将静态资源,如HTML,CSS,JavaScript,图片等,可通过配置CDN加速网站速度。
80%-90%的网站响应时间都花在下载页面中的所有组件上:图像、样式表、脚本、Flash等。而且,通过CDN很容易实现速度提升。
可以使用自己的CDN,也可以使用CDN服务提供商。
雅虎提到,他们使用CDN之后,网站响应速度提升了20%以上。
在响应头添加Expires或者Cache-Control
建议:
- 静态资源:设置
Expires
,永不过期; - 动态资源:使用
Cache-Control
帮助浏览器实现条件请求。
浏览器使用缓存来减少HTTP请求的数量和大小,使网页加载更快。web服务器使用HTTP响应头的Expires来告诉浏览器一个组件可以缓存多长时间。
如下图,是我们访问百度百科词条:Expires,网址:baike.baidu.com/item/expire…, 其中的一个网络资源图片的响应头信息,如图圈住的:
expires:Mon, 28 Jun 2021 10:23:28 GMT
复制代码
如果使用Expires,如果资源过期,则需要后端改变文件名称,则前端才可以重新从服务端获取更新后的文件,相关策略包括将版本号添加到资源文件名中。
另外一个相关字段为:ExpiresDefault
,表示设置一个相对于当前日期的过期日期。如下所示:
ExpiresDefault "access plus 10 years"
复制代码
使用缓存的优化效果只针对非首次访问用户,实际效果取决于用户访问你网站的频次。
雅虎提到,他们网站上75-85%的页面资源均使用缓存,也就相当于,减少了网站相当多资源的重复请求。
其他加速网站速度的建议: