返回顶部
首页 > 资讯 > 前端开发 > VUE >web网站性能基础建设举例分析
  • 476
分享到

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

2024-04-02 19:04:59 476人浏览 泡泡鱼
摘要

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

这篇文章主要讲解了“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 再接收到请求我的jsCSS文件时。它先会判断是否已经压缩过呗请求的文件。如果没有它会进行压缩,并且存储到某一个目录。其他用户同样请求相同的文件时,它直接获取压缩过的文件即可。

现在我们回到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网站性能基础建设举例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: web网站性能基础建设举例分析

本文链接: https://lsjlt.com/news/86708.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • web网站性能基础建设举例分析
    这篇文章主要讲解了“web网站性能基础建设举例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“web网站性能基础建设举例分析”吧!Http Compres...
    99+
    2024-04-02
  • web网站性能举例分析
    这篇文章主要讲解了“web网站性能举例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“web网站性能举例分析”吧!【概观】什么使我们的网站变慢?Http ...
    99+
    2024-04-02
  • Python基础技术举例分析
    这篇文章主要讲解了“Python基础技术举例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python基础技术举例分析”吧!基础1. 变量可以把变量简单理解为一个存储值的单词。讲道理,变...
    99+
    2023-06-02
  • WCF性能举例分析
    这篇文章主要介绍“WCF性能举例分析”,在日常操作中,相信很多人在WCF性能举例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”WCF性能举例分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!WCF(W...
    99+
    2023-06-17
  • Python面向对象基础举例分析
    本篇内容主要讲解“Python面向对象基础举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python面向对象基础举例分析”吧!1. 面向对象oop了解# ### oo...
    99+
    2023-06-21
  • PostgreSQL性能优化举例分析
    这篇文章主要讲解了“PostgreSQL性能优化举例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PostgreSQL性能优化举例分析”吧!背景在空间数...
    99+
    2024-04-02
  • Linq To Sql性能举例分析
    这篇文章主要讲解了“Linq To Sql性能举例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linq To Sql性能举例分析”吧!Linq To Sql性能Linq To Sql性...
    99+
    2023-06-17
  • Web性能测试实例设计分析
    本篇内容介绍了“Web性能测试实例设计分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先,为什么要进行性能测试?性能不佳的应用通常无法实...
    99+
    2023-06-05
  • 构建互联网高性能WEB系统的示例分析
    这篇文章主要为大家展示了“构建互联网高性能WEB系统的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“构建互联网高性能WEB系统的示例分析”这篇文章吧。互联网发展至今各种应用层出不穷,用户...
    99+
    2023-06-09
  • Linq查询与性能举例分析
    这篇文章主要讲解了“Linq查询与性能举例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linq查询与性能举例分析”吧!Orcas(VS2008&Framework3.5)给我们...
    99+
    2023-06-17
  • Web应用的缓存设计模式举例分析
    本篇内容介绍了“Web应用的缓存设计模式举例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!ORM缓存引...
    99+
    2024-04-02
  • Nginx日志及性能排查举例分析
    这篇文章主要讲解了“Nginx日志及性能排查举例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Nginx日志及性能排查举例分析”吧!导读最近一直在做性能排查,思路就是根据分析nginx日...
    99+
    2023-06-03
  • 网站内部链接建设的示例分析
    这篇文章主要介绍网站内部链接建设的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!网站地图sitemap网站内链首先要提的那就是网站地图了,网站地图分为2种常见形式,sitemap.html和sitemap.x...
    99+
    2023-06-10
  • Vue3响应性基础API实例分析
    这篇“Vue3响应性基础API实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue...
    99+
    2024-04-02
  • 大型网站的建设流程的示例分析
    小编给大家分享一下大型网站的建设流程的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!  流程一、网站建设定位  大型网站建设定位时需要型清楚做这个网站的目的,做这个网站想要达到哪些效果网站想要展示哪些内容主要作用是...
    99+
    2023-06-10
  • Linux高性能任务独占CPU举例分析
    这篇文章主要讲解了“Linux高性能任务独占CPU举例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux高性能任务独占CPU举例分析”吧!Part 1工程需求在一个SMP或者NUM...
    99+
    2023-06-15
  • RAC基础设施部署的示例分析
    这篇文章主要为大家展示了“RAC基础设施部署的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“RAC基础设施部署的示例分析”这篇文章吧。总体图整体的分图如...
    99+
    2024-04-02
  • 网络建设的示例分析
    小编给大家分享一下网络建设的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!第一、确立自己的目标网络建设,首先要确立一个目标,先要问一问自己,我为什么要做这...
    99+
    2023-06-10
  • 探讨网站性能优化设计的最佳实践和案例分析
    网站性能优化设计的最佳实践与案例分析 随着网络技术的迅猛发展,越来越多的企业和个人都拥有了自己的网站。然而,随之而来的是网页加载速度变慢、响应时间变长等问题,给用户的体验产生了负面影响。因此,对于网站性能的优化设计成为了刻不容缓...
    99+
    2024-02-02
    性能优化 最佳实践 案例分析 前端优化 异步加载
  • Web前端开发css基础样式的示例分析
    小编给大家分享一下Web前端开发css基础样式的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!颜色和单位的使用 颜色用颜...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作