我的编程空间,编程开发者的网络收藏夹
学习永远不晚

web网站性能基础建设举例分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

web网站性能基础建设举例分析

这篇文章主要讲解了“web网站性能基础建设举例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“web网站性能基础建设举例分析”吧!

Http Compression(压缩);Content Expirations (内容过期);Content Distribution Networks - CDN(内容分发网络);Etags (E标签);去掉没必要的Http header

【Compression】

我们前边提到过,性能规则中的一条就是在服务器和浏览器之间传输的数据越少越好。介于此规则,我们可以使用一个比较成熟的技术:Http Compression。

Server 端会评估客户端发来的http request中header里的"Accept-Encoding”。来确定客户端是否能处理压缩过的数据。如果支持,server端会去对数据进行压缩并返回结果到客户端。

在keynote这个第三方服务评估的结果是,可以平均节省53%的带宽,,网站平均快了25%。

现在IIS也提供这种技术的支持(免费的)

IIS7 对 compression 的支持

支持配置当cpu占用率过高时,自动停止使用

默认最小的文件大小是256k。

默认启动静态内容的压缩

【在IIS中配置Compression】

打开IIS。选中一个你的网站。在右边选项卡里选择压缩(compression)

web网站性能基础建设举例分析

也许有的朋友会发现,动态压缩是灰色的。其实是我们没安装动态压缩模块。我使用的是win7。安装方法如下:

控制面板-》程序-》开启或关闭windows功能-》Internet 信息服务-》万维网服务-》性能功能(猥琐)-》动态内容压缩

如果是win server版本的朋友需要:

Administrative Tools | Server Manager。

展开Roles,点击Web Server(IIS)。

滚动到Role Services,点击Add Role Services,打开Add Role Services向导。

在Select Role Services页面,滚动到Performance,选择Dynamic Content Compression,选择下一步。

现在我们还用***章里用到的那个网站做测试。打开fiddler。

web网站性能基础建设举例分析

记下每个文件的大小。返回到IIS,开启动态压缩和静态压缩。现在IIS 再接收到请求我的js和css文件时。它先会判断是否已经压缩过呗请求的文件。如果没有它会进行压缩,并且存储到某一个目录。其他用户同样请求相同的文件时,它直接获取压缩过的文件即可。

现在我们回到fiddler看看结果吧。

web网站性能基础建设举例分析

jquery 文件从236K被压缩到90k。其他js和css文件也都受到相应的压缩。

现在我们再使用上一章的另一把利器microsoft network monitor观察压缩前和压缩后  来看看发生了什么变化。

压缩前:

web网站性能基础建设举例分析

压缩后:

web网站性能基础建设举例分析

非常容易使用 MS Network monitor 对比出。压缩前后,frame的数目明显的减少了,从40条减少到9条。

由于95%以上的请求都会被询问是否启用compression。所以主流的浏览器都支持compression。

启用compression会占用少许的cpu。IIS7 对这一块做了优化。

为了确保压缩没有使CPU超载,IIS7每30秒计算平均CPU利用率。当CPU利用率超过一个限制时,它会自动关闭压缩。当CPU利用率低于限制时, 它会重新启用压缩。

限制的默认值是:

web网站性能基础建设举例分析

注意这意味着如果服务器上的CPU一直在50%以上,但偶然高于90%,动态文件压缩会被关闭,但再也不会重新开启了。

可以通过修改applicationHost.config文件修改这些限制,通常它在C:\Windows\System32\inetsrv\config文件夹下。

找到<httpCompression>节。

2.修改httpdynamicCompressionEnableCpuUsage属性:<httpCompressiondynamicCompressionEnableCpuUsage="70".... >

3.重启IIS。

【Content Expirations】

回顾一下我们***张讲过的性能规则。有一条是尽可能不经常地传输数据。

一个用户访问我网站的首页,他会得到我的js,css和图片等文件。浏览器则替他保存到本地的缓存中。过了几天用户又来访问我的网站了。服务器还会看看浏览器缓存中有木有他要的文件。如果有的话,它会告诉server。我有这个文件。但是我想知道它的版本是不是***的。服务器会看看这个文件到底改没改。如果改了,服务器会发送新的文件。如果没,服务器会返回给浏览器状态码304。涛声依旧。

web网站性能基础建设举例分析

304.没改。

利用浏览器缓存:

对于content folder 设置过期时间

尽量避免请求不经常改动的文件

重命名文件,如果需要重写浏览器缓存(版本号/时间戳)

【在IIS中配置Content Expirations】

打开IIS。选中你的站点。选中scripts文件夹(装js的地方。如果有的话)在视图选项卡里找到HTTP 响应标头并进入。

右上角,设置常用标头-》使web内容过期。我们设置5天吧。这时候访问我们的网站。使用fiddler 观察结果如下:

web网站性能基础建设举例分析

那个max-age 我们算算 。正好是5天:)现在我们再打开IE。internet选项-》浏览历史记录-》设置-》查看文件

找到我们的js文件。查看属性,8月7号过期,正好5天:)

【CDN】

另一个对于提高网站性能有效的办法就是使用CDN了。

CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。

下面我来讲讲我们可以利用到的CDN:

JQuery是现在***的js library之一。google、microsoft、jquery.com都免费host了jquery库在它们的cdn上。请看下图:

我在这里可以使用我们自己的服务器上的jquery文件。也可以选择从google、微软和jquery官网的cnd来读。即可以给自己服务器减少压力。也可以利用cnd加快读取速度。

