百度站长工具里看到有一个“首字节时间”的建议,第一次听说,还真不知道是什么东东。百度站长工具里面的解释是:“浏览器开始收到服务器响应数据的时间=后台处理时间+重定向时间,是反映服务端响应速度的重要指标”。

看到这个解释,隐隐约约明白了什么意思,下面就用自己的话说一下我的理解(如果有人有权威解释,发现本解释错误,还望指正)。

“首字节时间”顾名思义就是在浏览器输入目标网站的网址并回车后(或者搜索页面点击打开新的目标页面时)直到获得首个字节的时间。再解释一下,后台处理时间(这应该是浏览器访问目标网站网址时,发出请求,域名服务器的处理时间,将请求发送到目标网站所在服务器ip),重定向时间(这应该是域名服务器将请求发送到目标网站服务器后,如果服务器有重定向设置,就处理重定向的时间)。

“首字节时间”简单的理解就是,访问目标网站时,从发出请求到自己电脑获得网站响应的首字节这段时间。

总而言之,言而总之,首字节时间当然是越短了越好。就像百度自己的解释,这是反映服务端响应速度的重要指标。首字节时间越短,表明服务器端(域名DNS服务器和网站服务器)响应速度越快,反之越长,表明服务器端响应速度慢。当然是越快了对网站访问体验来说越好了!

=============================================================================================================================================

TTFB-首字节时间,是指从客户端开始和服务端交互到服务端开始向客户端浏览器传输数据的时间(包括DNS、socket连接和请求响应时间),是能够反映服务端响应速度的重要指标,获取在接收到响应的首字节前花费的毫秒数。
lTime = Response.TTFB
返回值 lTime As Long:首字节响应时间(以毫秒为单位)。

TTFB:httpwatch的timechart中的一列参数。

课外学习部分:

什么是TTFB呢?
1.TTFB (Time To First Byte),是最初的网络请求被发起到从服务器接收到第一个字节这段时间,它包含了 TCP连接时间,发送HTTP请求时间和获得响应消息第一个字节的时间。
注意:网页重定向越多,TTFB越高,所以要减少重定向
TTFB优化的方法有:

1.减少DNS查询

2.使用CDN

3.提早Flush

4.添加周期头


什么是TTSR呢? 2.TTSR(Time to Start Render)
TTSR-开始渲染时间,指某些非空元素开始在浏览器显示时的时间,这也是一项重要指标,即TTSR越短,用户越早浏览器中的内容,心理上的等待时间会越短。过多的CPU消耗会拖慢TTSR,所以网站中有大量图片和脚本往往会造成不良用户体验。

注意
TTSR优化:
1.优化TTFB
2.降低客户端CPU消耗,即页面加载初期不要有大脚本运行,把JS脚本放到页面下方
3.使用效率较高的CSS选择器,避免使用CSS表达式
4.避免使用CSS滤镜

前端TTSR测试脚本:

<head> <script> (function(){ var timeStart = + new Date, limit = 1, timer = setInterval(function(){ if((document.body&&document.body.scrollHeight > 0) || (limit++ == 500)){ clearInterval(timer); console.info('TTSR:',+ new Date - timeStart,';duration:',limit); } },10); })() </script> </head>

在页面端无法简单测试出具体的TTSR,不过可以通过模拟脚本得到大概的时间,Firefox提供了一个MozAfterPaint事件,经测试,用于TTSR并不准确,如果有MozBeforePaint事件该有多好。

什么是TTDC呢? 3.TTDC(Time to Document Complete)
TTDC-文档完成时间,指页面结束加载,可供用户进行操作的时间,等价于浏览器的onload事件触发点。TTDC是比较重要的性能优化对象,TTDC越低,页面加载速度越快,用户等待时间越短。
注意
TTDC的优化方法有:

1.优化TTFB

2.优化TTSR

3.优化首屏时间,将不必要的页面加载放到onload事件之后

TTDC前端测试:
常见性能测试平台大多使用IE浏览器的DocumentComplete事件来度量TTDC,DocumentComplete事件触发时,页面的状态应是READYSTATE_COMPLETE,所以在页面中我们可以用JS脚本判断:

var win = window,doc = document;
if(win.attachEvent || doc.hasOwnProperty('onreadystatechange')){
doc.onreadystatechange = function(){ if(doc.readyState == 'complete'){ /** * test do something... */ }
}
}else{ win.addEventListener('load',function(){ /** * test do something... */ },false);
}

什么是TTFL呢?
4.TTFL(Time to Fully Loaded)
TTFL-完全加载时间,指页面在onload之前和onload事件之后额外加载的内容所花费的时间的总和,即页面完完全全加载完毕消耗的总时间。
注意
TTFL的优化方法:

1.优化TTFB

2.优化TTSR

3.优化TTDC

4.延迟加载

5.异步加载

6.按需加载

=======================================================================================================================================================

如何优化网页首字节时间
1:
看一下详情分析页面。
DNS解析:如果是 DNS 解析时间太长,那是你的域名解析服务器不好,请更换靠谱的 NS 服务器。
初始化连接:如果是初始化连接的时间太长,那是你机房的网络不好,请更换更好的机房
如果上面两个都不是。那就是你的代码性能不好,代码执行消耗的时间太长。请优化代码,或者更换更好的机器。
2:
客户端t1时刻发起对于某个url的请求,经过DNS解析获取相应的IP地址后,发起对该IP地址的socket连接,在完成三次握手建立tcp连接后,客户端发送http请求信息,服务端收到请求后返回响应的内容,当客户端在t2时刻收到服务端返回内容的第一个字节,则第一字节时间=t2-t1。 第一字节的时间= DNS解析的时间+socket三次握手时间+http请求时间+第一字节返回的时间。 首字节的时间是0,说明很快呀。不需要做优化。 谢谢使用阿里测!

