[转]网站优化-IIS7下静态文件的优化

news/2024/5/11 12:31:28/文章来源:https://blog.csdn.net/weixin_33767813/article/details/85585463

本文转自:http://www.cnblogs.com/Leung/archive/2009/10/26/1590256.html

在网站开发过程中,通常我们会对网站的静态文件做处事,像图片文件,CSS,JS文件,其实以前也写过类似的文章,现在只是做一个针对性的总结下.

JS文件处理:

网站优化来说,其实是见议我们放在网页最后来来加载,因为JS文件它是一个阻塞模式,当一个线程在下载JS文件时需要等它下载完才能接着加载下面的内容,那么如果把JS放在网页的头部这样会有一个阻塞下载,如果网速慢的话,下面的网页内容显示不出来,这样的用户体验是很不好的,有可能有的用户会认为网站打不开呢?但有时因为UI上的处理,特别是网站功能菜单这块的处理又不得不放在网站前面.那这样怎么办?

解决方法:

1、对JS文件压缩,网上有大把压缩工作,把JS文件里面的空格去掉,把那么不必要的注析去掉,把JS写成一行,通过减小JS文件的大小,减少网络的传输流量,达到节省传输时间。

2、启用服务器端的静态文件压缩,就是在REQEUST响应前先对JS文件进行一次压缩,当前会增加点CPU的运算,不过这个可以通过下面的办法来解决,减少CPU压缩的次数来达到

提升CPU的可能率。IIS7的操作如下,启动静态压缩就可以了.

3、针对上面的优化我们还不够,首先每次用户访问同一个用户都会去加载同样的JS文件,我们需要充份利用用户的浏览器来减少对同一文件的请求,通过减少文件的请求可以减少CPU对文件压缩的运算次数。我们只需要给静态文件加上过期时间就可以了,当然也需要加上ETAG,光一个过期时间是不足以完全解决过期的问题,什么ETAG的作用可以参考

{

服务器端对静态文件返回: Cache-Control的header 跟 etag / last-modified的header 是两种完全不同的Cache方式。
前者是告诉浏览器说,你缓存住这个资源若干时间,在这段时间内,如果有别的页面再调用这个资源,你就直接使用你这次保存下来的版本,完全不需要再跟服务器拿,任何http请求的都不需要发送给服务器。
后者是告诉浏览器说,你可以永久的缓存住这个资源以及相应的hash(也就是etag)或者说资源的最后更改时间。但是!以后如果有别的页面也调用了这个资源,你仍旧需要把我上次返回给你的hash或者最后修改时间通过一个新的请求发送过来。服务器端会验证一下hash / 最后修改时间跟服务器上面的现在最新的版本是否还一致,如果一直就返回304,而不返回实际内容,告诉浏览器说你可以使用之前缓存的内容。如果不一致,就返回新版本的内容。
两种方式的区别在于一个有时间限制,一个没有;一个在符合缓存条件的情况下不发送任何新的http请求,一个则每次都需要发送新的http请求去验证缓存是否过期。
从你介绍的内容看,你应该是在推荐使用第一种缓存方式。只有Cache-Control header的话,服务器无论如何是不可能返回304的。
因为浏览器传统上对一个服务器限制最多只会有两个并发请求,Cache-Control header的缓存效果比使用etag会好很多很多。一个无内容的http请求也是有可能产生阻塞。
而你举例的Cache-Control max-age仅有10分钟,这似乎实际效果并不明显。即便是浏览器缓存了资源,它10分种后,或者说用户第二天再次浏览的时候,所有的静态资源又得再重新下载一遍。
对于静态资源,我一般是放一个几年的max-age,只要客户端的缓存空间足够大,网站的所有静态资源都只会被请求一次。
etag / last-modified的header IIS对于静态文件其实默认就会自动添加的,无须任何设置。我倒是在尝试将其使用在动态页面中。动态页面在输出之前,先根据自己的Response buffer中的字符串内容计算一个md5,然后作为etag插入到Response header中。下次客户端访问同一页面的时候,便会把之前收到的etag发送回来。页面在flush response之前先检查一下客户端发送过来的etag与这个生成的Response text md5是否一致,如果一致,就不返回完整的Response内容,而直接丢一个304回去。页面生成的时间不会减少,但是在页面内容不变的情况下(用户刷自己首页看有无更新)传输时间会大幅减少。但是,这也意味着页面中的所有时间都不能使用过去形式去显示。否则,用户每次刷页面,页面的内容都会因为这些时间显示而使得md5结果不同。
}