web网站性能基础建设举例分析

【ETags】

什么是ETags?Etag的全称是 entity tag。ETag实际上是一个hash+changeNumber组成的值。hash由文件内容生成。IIS7中changeNumber默认是0;

本章前边内容提到,我们通过设置内容过期,利用浏览器缓存达到性能优化的效果,会使用expires headers告诉浏览器,不用再发送条件GET请求给服务器啦,直接用缓存里面的数据就可以啦,从而加快访问速度。

Etags 使用过程如下:

1.客户端请求一个资源source 。

2.服务器返回页面souce,并在给source加上一个ETag。

3.客户端展现该页面,并将页面连同ETag一起缓存。

4.客户再次请求资源source,并将上次请求时服务器返回的ETag一起传递给服务器。

5.服务器检查该ETag,并判断出该页面自上次客户端请求之后还未被修改,直接返回响应304(未修改&mdash;&mdash;Not Modified)和一个空的响应体。

从此看来Etag有可能会误导浏览器,让浏览器忽略缓存重复下载相同的文件。

我们试着从删除ETAG。

先看看没删除之前ETAG长什么样?

web网站性能基础建设举例分析

using System;  using System.Collections.Generic;  using System.Linq;  using System.Web;  /// <summary>  /// Summary description for ETagRemoveModule  /// </summary>  public class ETagRemoveModule : System.Web.IHttpModule  {      public ETagRemoveModule()      {          //          // TODO: Add constructor logic here          //      }      public void Dispose()      {       }      public void Init(HttpApplication context)      {          context.EndRequest += new EventHandler(HandlerEndRequest);      }      public void HandlerEndRequest(Object sender, EventArgs e)      {      System.Web.HttpContext.Current.Response.Headers.Remove("ETag");      }  }
<system.webServer>    <modules>      <add name="ETagRemoveModule.cs" type="ETagRemoveModule"/>    </modules>  </system.webServer>

ETags就没啦:)

【去掉没必要的Http header】

我们使用fiddler 可以看到,http response header 包含了很多信息。

web网站性能基础建设举例分析

但是有些信息是没必要展示给用户看的。比如我们使用了.netframework 4.0.我们使用IIS7.5。

首先它是多余的信息。其次它也有可能被一些骇客利用。

所以我们修改一下我们的代码:

public void HandlerEndRequest(Object sender, EventArgs e)      {          HttpResponse oResponse = System.Web.HttpContext.Current.Response;          if (null != oResponse)          {              oResponse.Headers.Remove("X-AspNet-Version");              oResponse.Headers.Remove("Server");              oResponse.Headers.Remove("ETag");           }      }

感谢各位的阅读,以上就是“web网站性能基础建设举例分析”的内容了,经过本文的学习后,相信大家对web网站性能基础建设举例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

web网站性能基础建设举例分析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Web性能测试实例设计分析

本篇内容介绍了“Web性能测试实例设计分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先,为什么要进行性能测试?性能不佳的应用通常无法实
2023-06-05

构建互联网高性能WEB系统的示例分析

这篇文章主要为大家展示了“构建互联网高性能WEB系统的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“构建互联网高性能WEB系统的示例分析”这篇文章吧。互联网发展至今各种应用层出不穷,用户
2023-06-09

web前端:高性能网站建设的14个原则

编程学习网:网站建设是指使用标识语言(markuplanguage),通过一系列设计、建模、和执行的过程将电子格式的信息通过互联网传输,最终以图形用户界面(GUI)的形式被用户所浏览。简单来说,网页设计的目的就是产生网站。简单的信息如文字,图片(GIF,JPEG,PNG)和表格,都可以通过使超文件标示语言、可扩展超文本标记语言等标示语言放置到网站页面上。而更复杂的信息如矢量图形、动画、视频、声频等多媒体档案则需要插件程序来运行,同样地它们亦需要标示语言移植在网站内。
web前端:高性能网站建设的14个原则
2024-04-23

网站内部链接建设的示例分析

这篇文章主要介绍网站内部链接建设的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!网站地图sitemap网站内链首先要提的那就是网站地图了,网站地图分为2种常见形式,sitemap.html和sitemap.x
2023-06-10

大型网站的建设流程的示例分析

小编给大家分享一下大型网站的建设流程的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!  流程一、网站建设定位  大型网站建设定位时需要型清楚做这个网站的目的,做这个网站想要达到哪些效果?网站想要展示哪些内容主要作用
2023-06-10

探讨网站性能优化设计的最佳实践和案例分析

网站性能优化设计的最佳实践与案例分析随着网络技术的迅猛发展,越来越多的企业和个人都拥有了自己的网站。然而,随之而来的是网页加载速度变慢、响应时间变长等问题,给用户的体验产生了负面影响。因此,对于网站性能的优化设计成为了刻不容缓的任务。网
探讨网站性能优化设计的最佳实践和案例分析
2024-02-02

建设网站中服务器端脚本的示例分析

这篇文章将为大家详细讲解有关建设网站中服务器端脚本的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。HTML 文件中的脚本可以在 web 服务器上执行。HTML 文件可以包含文本、HTML 标签以及
2023-06-12

计算机网络中网站性能延迟加载图像的示例分析

这篇文章给大家分享的是有关计算机网络中网站性能延迟加载图像的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。由于图片是web上最流行的内容类型之一,因此网站的页面加载时间很容易成为一个问题。即使经过适当的优
2023-06-09

编程热搜

目录