<摘自:http://www.liu16.com/post/390.html&http://www.wenshuai.cn/home/article/detail/id/53.html&http://segmentfault.com/q/1010000000259751>

转载于:https://www.cnblogs.com/ChandlerVer5/p/TTFB.html

TTFB-首字节时间简介相关推荐

  1. 基于图像识别测试手机浏览器打开网页首屏时间的方法

    本文涉及性能测试技术,特别是涉及一种基于图像识别的测试手机网页首屏时间的方法,它可以应用在手机浏览器页面加载响应时间的的自动化测试或性能检测中.同时可以应用到其他android的apk的响应时间的测试 ...

  2. 前端性能指标:白屏和首屏时间的计算

    作者:Hanpeng_Chen 公众号:前端极客技术 文章首发个人博客:前端性能指标:白屏和首屏时间的计算|代码视界 前言 页面性能优化是前端开发中一个重要的环节,而评判前端性能的优劣有两个比较经常听 ...

  3. 统计页面首屏时间,很多人第一步就错了

    前言 前端页面性能对用户留存.用户直观体验有着重要作用.这样的话如何更好的监控前端页面性能就变的十分重要.前端页面的性能监控主要分为两个方式: 一种叫做 合成监控 Synthetic Monitori ...

  4. 「性能优化」首屏时间从12.67s到1.06s,我是如何做到的?

    --本文是对之前同名文章的修正,将所有webpack3的内容更新为webpack4,以及加入了笔者近期在公司工作中学习到的自动化思想,对文章内容作了进一步提升. 0.引言 作为互联网项目,最重要的便是 ...

  5. 前端白屏问题_前端优化-如何计算白屏和首屏时间

    白屏时间 白屏时间指的是浏览器开始显示内容的时间.因此我们只需要知道是浏览器开始显示内容的时间点,即页面白屏结束时间点即可获取到页面的白屏时间. 计算白屏时间 因此,我们通常认为浏览器开始渲染 标签或 ...

  6. performance API 中什么指标可以衡量首屏时间

    performance.timing.loadEventEnd:返回当前网页 load 事件的回调函数运行结束时的 Unix 毫秒时间戳.如果该事件还没有发生,返回 0. performance.ti ...

  7. 首屏时间从12.67s到1.06s,我是如何做到的?

    本文是对之前同名文章的修正,将所有 webpack3 的内容更新为 webpack4,以及加入了笔者近期在公司工作中学习到的自动化思想,对文章内容作了进一步提升. 引 言 对于网站的性能,在行业内有很 ...

  8. 【学习笔记】APP性能---录屏分帧测试APP/H5的首屏时间

    1.录屏 (1)adb命令 录屏并保存在手机存储的一个目录: adb shell screenrecord --time-limit 30 /storage/sdcard0/123 --time-li ...

  9. 细说数组名、数组地址、数组首字节地址之间的关系

    数组名.数组地址.数组首字节地址之间的关系 首先定义一个数组: int A[5]={0,1,2,3,4,5}; 此处A为数组名,看似代表整个数组,但是实际上该数组名A为数组首元素A[0]的地址,同理A ...

最新文章

  1. linux设置ulimit值永久生效
  2. Windows 2008 ×××与 CA
  3. c# 睡眠3秒_C#中的闭包和意想不到的坑
  4. 41 | 案例篇:如何优化 NAT 性能?(上)
  5. ubuntu java android_Ubuntu中为Android系统实现内置Java应用程序测试Application Frameworks层的硬件服务...
  6. LeetCode Letter Combinations of a Phone Number
  7. zabbix监控mysql集群_zabbix监控elasticsearch集群
  8. 《keras中文文档》资料分享
  9. linux ps查看进程,Linux命令之ps:查看进程状态
  10. 【数学建模】模型的评价、模型的推广与改进
  11. 前端自学学习笔记——JavaScript
  12. 浅谈工业互联网与产业互联网区别
  13. 共享Excel编辑的一些资源
  14. CS上线Linux--坑太多了
  15. DSSD : Deconvolutional Single Shot Detector论文阅读笔记
  16. 个人习惯养成的简单公式
  17. 五猴分桃通解公式-敬献给诺贝尔奖获得者李政道博士
  18. 当这个类被修饰public的话,为什么源文件名必须要与类名相同
  19. 学习Flask主站源码,原来可以这样学!
  20. 原生js信息提示框(非dialog)

热门文章

  1. 在BIOS中设置U盘启动
  2. python实现生日悖论分析
  3. Android 模拟返回键、菜单键、主页键
  4. 解决导出Excel报COM类工厂错误的办法--修改版
  5. NachOS线程ID的实现、最大线程数的实现和优先级的添加
  6. 基于java奥利给共享自习室系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
  7. 编程该学什么以及vc++一些心得
  8. linux下的ld命令(1)
  9. Liunx配置jdk
  10. HighwayNet网络详解及复现