前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >http请求过程及性能优化分析

http请求过程及性能优化分析

作者头像
j_bleach
发布2019-07-02 11:26:32
1.3K0
发布2019-07-02 11:26:32
举报
文章被收录于专栏:前端加油站前端加油站

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/j_bleach/article/details/75215499

http请求

当在浏览器中输入地址至获取服务器的相应,总共经历了以下四个步骤:

这里写图片描述
这里写图片描述

DNS解析

在向浏览器输入一个网站时,如www.qq.com,浏览器最终访问的是一个ip地址,也就是说www.qq.com与一个ip存在映射的关系,此时DNS起到了桥接2种关系的功能,在下次访问相同网址时,会先从本地浏览器寻找DNS的缓存,如果不存在,则一级一级向上找。

三次握手

这里写图片描述
这里写图片描述

在正式发送请求之前,需要建立客户端与服务器的链接。

RTT

RTT(Round-Trip Time): 往返时延。在计算机网络中它是一个重要的性能指标,表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延。

TCP/UDP区别

与TCP不同,UDP并不关心对放接受请求的状态,是一种基于无连接的处理方式,这样的特点是省去握手,速度更快,但是是无序的,也会有丢包的安全隐患。

TCP慢启动

为了不给网络造成拥堵,减缓网络压力。在首次进行tcp请求时,会限制客户端与服务器交互的数据量的上限,首次为14kb左右,之后以一个指数型成长。

网络性能优化

挺高访问效率,目前的主要方法有:

DNS预解析

代码语言:javascript
复制
<meta http-equiv="x-dns-prefetch-control" content="on" />
<link rel="dns-prefetch" href="http://bdimg.share.baidu.com" />
<link rel="dns-prefetch" href="http://nsclick.baidu.com" />

谷歌和火狐支持,不推荐在多个页面使用dns-prefetch。通过预加载一些域名,提前去做DNS解析,加快响应速度。

域名收敛

由服务器统一汇总不同的域名,由再对访问进行转发。

资源内联

由于每个资源首次访问都存在握手等RTT损耗,越少数量的资源请求,可以节约获取资源的时间,例如一个html中src访问一个css,就不如,将这个css直接以style集成在html当中,会减少访问。(webpack等一些构建工具,也可以将html与css当到一个文件当中。)

服务器渲染

传统的方式显示一个页面会发送多次请求,第一次拿到html资源,然后通过请求,再去拿数据,再将数据渲染到页面上。这样的多次请求,会增加页面的响应时间,如果在服务器端,就将页面渲染好,再发送至客户端,也可以间接减少RTT。即(react等框架的SSR)

图片懒加载

指代在可视区请求图片资源。不赘述了。

HTTP2

http2 的改进主要有: 1.由纯文本分割改为二进制编码。 2.首部压缩,以增量的方式进行数据交互,不重复发送一些不变的信息头。 3.多路复用,服务端推送。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年07月17日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • http请求
    • DNS解析
      • 三次握手
        • RTT
          • TCP/UDP区别
            • TCP慢启动
            • 网络性能优化
              • DNS预解析
                • 域名收敛
                  • 资源内联
                    • 服务器渲染
                      • 图片懒加载
                      • HTTP2
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档