ASP.NET 构建高性能网站 第2篇

news/2024/5/22 8:14:36/文章来源:https://blog.csdn.net/weixin_34275734/article/details/93462910

前言:在对ASP.NET网站进行优化的时候,往往不是只是懂得ASP.NET就足够了的。 在优化的过程中,一般先是找出问题可能存在的地方,然后证明找出的问题就是要解决的问题,确认之后,在进行一些措施。系列文章在结构上的安排是这样的:先讲述前端的调优,我会在文章的标题后面标上”前端”,如果是后台代码的调优,我会在标题上标上”后端”,如果是数据库设计的调优,我会在标题上标上”数据库”,希望大家多多提建议。

 

本篇主要剖析过程,让大家有个全面的了解,下一篇就开始分步剖析了。

 

剖析页面的解析过程

  页面的解析过程,这里说的过程不是我们常说的ASP.NET页面的生命周期的过程,而且浏览器请求一个页面,然后浏览器呈现页面的过程。

 

  在本篇的文章中,我会先阐述页面的解析过程,显示从整体上阐述,然后在每一个点上提出优化的方法。先整体,后局部。

 

  当浏览器在请求一个Web页面是从URL开始的。下面就是过程描述:

    1. 输入URL地址或者点击URL的一个链接

    2. 浏览器根据URL地址,结合DNS,解析出URL对应的IP地址

    3. 发送HTTP请求

    4. 开始连接请求的服务器并且请求相关的内容(至于请求时怎么被处理的,我们这里暂时不讨论,只是后面的文章要讨论的问题)

    5. 浏览器解析从服务器端返回的内容,并且把页面显现出来,同时也继续进行其他的请求。

 

  上面基本上就是一个页面被请求到现实的过程。下面我们就开始剖析这个过程。

 

  当输入URL之后,浏览器就要知道这个URL对应的IP是什么,只有知道了IP地址,浏览器才能准备的把请求发送到指定的服务器的具体IP和端口号上面。

 

  浏览器的DNS解析器负责把URL解析为正确的IP地址。这个解析的工作是要花时间的,而且这个解析的时间段内,浏览器不是能从服务器那里下载到任何的东西的。但是这个解析的过程是可以优化的。试想,如果每次浏览器每次请求一个URL都需要解析,那么每次的请求都有一点的时间消耗,可能这个时间消耗很短,但是性能的提升就是一点点的“调”出来的。如果把对应URL和IP地址缓存起来,那么当再次请求相同的URL时,浏览器就不用去解析,而是直接读取缓存,这样势必会快一点。

 

  其实浏览器和操纵系统是提供了这样的支持的。

 

  当获得了IP地址之后,那么浏览器就向服务器发送HTTP的请求,下面我们就稍微看下这个发送请求是怎么样被发送的:

    1.    浏览器通过发送一个TCP的包,要求服务器打开连接

    2.    服务器也通过发送一个包来应答客户端的浏览器,告诉浏览器连接开了。

    3.    浏览器发送一个HTTP的GET请求,这个请求包含了很多的东西了,例如我们常见的cookie和其他的head头信息。

 

  这样,一个请求就算是发过去了。

 

  请求发送去之后,之后就是服务器的事情了,服务器端的程序,例如,浏览器清楚的文件是一个ASP.NET的页面,那么服务器端就把请求通过IIS交给ASP.NET 运行时,最后进行一系列的活动之后,把最后的结果,当然,一般是以是以html的形式发送到客户端。

 

  其实首先到达浏览器的就是html的那些文档,所谓的html的文档,就是纯粹的html代码,不包含什么图片,脚本,css等的。也就是页面的html结构。因为此时返回的只是页面的html结构。这个html文档的发送到浏览器的时间是很短的,一般是占整个响应时间的10%左右。

 

  这样之后,那么页面的基本的骨架就在浏览器中了,下一步就是浏览器解析页面的过程,也就是一步步从上到下的解析html的骨架了。

 

  如果此时在html文档中,遇到了img标签,那么浏览器就会发送HTTP请求到这个img响应的URL地址去获取图片,然后呈现出来。如果在html文档中有很多的图片,flash,那么浏览器就会一个个的请求,然后呈现。

 

  到这里,大家也许感觉到这种方式有点慢了。确实这个图片等资源文件的请求的部分也是可以优化的。暂不说别的,如果每个图片都要请求,那么就要进行之前说的那些步骤:解析url,打开tcp连接等等。开连接也是要消耗资源的,就像我们在进行数据库访问一样,我们也是尽可能的少开数据库连接,多用连接池中的连接。道理一样,tcp连接也是可以重用的。但是重用也有问题:如果两个图片它们的url地址如下:

 

 

