刀片服务器是什么_程序员都应了解的 CDN 是什么?

原标题:程序员应该了解CDN什么?

刀片服务器是什么

作者|

编辑|刘晶

在互联网上有一个“8秒规则”,即如果一个页面的响应时间超过8秒,大多数用户将放弃加载,从而放弃使用该页面或网站。淘宝、京东、苏宁等电子商务公司每天都会收到数万次访问。在618电商节和双溪购物娱乐节上,有数万秒。在如此高的并发性下,什么可以支持系统的正常运行?这必须提到CDN。什么是CDN?让我们来看看什么是

CDN?

CDN的全称是内容传送网络,即内容分发网络。

CDN是一个建立在网络上的内容分发网络,有两个关键元素:内容存储和分发基本原则是广泛使用各种缓存服务器,将这些缓存服务器分布到用户相对集中访问的区域或网络。当用户访问网站时,全局加载技术用于引导用户访问最近的普通缓存服务器,缓存服务器直接响应用户的请求。

例如,北京的用户允许他访问北京的节点,上海的用户允许他访问上海的节点而不是上海的节点,上海的用户访问北京的节点。这将大大增加用户访问的持续时间和成本。通过就近访问,用户可以加快访问网站的速度,解决网络拥塞问题,提高用户访问网络的响应速度。

CDN就像网络中的快递兄弟,从最近的仓库中取出你在网上购买的商品,选择最佳路线,及时将包裹送到指定的收货地点

CDN扮演着护卫和加速的角色,使每个网络请求更快,延迟更少,响应更快,用户体验更极致。当我们在浏览器中访问一个页面时,

CDN是如何发挥作用的?

主要包括如下步骤,如图:

刀片服务器是什么

1。当用户点击网站页面上的内容网址时,域名解析系统最终会在本地域名解析系统解析后,将域名解析权授予CNAME指定的特定于CDN的域名解析服务器。

2。CDN的域名服务器向用户返回CDN的全局负载均衡设备的IP地址;

3。用户向内容分发网络的全局负载平衡设备发起内容网址访问请求;

4。CDN全局负载均衡设备根据用户请求的用户IP地址和内容地址选择用户所属区域的区域负载均衡设备,并告知用户向该设备发起请求;

5。区域负载平衡设备将根据用户的IP、访问资源和服务能力选择合适的缓存服务器,为用户提供服务;

6。全局负载均衡设备向用户返回服务器的IP地址;

7。用户向缓存服务器发起请求,缓存服务器响应用户的请求,并将用户所需的内容发送到用户终端如果缓存服务器没有用户想要的内容,服务器向网站的源服务器请求内容,源服务器将内容返回缓存服务器,根据用户定义的缓存策略判断是否缓存,并将内容返回给用户。

对于程序员来说,哪些资源更适合CDN加速?众所周知,一个完整的网页资源包括CSS、JS、图片、音频、视频、页面和其他文件。JS、CSS、图片、音频和视频都是静态文件。一个成熟的网站在在线过程中很少或不改变静态文件。这些类型的文件最适合CDN加速。通过CDN将这些静态资源分布到全国各地的服务器节点,可以实现从任何地方访问网页都可以选择最近的节点服务器来下载资源。

页面文件主要分为静态页面文件和动态页面文件例如,主要公司的官方网站主页和退出页面通常是静态文件。静态页面文件的结构不会改变,主要用于显示。这种静态页面文件也适用于CDN加速。动态页面文件意味着页面将根据服务器返回的响应内容动态呈现,如JSP、PHP文件等。这些页面文件的内容是动态获取的,因此不适合CDN加速。因为网页的内容是动态变化的,所以存储在服务器端的内容的有效期相对较短,所以浏览器向CDN服务器请求的内容将总是被处理为过期,并且该请求最终将被发送到源服务器。在这种情况下,CDN是没有意义的当访问浏览器页面

时,我们也可以按F12通过浏览器控制台查看页面资源的一些缓存配置。例如,通过谷歌浏览器访问百度网站(www.baidu.com),您可以打开控制台查看页面加载期间请求的资源。选择图片资源,查看相应的标题信息,如下图:

