加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱制作网_潮州站长网 (http://www.0768zz.com/)- 物联安全、建站、操作系统、云计算、数据迁移!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

网络优化,拿去镇住面试官

发布时间:2021-05-05 13:36:44 所属栏目:外闻 来源:互联网
导读:优化的文章。虽然他搞的是前端,但是网络这一块是大家的,所以个人觉得各职业小伙伴看一看没坏处~ 强调HTTP请求的完整过程 假设一个典型的宽带环境 网络传输层时间分析 优化方案 最快的请求就是没有请求 优化DNS解析 优化缓存性能 DNS解析 首先会搜索浏览器

优化的文章。虽然他搞的是前端,但是网络这一块是“大家”的,所以个人觉得各职业小伙伴看一看没坏处~

强调HTTP请求的完整过程

假设一个典型的宽带环境

网络传输层时间分析

优化方案

最快的请求就是没有请求

优化DNS解析

优化缓存性能

  • DNS解析
  • 首先会搜索浏览器自身的DNS缓存(缓存时间比较短,大概只有1分钟,且只能容纳1000条缓存)
  • 如果浏览器自身的缓存里面没有找到,那么浏览器会搜索系统自身的DNS缓存
  • 如果还没有找到,那么尝试从 hosts文件里面去找
  • 在前面三个过程都没获取到的情况下,就递归地去域名服务器去查找
  • 建立TCP链接
  • 拿到域名对应的IP地址之后,浏览器会以一个随机端口(1024<端口<65535)向服务器的WEB程序(常用的有httpd,nginx)等的80端口发送链接请求。
  • 连接请求(原始的http请求经过TCP/IP4层模型的层层封包)到达服务器端(这中间有各种路由设备,局域网内除外)
  • 进入到网卡,然后进入到内核的TCP/IP协议栈(用于识别连接请求,解封包,一层一层的剥开),还有可能要经过Netfilter防火墙(属于内核的模块)的过滤,最终达到WEB程序
  • 建立了TCP/IP的连接
  • P重定向的话,从头开始握手过程
  • 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负载均衡
    • 为同一个主机名配置多个IP地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。
    • 强缓存和协商缓存的概念
    • 1)浏览器在加载资源时,先根据这个资源的一些http header判断它是否***强缓存,强缓存如果***,浏览器直接从自己的缓存中读取资源,不会发请求到服务器。比如某个css文件,如果浏览器在加载它所在的网页时,这个css文件的缓存配置***了强缓存,浏览器就直接从缓存中加载这个css,连请求都不会发送到网页所在服务器;
    • 2)当强缓存没有***的时候,浏览器一定会发送一个请求到服务器,通过服务器端依据资源的另外一些http header验证这个资源是否***协商缓存,如果协商缓存***,服务器会将这个请求返回,但是不会返回这个资源的数据,而是告诉客户端可以直接从缓存中加载这个资源,于是浏览器就又会从自己的缓存中去加载这个资源;
    • 3)共同点是:如果***,都是从客户端缓存中加载资源,而不是从服务器加载资源数据;
    • 4)区别是:强缓存不发请求到服务器,协商缓存会发请求

(编辑:我爱制作网_潮州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读