代码

 

 

请求这些图片的时间消耗如下图:

 

 

 

 

  大家首先看到最上面的黄线的部分,这个黄线就代表了浏览器打开连接,黄线的后半部分为蓝色,就表示浏览器请求到了html的文档。

 

  最上面的第二条蓝线就表示第一个图片已经请求到了,此时请求这个图片使用还是之前的一个tcp的连接。

 

  大家在看到第三条线,前部分是黄色的,表示请求第二个图片的时候又开了一个tcp的连接,这条线的后半部分为蓝色,表示图片已经请求到了。

 

  剩下的要请求的一些图片都使用上一个tcp连接。

 

  确实,tcp的连接时充分的被使用了,但是图片下载的速度确实慢了,从图中看出,图片是一个个的顺序的下载下来的。整个页面的响应时间可想而知。

 

  如果采用下一种方式,如:

 

 

 

 

  可以看出连接时多了,但是图片的几乎都是并行下载下来的,相比而言就快多了。

 

 

  其实这就是一个权衡的问题了。

 

  实际上浏览器也是内置了以一些优化方式的,例如缓存图片,脚本等。或者采用并行下载图片的方式,谈到并行下载,就如上图所看到的,势必会消耗更多的连接资源。 

 

  今天主要对页面的过程进行了初步的剖析,是的大家有个总体的把握,下一篇我们就开始逐步优化,敬请关注,也希望大家多多提出意见和反馈。先谢过了啊! :)

 

转载于:https://www.cnblogs.com/licin/p/6282813.html

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

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

相关文章

转:大型网站架构系列:消息队列(二)

本文是大型网站架构系列:消息队列(二),主要分享JMS消息服务,常用消息中间件(Active MQ,Rabbit MQ,Zero MQ,Kafka)。【第二篇的内容大部分为网络资源的整理和汇…

Win7使用python2.7搭建Django网站

1、第一步安装Python2.7.13----省略该步骤2、根据Django的建议下载相对应的Django版本3、使用阿里云镜像下载DjangoURL:https://mirrors.aliyun.com/pypi/simple/django/ 版主下载的版本是1.9.8URL:https://mirrors.aliyun.com/pypi/packages/cc/36/cc34…

Windows使用PHPstudy集成环境配置局域网访问网站

今天做了一个简单项目,想着通过公司局域网直接访问我的网站查看 看一下自己的电脑ip地址 cmd下ipconfig 打开PHPstudy集成环境点击 创建网站 配置网站信息,把原先对应虚拟主机域名的地方填写ip可以了 这样局域网就能访问看到了,线下应该也没…

不懂这些SEO技巧,你还敢说你是前端? 作者原创 版权保护

这篇文章其实是我本人的总结,因为工作中做完了一个官方网站并成功上线,最后组长检查代码看到我的keyword等一系列信息都是空的,把我骂得狗血淋头。一言不合就作总结,总结一些简单但是我们能做的seo小技巧,送给想把网站…

HTML+CSS Day11产品网站

1.佰亿首页 效果图&#xff1a; 代码&#xff1a; 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">2 <html xmlns"http://www.w3.org/1999/xhtml">…

使用VS软件打开网站在浏览器浏览的方法

1、用VS软件打开网站之后&#xff0c;先检查网站是否使用IIS Express开发 2、若不是&#xff0c;则切换成使用IIS Express开发 3、检查项目使用的托管管道模式设置为经典模式了没有 4、最后选择“在浏览器中查看”&#xff0c;即可浏览网站了。 转载于:https://www.cnblogs.com…

selenium 对https网站(加密证书)进行自动化测试

由于公司需要&#xff0c;被测网站有证书加密&#xff0c;由于在selenium启动firefox的时候&#xff0c;它会重新建一个profile作为启动的profile&#xff0c;所以无论你怎么把站点设为可信任站点&#xff0c;在selenium启动的firefox中都是无效的。网上各种找方法&#xff0c;…

seo伪原创工具_伪原创自媒体工具

在媒体工作的程序员都知道伪原创种工具。今天&#xff0c;让我们来谈谈如何制作这些工具之一&#xff0c;并学习人类语言的计算机处理技术。该计划包括:1.来自媒体的语法和语义分析关键工具伪原创:对于给定的句子&#xff0c;分词、词性标注、命名实体识别和链接、句法分析、语…

python面试题网站有哪些_互联网公司Python的16道经典面试题

随着Python在企业中的应用越来越多&#xff0c;岗位需求越来越大&#xff0c;面试成为了搞定优质职位的快速方式&#xff0c;下面是笔者面试10余家企业总结的面试题&#xff0c;希望对Python从业者有帮助。 Python是如何进行内存管理的&#xff1f; 答:从三个方面来说,一对象的…