刀片服务器是什么

。返回消息中与缓存相关的字段有:缓存控制、Etag、过期、最后修改、编译等。,这将在这里逐一解释。

到期:孙,2019年11月3日09:04:35格林尼治标准时间;Expires是为缓存过期时间配置的。如果在http响应消息中设置了过期,则可以在过期之前避免与服务器的连接。此时,浏览器不需要向浏览器发送请求,只需要判断手头的资料是否过期,服务器的负担根本不需要增加。

缓存控制:最大年龄= 0;缓存控制是缓存控制。缓存控制不仅可以在响应中使用,也可以在请求中使用。控制缓存的开关用于识别缓存是否打开,以及在请求或访问中使用哪种缓存方法。缓存控制通常使用配置类型,如无缓存、无存储、最大年龄=增量秒等。无缓存请求源服务器通知(代理)服务器不要直接使用缓存。不存储意味着不会缓存所有内容,最大年龄意味着通知服务器客户端它希望接收一个生命周期不超过增量秒的配置资源。

上次修改时间:2019年6月10日星期一09:12:15格林尼治标准时间;上次修改时间是当前文件版本的最后修改时间。为了通知浏览器当前的文件版本,服务器将发送最后修改时间的标签,以便浏览器知道他收到的文件的创建时间。

Etag:“2046392041”;对应于实体内容的实体标签与实体内容密切相关。实体内容的任何变化都会改变该值。ETag是文件的唯一标识符,就像散列或指纹一样。每个文件都有单独的标志。只要文件改变,标志就会改变。主要解决上次修改无法解决的一些问题。例如,一些文件可能会定期更改,但它们的内容不会更改(只更改修改时间)。此时,我们不希望客户认为该文件已被修改并再次请求。或者有些文件修改非常频繁,比如在几秒钟以内(比如说1秒内n次),如果-modified-sink可以检查的粒度是s级,这种修改就不能判断(或者UNIX记录的MTIME只能精确到几秒钟),有些服务器不能准确地获得文件的最后修改时间,等等。

Pragma:无缓存;当Pragma值为无缓存时,缓存被禁用;Pragma是一个古老的产品,已经逐渐被抛弃。为了向后兼容,一些网站仍然保留这两个词如果杂注和缓存控制同时出现在消息中,则杂注优先当缓存控制和过期同时发生时,以缓存控制为准。也就是说,优先级从高到低是Pragma->;缓存-控制->;期满

当不使用CDN时,当用户访问网站时,浏览器将网站中的图片和静态资源文件保存到本地,这样当用户再次访问网站时,浏览器不需要下载所有的文件,从而减少了下载量,提高了页面加载速度。使用后,在浏览器访问服务器中间增加一层CDN,当浏览器访问服务器时,首先检查本地缓存是否过期;如果是,则向CDN边缘节点发送请求,CDN边缘节点检测用户请求数据的缓存是否过期,如果不是,则直接响应用户请求;如果数据已过期,CDN还需要向源站发回一个源请求,以检索最新数据当

浏览器缓存包含过期或缓存控制设置了最长响应标头时,浏览器不会向服务器发起验证请求,而是直接重用本地缓存如果服务器此时更新资源,用户将无法获得最新的资源,只能通过强制刷新浏览器缓存向服务器请求最新的资源。使用CDN缓存可以避免更新浏览器缓存资源的延迟。CDN缓存不仅可以减少用户的访问延迟,还可以减少源服务器的负载。但是,应该注意的是,如果在源服务器资源更新后,CDN节点上的缓存数据没有同步,用户仍将访问过期的缓存资源,这将导致用户最终访问的偏差。此时,需要手动刷新相关资源,以保持CDN缓存最新

浏览器获取请求数量最少的网页数据,并直接对所有未过期的内容使用本地缓存,从而减少了对服务器的请求。使用CDN技术,最大的优势是加快网站访问速度,缩短用户和内容之间的物理距离,缩短用户的等待时间,从而改善用户体验。

作者:曾健,目前在苏宁易购工作,主要从事CDN相关系统开发

声明:本文是作者的独立观点,不代表CSDN的立场。

【结束】

大家都在看

相关专题