前端性能毫秒必争方案(一)HTTP请求
在讲http知识之前,有必要提及下网络七层协议OSI(Open System Interconnect)的缩写
犹如水浒里面的七星聚义,没这七星,就没有108将。(已经放置文章最后面)
2. 减少http请求次数原因在于
1、Http连接 RequestHeader 的开销
众所周知,后端不管是java还是php,都能使用类似htppRequest .getHeader(“XXX-XXX”)方法。为什么呢?这是因为每次请求都会带上一些额外的信息Request Header,所以当请求越多的时候,在网络上传输的数据自然就多,传输速度自然就慢了。
其实request自带的数据量还是小问题,毕竟request能带的数据量还是有限的。
2、http连接的流程串行请求限制(2-8个)
- 域名解析 =》2. 开启TCP连接 =》3. 发送请求 =》4. 等待(主要包括网络延迟和服务器处理时间) =》5. 下载资源 =》6. 文件解析执行时间 在http1.1,keep-alive是默认的,而且现代浏览器都有DNS缓存, 所以DNS寻址由于有DNS缓存–无差别; 3次握手由于有keep-alive,一条和一千条都只需一次TCP握手–无差别
HTTP1.1协议规定请求只能串行发送,这也是HTTP性能最差和最让人诟病的地方,也就是说一百个请求必须依次逐个发送。第80个请求必须依赖于第79个请求正常返回之后才能发送。这样就平白无故多出了99个网络RTT(网络延迟)。 浏览器通过一个TCP连接发送100个请求的事情根本就不可能发生。
当你有100个资源时,这100个资源在浏览器看来是“同时都要”,而浏览器并没有什么智商去判断应该用1个链接解决这100个资源,还是用100个链接来解决,不然浏览器永远都只有一个TCP链接了。
因此浏览器的静态的策略是在自己可承受的范围内尽可能地用多的链接来解决,大部分浏览器似乎是2-8个链接,这就导致握手也是2-8次。
HTTP 连接个数(服务器默认最大连接数 16,777,214)
3、http请求少了,DNS 查询自然就少了,真的被百度里面千篇一律感动了。
http连接串行请求限制(2-8个)
2.1. 第一层:物理层(Physical)
规定通信设备的功能的和过程的特性,统一物理设备的参数,用以建立、维护和拆除物理链路连接
2.2. 第二层:数据链路层(Data Link)
数据链路可以粗略地理解为数据通道。 媒体是长期的,连接是有生存期的.在连接生存期内,收发两端可以进行不确定次数据通信. 每次通信都要经过建立通信联络和拆除通信联络两过程.这种建立起来的数据收发关系就叫作数据链路.
2.3. 第三层:网络层(Network)
网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送, 那在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路, 也可能还要经过很多通信子网。
2.4. 第四层:传输层(Transport)
传输层是两台计算机经过网络进行数据通信时,第一个端到端的层次,具有缓冲作用。第四层的数据单元也称作数据包(packets) 示例:TCP,UDP,SPX。
2.5. 第五层:会话层(Session)
会话层提供的服务可使应用建立和维持会话,并能使会话获得同步。会话层使用校验点可使通信会话在通信失效时从校验点继续恢复通信。这种能力对于传送大的文件极为重要。
2.6. 第六层:表示层(Presentation)
表示层的作用之一是为异种机通信提供一种公共语言,以便能进行互操作。它将欲交换的数据从适合于某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法。即提供格式化的表示和转换数据服务。数据的压缩和解压缩, 加密和解密等工作都由表示层负责,这种类型的服务之所以需要,是因为不同的计算机体系结构。 例如,IBM主机使用EBCDIC编码,而大部分PC机使用的是ASCII码。在这种情况下,便需要会话层来完成这种转换。
2.7. 第七层:应用层(Application)
应用层为操作系统或网络应用程序提供访问网络服务的接口。应用层协议的代表包括:Telnet、FTP、HTTP、SNMP
原文出自 :刘俊斌 (976500133@qq.com) 转载请务必注明出处,否则追究法事(责任)
 