sql优化常用的几种方法_网站外链建设常用的几种方法

外链是SEO工作中的重点内容&#xff0c;也是SEO需要持续的工作之一&#xff0c;即使是在推出绿萝算法后&#xff0c;外链也是让网站获取收录排名的方法。在实际SEO优化过程中&#xff0c;外链依然是让大部分SEO优化人员无从下手&#xff0c;小编整理下外链建设的几种方法仅供参…

利用JS实现购物网站商品放大镜效果

大家几乎都有在网上购物的经验&#xff0c;有的网站会有一个商品放大镜功能&#xff0c; 就是把鼠标移到图片上的时候&#xff0c;旁边会有另外一张大的图片展示&#xff0c;等同于 放大镜效果&#xff0c;那这样的效果怎样实现的呢&#xff0c;我把代码发给大家&#xff0c;请…

新站软件快速排名_新网站快速排名方法有哪些?新站优化排名需要注意什么?...

很多新网站建站后都有这样的忧虑&#xff0c;就是优化了一段时间&#xff0c;排名不见提升&#xff0c;流量不见增加&#xff0c;只能羡慕着竞争对手每天访客如云。但是&#xff0c;空想着并不会天上掉流量。所以&#xff0c;今天的干货重点给大家分享关于新网站快速排名的方法…

开线程插数据_Python数据分析之数据采集:使用3个线程采集电子商务网站数据...

《大数据和人工智能交流》头条号向广大初学者新增C 、Java 、Python 、Scala、javascript 等目前流行的计算机、大数据编程语言&#xff0c;希望大家以后关注本头条号更多的内容。使用python编写3个线程同时采集商品“新品上架”的信息&#xff1a;一、页面参考信息页面部分代码…

seo模拟点击软件_SEO快排

seo优化技术作为搜索引擎营销的附属服务已经存在很多年了&#xff0c;其中技术奥妙想必大家都有了解。通常由于搜索规则的调整&#xff0c;很难让一个词稳定在一个位置。尽管seo站长会采用高权重外链&#xff0c;泛解析站群&#xff0c;机器人采集内容等手段增加上词概率&#…

h5 企业网站asp源码_老旧企业网站该如何进行SEO优化改版与调整

互联网的发展时间已经有几十年的历史了&#xff0c;而有不少企业在互联网发展的早期就已经开始建立起了自己的企业网站。对于这部分企业来说&#xff0c;其企业网站建立的时间较久&#xff0c;但是使用的相关建站技术也是较为陈旧。在互联网发展的的近十年&#xff0c;相关的建…

大型网站架构演化

前言 一个成熟的大型网站&#xff08;如淘宝、京东等&#xff09;的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性&#xff0c;它总是随着用户量的增加&#xff0c;业务功能的扩展逐渐演变完善的&#xff0c;在这个过程中&#xff0c;开发模式、技术架构、设计…

js 网页 隐藏地址栏_微软开放新开源网站;一行代码错误:5亿美金没了;Chrome86继续隐藏URL...

导读&#xff1a;本文给各位安利几个对于开发者有用的资讯和经验&#xff0c;希望对大家有借鉴。微软上线新开源网站近年来&#xff0c;微软对开放源代码似乎是上了瘾&#xff0c;细数下来它陆陆续续开源了不少产品&#xff0c;而且还增加了很多更新频率。这不&#xff0c;它刚…

克隆网站工具_一款开源且超好用的网站克隆机 HTTrack

0x00 前言我们在学习前端的时候&#xff0c;总是会想着去学习其他人网站是如何制作的&#xff0c;或者我们遇到一些比较有用的知识点的时候&#xff0c;我们可能会选择通过 Ctrl C / Ctrl V 去扒下内容&#xff0c;然而我并非是鼓励这种扒网站的行为&#xff0c;不过只要是开…

Jmter接口网站压力测试工具使用记录

1.首先下载Jmeter 官方地址&#xff1a;http://jmeter.apache.org/ 2.安装Jmeter 把下载的文件进行解压&#xff0c;产生如下目录&#xff1a;打开bin文件夹下的jmeter.bat文件及进入程序的主界面窗体jmeter.log是日志文件。主意&#xff1a;需要配置java环境。3.jmter创建一个…

(大型网站之Nginx)图解正向代理、反向代理、透明代理

一、正向代理(Forward Proxy)一般情况下&#xff0c;如果没有特别说明&#xff0c;代理技术默认说的是正向代理技术。关于正向代理的概念如下&#xff1a; 正向代理(forward)是一个位于客户端【用户A】和原始服务器(origin server)【服务器B】之间的服务器【代理服务器Z】&…