IIS7 具体的操作如下:

选择HTTP响应头>设置常用标头项

说明:保持HTTP连接选项是说明,当一个用户请求这个文件后不会断开HTTP的链接,时间是300,相当于它会在http 头加一个keep-alive这个是针对于HTTP 1.1协议的一个功能

内容过期的话要看你的实际业务需求了,一般那些改动比较小的可以把过期时间放长些.

图片文件的处理:

  对于网站应用程序我们知道应尽量的减少HTTP REQUEST次数和一次性加载文件的过大.然而这二方面又好像是有些矛盾,文件要减小它的大小那么只好把一个大图切成多个小图下载了.

但是这样又会把增加HTTP的请求次数.怎么办呢?

对于有些背景图我们可以用CSS来处理,只加载一个图片,但可以用CSS定位在不同的地方.还有方法就是如同上面JS的处理,给图片加上过期时间.任外一种办法就是分配独立的APPLICATION专门处理图片的请求与主站分开.

流媒体文件处理:

  针对flash文件其实也是一样,因为它第一次加载时会存放在客户端,要充分利用上客户端的CACHE.像FLASH播放器这样的静态文件可以把过期时间设很长.采用专门的站点来播放.相当于在服务器端提供多进程组件服务于用户的请求.

针对动态内容的优化可以参考

http://www.cnblogs.com/Leung/archive/2009/10/26/1590091.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_829382.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我是如何对网站CSS进行架构的

一、写在前面的 都是自己积累形成的一些东西,可能带有明显的个人印记。不是专业内容,不是权威指南,只是展示一点自己的观点,借此希望能与各位优秀的同行交流看法,见解。以得到进步与提高。 二、我所知的一些过往的做法…

文字图片转换成html代码,IMG4Me 网站在线把文字转换为图片

IMG4Me网站首页截图文字做成图片,很简单的操作,但今天所介绍的网站IMG4Me.com所要做的并非简单地输入文字就直接生成图片,而希望借助这种方式,来防范垃圾邮件。如果你有过这样的经历——不小心留下自己的邮件地址或其他信息&#…

网站安全狗apache V3.1新版来啦 抵御网络攻击

2019独角兽企业重金招聘Python工程师标准>>> 当当当~~~网站安全狗apache V3.1新版来啦~~~大家是不是也一直在期待apache的新版呢?还等什么~~~到安全狗官网下载安装个吧~~ 安全狗官网地址http://www.safedog.cn/website_safedog.html 此次版本主要更新的…

【matlab教程】07、资源共享网站 file exchange

地址:https://ww2.mathworks.cn/matlabcentral/fileexchange/ 里面可能会有用得上的函数,比如我想找读obj的函数 readobj 下载-解压-把函数放入自己的代码文件夹中就行

生产环境-linux-网站被挂******经历

安全与方便始终是对立的,然而运维人员忽视系统安全方面的建设,带来的后果将是非常严重的,以下是一台未上线服务器***后的***经历。一、出现异常,排查原因发现异常是通过远端监控脚本发现访问网站时断时续,使用ssh工具连…

dhclient获取不到ip_网站接入CDN后如何设置获取真实的用户IP地址信息

一般我们在使用WordPress程序的时候,在评论后台是可以看到用户留言的信息的,包括用户的IP地址。当然也包括我们在使用的日志查看用户日志信息的。但是,如果我们启用CDN内容分发功能之后,获取到的IP地址信息都是CDN 的IP地址&#…

在线正则表达式网站

2019独角兽企业重金招聘Python工程师标准>>> 转载于:https://my.oschina.net/xiechaoyong/blog/413804

一个没水平的钓鱼网站黑三个人:人们的安全意识和安全知识的缺失

今天,在我的qq好友里面发生这这么一件事情。我的表妹qq被盗,在空间里发了一个钓鱼网站的动态。不久我表妹的表哥的qq空间也发出了同样的动态。过了四五个小时吧,我表弟的空间里也冒出了一样的钓鱼网站动态。最后,还是我去跟他们说…