转载于:https://www.cnblogs.com/passkey/p/10005988.html
前端性能毫秒必争方案(一)HTTP请求相关推荐
- 前端性能毫秒必争综合方案
1.减少http请求次数 2.避免页面重定像 当客户端收到服务器的跳转回复时,客户端再次根据服务器回复中的location指定的地址再次发送请求,例如以下跳转回复. HTTP/1.1 301 Move ...
- 前端性能优化的重要方案:图片懒加载
大家好,我是前端岚枫,一枚二线城市的程序媛,今天主要跟大家分享我整理的前端性能优化的重要方案:图片懒加载,主要包括其原理,我们常用的一些插件,及编写源码实现图片懒加载功能等,图片懒加载是项目比较常见的 ...
- 前端性能优化篇——浏览器同域名并发请求对限制
在浏览器同域名并发请求都产生并发数限制,并发限制通常是4-8以内,那么来了解浏览器请求并发限制的原因和优化手段. 浏览器并发数量统计 浏览器为什么要请求并发数限制? 在了解优化手段之前我们先了解浏览器 ...
- 性能测试—前端性能1
不同的浏览器工作的方式是不一样的,大体上浏览器的核心是浏览器引擎:IE是Trident.Firefox是Gecko.safari和chrome则是webkit. 一.浏览器打开URL的过程 当我们输入 ...
- 前端性能优化 面试题总汇
前端性能优化面试题 前端性能优化总体来说分为 :优化请求.打包优化.代码优化 . 文章目录 前端性能优化面试题 Ⅰ.如何优化请求 图片方面 ① 精灵图 ② 小图标 Base64 ③ 图片懒加载 ④ 图 ...
- 全链路前端性能优化方案
通常来讲前端性能优化是指从用户开始访问我们的网站到整个页面完整的展现出来的过程中,通过各种优化策略和优化方法让页面加载的更快,让用户的操作响应更及时,给用户更好的使用体验. 这里我们介绍的是前端性能优 ...
- 前端性能优化方法与实战17 横向对比:百度、阿里云、美团性能方案对比
前面我介绍了性能优化实践及在 Hybrid下的进阶优化方案,这是我们目前的做法,那么,业界是什么样的情况呢?在这里我就挑选三家互联网公司--百度.阿里云.美团,一起来看看他们是怎么做的? 为什么选它们 ...
- web前端性能意义、关注重点、测试方案、优化技巧
1.前段性能的意义 对于访问一个网站,最花费时间的并不是后端应用程序处理以及数据库等消耗的时间,而是前端花费的时间(包括请求.网络传输.页面加载.渲染等).根据web优化的黄金法则: 80%的最终用户 ...
- CSS3与页面布局学习笔记(八)——浏览器兼容性问题与前端性能优化方案
一.浏览器兼容 1.1.概要 世界上没有任何一个浏览器是一样的,同样的代码在不一样的浏览器上运行就存在兼容性问题.不同浏览器其内核亦不尽相同,相同内核的版本不同,相同版本的内核浏览器品牌不一样,各种运 ...
最新文章
- python框架flask系列(2),Python的Web框架之Flask(2)
- 怎么学python知乎_你们都是怎么学 Python 的?
- Spring Cloud Alibaba - 23 Gateway初体验
- GitHub开源贡献榜:微软超越Facebook和Google排第一
- mysql编程_PHP数据库编程之一MySQL优化策略概述
- awk教程入门与实例练习(一)
- [转]自定义ASP.NET MVC JsonResult序列化结果
- MBR, EFI, 硬盘分区表
- strtotime的几种用法区别
- 为安装有系统及应用程序的服务器更换硬盘方法一例
- 数据推荐 | 自然场景OCR文字识别数据集一览
- “三区三线”永久基本农田划定实用工具
- 电子技术基础(三)_第3章集成运算放大器及其应用__基本运算电路
- Windows - 强力删除文件
- elementui 中的 el-descriptions 文字居中显示
- slt mysql_SAP SLT操作手册 PDF 下载
- MAC地址漂移和应对(二)
- 黑马SpringBoot --基础篇
- 图神经网络笔记(二)——卷积图神经网络概述
- 隐藏实用的GitHub使用技巧
热门文章
- 零售连锁专卖信息化解决方案简介之二
- 太TM难看了,我自己都看不下去了
- 构建安全的 ASP.NET 网页和控件
- CS Tip 16: 利用注释
- Android监听左右滑删除通知,Android 滑动监听RecyclerView线性流+左右划删除+上下移动...
- java鉴权_一个开箱即用的高效认证鉴权框架,专注于restful api的认证鉴权动态保护...
- sklearn库安装_没有依赖库也能跑机器学习模型!推荐一个强大工具m2cgen
- html中section与div,如何在html中的section标签内包含div标签
- php包含文件时显示空白页,php中添加了如下语句出现空白页 删除页面zhengchang
- 计算机二级ms office excel,计算机二级Msoffice考试excel答案.docx