美文网首页
关于静态资源的一些事

关于静态资源的一些事

作者: David三人行 | 来源:发表于2017-05-08 16:08 被阅读144次

首先什么是静态资源呢?一般指服务器发送到客户端的文件,常见的比如js、css、图片、音频等。
我们知道在性能优化这一块,会推荐把静态资源放到cdn上。

那么什么是cdn呢?cdn全称叫Content Delivery Network,即内容分发网络。CDN的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。

通过这种方式,我们给主业务服务器分担了很大的带宽压力。在上次社区的改造中,我们把图片资源都迁移到了cdn。在迁移过程中有一个细节引起了我的注意。在此之前的图片资源都放在项目public目录中,迁移到cdn后,图片的请求地址页发生了修改。由原本的www.xxx.com/a.png改为了img.xxx.com/a.png(只是一个例子,不影响理解),我们前端需要批量修改图片路径。当时我想能不能用nginx做方向代理,转到cdn上,这样的话前端就不需要修改代码了(- -其实是我懒。。)虽然后台同事觉得怪怪的,感觉多了一层nginx转发会影响到性能,所以还是否决了我的想法。然后苦逼的前端就只能修改路径了。
后来我在一篇技术文章上看到了cookie free这个概念,了解这个概念的含义后终于了解了为什么不应该用nginx做反向代理了。
我们知道在做资源请求的时候,浏览器会在同源资源的请求(相同协议、相同域名、相同端口)时,会带上cookie。这些cookie在做业务请求的时候很有用(服务器要根据cookie来获取该请求的session信息,从而识别该业务请求),但是对于静态资源则没有一点用处(服务器不会做处理)。因而如果使用一个二级域名,该资源能够正常请求(通过xml做请求仍然会跨域),而且不会带cookie,另外,由于多了域名,会增加浏览器的资源请求并发上限,从而提高了性能。

由此总结,使用cdn技能能够为主业务服务器分压,并能让客户端更快命中资源。而用专属的域名能取消cookie请求的开销,另外能提升客户端的请求并发上限。但也不是说客户端用的域名越多越好,因为会提高dns解析的开销(可以用过prefetch减少开销)。

相关文章

  • 关于静态资源的一些事

    首先什么是静态资源呢?一般指服务器发送到客户端的文件,常见的比如js、css、图片、音频等。我们知道在性能优化这一...

  • laravel上访问静态资源

    PHP大法好 关于Laravel上访问静态资源,其实是很简单,因为Laravel已经做好了,直接把静态资源放在pu...

  • 10.Nginx作为静态资源WEB服务-配置语法(sendfil

    静态资源WEB服务 Nginx作为静态资源WEB服务 , Nginx作为静态资源的HTTP WebServer它可...

  • 免费的静态资源CDN加速服务

    bootCDNcdnjs七牛百度静态资源公共库腾讯网静态资源公共库 又拍云JS库加速服务 关于使用体验大家可以留言...

  • 关于SpringMVC静态资源失效

    方法有三种,其一是web.xml中添加 default *.js 参考地址:https://www.cn...

  • 彻底弄懂强缓存与协商缓存

    在工作中,前端代码打包之后的生成的静态资源就要发布到静态服务器上,这时候就要做对这些静态资源做一些运维配置,其中,...

  • webpack静态资源输出

    工作中会有一些已经存在但在项目中没有引用的图片资源或者其他静态资源(比如设计图、开发文档),这些静态资源有可能是文...

  • (22/24) webpack实战技巧:静态资源集中输出

    工作中会有一些已经存在但在项目中没有引用的图片资源或者其他静态资源(比如设计图、开发文档),这些静态资源有可能是文...

  • java内部类

    静态内部类: 静态内部类本身可以访问外部的静态资源,包括静态私有资源。但是不能访问非静态资源,可以不依赖外部类实例...

  • day43课堂笔记(HTTP以及Nginx)

    第一章、思想 第二章、静态网页资源 2.1、什么是静态网页资源? 2.2、静态网页资源特点 2.3、静态网页资源特...

网友评论

      本文标题:关于静态资源的一些事

      本文链接:https://www.haomeiwen.com/subject/usomtxtx.html