性能优化,被光只有调HTML、CSS、JS,来看看网络优化吧
gaoyangw 2024-10-04 16:59 9 浏览 0 评论
前言
最近忙的要死,app要上线一系列功能…到周末只想躺着,今天的文章是来自哥们的一篇网络性能优化的文章。虽然他搞的是前端,但是网络这一块是“大家”的,所以个人觉得各职业小伙伴看一看没坏处~
正文
前两期讲过了如何在代码层级进行性能优化,本期给大家带来网络传输层的优化,也是性能三部曲的终结篇:
强调HTTP请求的完整过程
- DNS解析
- 首先会搜索浏览器自身的DNS缓存(缓存时间比较短,大概只有1分钟,且只能容纳1000条缓存)
- 如果浏览器自身的缓存里面没有找到,那么浏览器会搜索系统自身的DNS缓存
- 如果还没有找到,那么尝试从 hosts文件里面去找
- 在前面三个过程都没获取到的情况下,就递归地去域名服务器去查找
- 建立TCP链接
- 拿到域名对应的IP地址之后,浏览器会以一个随机端口(1024<端口<65535)向服务器的WEB程序(常用的有httpd,nginx)等的80端口发送链接请求。
- 连接请求(原始的http请求经过TCP/IP4层模型的层层封包)到达服务器端(这中间有各种路由设备,局域网内除外)
- 进入到网卡,然后进入到内核的TCP/IP协议栈(用于识别连接请求,解封包,一层一层的剥开),还有可能要经过Netfilter防火墙(属于内核的模块)的过滤,最终达到WEB程序
- 建立了TCP/IP的连接
- TCP连接的三次握手/四次握手
- SYN > SYN-ACK > ACK(HTTPS协议还有一个ssl握手过程)
- 三次握手
- HTTP重定向的话,从头开始握手过程
- Web浏览器发送HTTP请求报文
- HTTP请求报文由三部分组成:请求行,请求头和请求正文
- Web服务器发送HTTP响应报文
- HTTP响应也由三部分组成:状态码,响应头和实体内容
- Web服务器关闭TCP连接
假设一个典型的宽带环境
- 没有本地缓存
- 相对较快的DNS解析(50ms),TCP握手,ssl协商
- 较快的服务器响应时间(100ms)
- 一次延迟(80ms)
网络传输层时间分析
- 总时间(470ms)
- 50ms for DNS
- 80ms for TCP handshake (one RTT)
- 160ms for SSL handshake (two RTT's)
- 40ms (发送请求到服务器)
- 100ms (服务器处理)
- 40ms (服务器回传响应数据)
- 一个请求耗费470ms,事实上,470ms已经很乐观了
- (较早的数据,现在的DNS预解析和优化已经将这个时间减少部分)
优化方案
最快的请求就是没有请求
优化DNS解析
- 使用DNS缓存
- 加快DNS解析速度
- 使用DNS负载均衡
- 为同一个主机名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。
优化缓存性能
- 强缓存和协商缓存的概念
- 1)浏览器在加载资源时,先根据这个资源的一些http header判断它是否命中强缓存,强缓存如果命中,浏览器直接从自己的缓存中读取资源,不会发请求到服务器。比如某个css文件,如果浏览器在加载它所在的网页时,这个css文件的缓存配置命中了强缓存,浏览器就直接从缓存中加载这个css,连请求都不会发送到网页所在服务器;
- 2)当强缓存没有命中的时候,浏览器一定会发送一个请求到服务器,通过服务器端依据资源的另外一些http header验证这个资源是否命中协商缓存,如果协商缓存命中,服务器会将这个请求返回,但是不会返回这个资源的数据,而是告诉客户端可以直接从缓存中加载这个资源,于是浏览器就又会从自己的缓存中去加载这个资源;
- 3)共同点是:如果命中,都是从客户端缓存中加载资源,而不是从服务器加载资源数据;
- 4)区别是:强缓存不发请求到服务器,协商缓存会发请求到服务器。
- 5)当协商缓存也没有命中的时候,浏览器直接从服务器加载资源数据。
- 缓存的实现:本地磁盘和内存
- 内存模式主要应用于无痕浏览,在窗口关闭时清除掉
- 磁盘缓存实现了它自己的一组数据结构, 它们被存储在一个单独的缓存目录里。其中有索引文件(在浏览器启动时加载到内存中),数据文件(存储着实际数据,以及HTTP头以及其它信息)
- 实现方式:Expires, ETag, Last-Modified, keepalive,Cache-Control(具体细节请移步HTTP-header)
使用Service Worker
- 概念:谷歌开发的,在后台启动的一条服务Worker线程,作用是不管开多少个页面始终只有一个Worker在负责管理,把资源缓存起来,拦截页面请求,查看缓存。
- Service Worker结合Web APP Manifest能实现离线使用,断网时返回200,提示用户把网站添加图标到桌面(也是PWA的检测标准)
- 兼容性问题:现在所有的浏览器均支持Service Worker
利用Chrome Devtools进行优化传输资源检查与优化体积
- console
- console.log: 不解释
- console.table: 表格形式打印复杂的数据结构
- console.dir: 递归打印对象的所有属性
- console.trace(): 追踪函数的调用轨迹
- console.group()、console.groupEnd(): 分组打印信息
- 带样式打印
- 带样式打印
- 检查没用的CSS/JS
- more tools=>Coverage
- 检查没用的CSS/JS
Chrome浏览器提供的相关数据
- 查看缓存存储的数据和响应处理: chrome://net-internals/#httpCache
- DNS度量数据: chrome://histograms/DNS
- DNS缓存: chrome://net-internals/#dns
- Chrome浏览器的url表: chrome://chrome-urls/
尾声
性能优化就到此结束了,希望给各位小伙伴们能够带来帮助,感觉不错的,欢迎分享给自己的小伙伴~
我们下篇文章再见~
相关推荐
- 网络推广引流策略:选准平台提升品牌影响力
-
网络推广引流是企业和个人自媒体发展中不可或缺的关键步骤,它能有效提升品牌名声、促进产品销售、吸引众多潜在消费者。为了做好这项工作,我们需深入了解众多细节和策略。下面,我将逐一为大家详细介绍网络推广引流...
- 王心凌翻红,南京某公司专门发文为其拉票?
-
前不久,“刘耕宏女孩”们纷纷加入健身大军,一起跳起了《本草纲目》。最近,“王心凌男孩”们又跳起了《爱你》,登上热搜。一首《爱你》重新翻红5月20日,《乘风破浪3》开播。今年39岁的王心凌在初舞台上,绑...
- 项目招标山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商公
-
项目招标山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商
- 关于山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商公告
-
关于山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商公告
- 最新项目山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商
-
最新项目山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商公告
- 山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商
-
山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商...
- 山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商公告
-
山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商公告...
- 最新公告山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商
-
最新公告山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商公告...
- 最新招标公告山海湾金澜锦翠项目广告设计及网络推广服务竞争性
-
最新招标公告山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商公告
- 最新公告山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商公
-
最新公告山海湾金澜锦翠项目广告设计及网络推广服务竞争性磋商公告...
- 合肥网站建设大概流程是怎么样的(合肥网站建设方案开发)
-
合肥网站建设是指在合肥地区进行网站建设的一系列流程和步骤。随着互联网的快速发展,网络在经济、商务、政府、教育和其他领域的作用越来越大,一个高效、安全、易用的网站在合肥的发展中起着重要的作用。下面将简要...
- 网站SEO优化如何制定策略(网站seo的主要优化内容)
-
原文地址:网站SEO优化如何制定策略作者:怎么可以那么难取名字做网站优化首先需要制定好SEO策略,SEO策略贯穿整个SEO工作中心,每一步都是按照这个策略走,循序渐进,一步一步进行。执行SEO之前一定...
- 2025年Google SEO趋势:AI如何重塑你的流量策略?
-
2025年,GoogleSEO正迎来一场由AI驱动的革命。作为一名拥有16年经验的SEO专家,我见证了无数网站因未能适应变化而流量暴跌,也看到那些紧跟趋势的网站实现逆袭。AI如何影响SEO?Goog...
- 网站建设费用包含哪些方面?(网站建设费用计入哪个科目)
-
在网站建设中,费用通常由多个方面组成,这些因素共同决定了网站的整体成本。首先,最基本的费用是域名和主机的购买。域名是网站的地址,而主机则是存放网站内容的服务器,这两者都是网站上线的必要条件。选择合适的...
- 做一个公司官网大概多少钱呢?(做一个公司官网大概多少钱呢知乎)
-
制作公司官网的费用因需求复杂度和服务商不同差异较大,以下是一个大致的费用范围和分析,供参考:#公司官网##网站搭建---**一、影响价格的核心因素**1.**网站类型**-**基础展示型**(5...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 网站建设 (107)
- 网站开发 (47)
- 网络推广哪个平台好 (47)
- 百度收录 (50)
- 网页设计 (44)
- 搜索引擎排名优化 (49)
- 关键词优化工具 (51)
- 外贸网站建设 (56)
- seo整站优化吧 (50)
- 广州seo (47)
- 苏州网站建设 (59)
- 百度搜索推广 (61)
- 关键词优化公司 (51)
- 网页制作 (47)
- 广州网站建设 (48)
- 电商网站建设 (49)
- 百度站长平台 (48)
- 网站收录查询 (46)
- 网站模板 (51)
- 厦门网站建设 (52)
- 百度快照推广 (51)
- 免费网页在线客服系统 (53)
- 雷神代刷网站推广 (53)
- 网站设计模板 (45)
- 一键优化 (47)