php 修改文件属性命令,防止webshell,网站安全设置必会命令,Linux 文件基本属性: chown修改所属组 和 chmod修改文件属性命令...

最近,我总结了一套安全法则,可以让网站不被拿到webshell那就是网站文件全部设置属主为root对于uploads这些可写的目录,可以配置成777但要在相应的apache配置文件里,设置不能执行脚本ErrorDocument 404 /404/404.htmlErrorDocument…

比较好的网站及工具

2019独角兽企业重金招聘Python工程师标准>>> http://www.odi.ch/prog/design/newbies.php Java Anti-Patterns http://www.ruanyifeng.com/blog/ 阮一峰的网络日志 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures http://unxutils.sourceforge.…

小demo—实现访问网站总人数的记录

学习了html、jsp、servlet几天,练习一个小demo,通过HttpServlet中的getServletContext() 方法,实现统计网站访问总人数的一个小功能。代码如下: 我们先自定义一个Servlet类,实现HttpServlet, public class…

Azure Stack PaaS-网站(WebApp)背后是什么原理?

欢迎加入QQ群(423730487)!4月9日在上海有一场线下活动,盆盆还有微软Azure Stack产品组专家会和大家一起分享技术,届时会在QQ群里直播哈。添加盆盆的微信(markpah),我会把您拉到微信群。为什么要学习Azure Stack?因为这…

SEO独家干货:利用外链投票模型操作新站快速排名

今年我在卢松松博客投稿了不少的干货文章,其中有一篇叫做“SEO外链算法独家揭秘”,里面提到了很多朋友或许都没有思考到的点,我一直相信,在搜索引擎优化当中,当任何一个点优化到极致,你的排名将顺从着你的极…

网站移植到linux上后常犯的错误

常犯的错误 1:gcc库没装或者没装全 表现:没有可用的C编译器 同类错误:提示g not found, 解决:出现以上错误,则是因为gcc编译器没装,或者是没装全. 挂载光盘…

网站分析数据(即用户行为数据)的三种收集方式详解

网站分析数据的三种收集方式详解 2012年11月02日 | 作者 数码林 | 互联网热门转载, 网站分析 回顾网站数据分析历史,从“您是第***位来访用户”到现在百家齐放的专业工具提供商,网站分析已经逐渐发展衍化成一门科学。但面对形态各异的分析数据&#x…

不完美的网站分析数据

不完美的网站分析数据 2012年11月05日 | 作者 数码林 | 互联网热门转载, 网站分析 一、 技术理想化 每种数据收集方式都有其独特的技术优势,但没有一种收集方式能完美的捕获到访问者在网站上的所有动作,每种技术也都会由于自身的局限性导致你看到的数据…

一个SEO主管如何打造自己的百万年薪

进入了SEO行业一步步都会走到主管级别,一个SEO主管如何打造自己的百万年薪,如何去帮助自己的团队都各自寻找到自己价值,这就是我接下来要讲授的SEO主管如何去打造自己的百万年薪,成就自己的团队! 让我们的海南网站关键词优化更轻松…

《流量的秘密 Google Analytics网站分析与商业实战》一第1章 衡量成功的前期准备1.1 网站分析数据的价值...

本节书摘来自异步社区《流量的秘密 Google Analytics网站分析与商业实战》一书中的第1章,第1.1节,作者 【英】Brian Clifton,更多章节内容可以访问云栖社区“异步社区”公众号查看 第1章 衡量成功的前期准备 流量的秘密 Google Analytics网站…

PHP与MySQL网站开发 第1章

1.1什么是PHP PHP是一种在计算机上运行的脚本语言,主要用途是处理动态网页。 PHP文件向浏览器返回纯粹的HTML。PHP文件可包含文本,HTML标签以及脚本。 PHP文件的扩展名是“php”、“php3”或“phtml”1.2 什么是MySQL MySQL是一个开…

大型分布式网站架构技术总结

本文是学习大型分布式网站架构的技术总结。对架构一个高性能,高可用,可伸缩,可扩展的分布式网站进行了概要性描述,并给出一个架构参考。一部分为读书笔记,一部分是个人经验总结。对大型分布式网站架构有很好的参考价值…