网站响应时间过长怎么回事?解决方法都有哪些?很多人在完成HTML5和CSS3部分的学习之后,都要独立完成网页制作项目实践,在这个过程中有部分同学发现网页打开很慢,即网站响应时间过长。针对这个问题,千锋老师给大家分享几种比较好的解决方法。
网站响应时间是什么?
网站响应时间是指系统对请求作出响应的时间,通俗来讲就是我们把网址输入进浏览器然后敲回车键开始一直到浏览器把网站的内容呈现给用户的这段时间。网站响应时间是越短越好,因为网站页面打开速度越快,就意味着我们的用户可以更快的访问站点或者我们的服务器。一般我们网站的响应时间保持在100-1000ms,网页打开速度越快,用户体验度越好。
如何缩短网页响应时间?
当用户请求一个网站数据的时候,实际上是发送了一个http请求,在宏观上可以分为两个部分:http请求到达目标网站服务器之前、http请求到达目标网站服务器之后。
想缩短一个网站的响应时间,本质上是提高数据的返回速度,就是要把请求数据过程中的各个步骤提高速度,你可以从以下几个方面进行:
1、客户端
客户端是发起一个网站请求的源头,这个源头施加一定的策略可以大大缩短某些数据的获取时间。其中最为常用的就是缓存,一些常用的、很少变动的资源缓存在客户端,不但能缩短获取资源的时间,而且在很大程度上能减轻服务端的压力。
2、DNS
一般网站的访问方式都采用域名的方式,这就涉及到DNS解析速度的问题,如果DNS服务解析的速度比较慢,整体过程的响应时间也会加长。当客户端发送一个DNS请求的时候,首先本地的DNS服务器会接收到请求,会在本地先查询缓存中有没有当前域名和IP的映射关系,如果有则直接返回IP信息,如果没有,则会询问其他DNS服务器。
3、网络
客户端获取到网站IP之后通过网卡把http请求发送出去,目标地址为相应的网站服务器。在这个过程当中如果客户端和服务器端有一方带宽比较小的话,就会加大响应时间。这个过程的响应时间取决于很多因素,比如路由器的路由策略是否最优、整个过程通过的网关数据量等。
4、网站
当一个请求到达网站服务器,服务器便开始处理请求,最终请求的数据会通过查询数据库来返回。现在有很多的场景采用NOsql代替关系型数据库来缩短响应时间,在正常情况下,由于关系型数据库的本身因素在特定场景下的读写速度比Nosql要慢很多,所以系统设计初期,可以考虑采用关系型数据库和Nosql混用的方案。
5、缓存
为了避免频繁查询数据库产生瓶颈,诞生了缓存。现在流行的设计在网站层和服务层都有缓存策略,只不过缓存的数据和策略有所不同,但是最终目的都是为了加快请求的响应。加了缓存之后,数据的一致性需要仔细设计。
6、CDN加速
CDN依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN就是把离用户最近的数据返回给用户。
有同学认为程序异步化可以缩短响应时间,其实这是一种误解,不过程序异步化对提高吞吐量有很大作用。如果你想了解更多Web前端相关技术,可以选择专业的学习方式。