TTFB-首字节时间简介

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

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

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

时间: 2024-09-29 02:27:25

TTFB-首字节时间简介的相关文章

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

本文涉及性能测试技术,特别是涉及一种基于图像识别的测试手机网页首屏时间的方法,它可以应用在手机浏览器页面加载响应时间的的自动化测试或性能检测中.同时可以应用到其他android的apk的响应时间的测试中去 随着智能手机等移动终端的发展,越来越多的用户开始通过手机等设备浏览网页,以获取用户所需的信息. 用户使用手机访问网站是基于手机浏览器所获取的网页实现的.通常情况下,用户访问网站的页面全部加载完毕时,总页面高度可能有一屏到多屏不等,总的页面加载时间要比首屏加载时间长很多,但是首屏加载时间是用户对

介绍开源的.net通信框架NetworkComms框架之一 首字节验证

原文网址: http://www.cnblogs.com/csdev Networkcomms 是一款C# 语言编写的TCP/UDP通信框架  作者是英国人  以前是收费的 目前作者已经开源  开源地址是:https://github.com/MarcFletcher/NetworkComms.Net 使用networkcomms框架通信时,客户端发送消息,服务器端回复消息. 确保收到的消息,是用户发来的,而不是恶意消息,可以在networkcomms框架中加入首字节验证机制. 思路是这样的:

研究首屏时间?

做移动web页面,受移动网络网速和终端性能影响,我们经常要关注首屏内容展示时间(以下简称首屏时间)这个指标,它衡量着我们的页面是否能在用户耐心消磨完之前展示出来,很大程度影响着用户的使用满意度. 怎么获取首屏时间呢? 我们经常要先问自己:页面是怎么加载数据? A:加载完静态资源后通过ajax请求去后台获取数据,数据回来后渲染内容 在每个点打上一个时间戳,首屏时间 = 点8 – 点1: B:使用后台直出,返回的html已经带上内容了 此时首屏时间 = 点4 – 点1. 注:1. 打了这么多个点,是

研究首屏时间?你先要知道这几点细节

做移动web页面,受移动网络网速和终端性能影响,我们经常要关注首屏内容展示时间(以下简称首屏时间)这个指标,它衡量着我们的页面是否能在用户耐心消磨完之前展示出来,很大程度影响着用户的使用满意度. 怎么获取首屏时间呢? 我们经常要先问自己:页面是怎么加载数据? A:加载完静态资源后通过ajax请求去后台获取数据,数据回来后渲染内容 在每个点打上一个时间戳,首屏时间 = 点8 – 点1: B:使用后台直出,返回的html已经带上内容了 此时首屏时间 = 点4 – 点1. 注:1. 打了这么多个点,是

前端优化-如何计算白屏和首屏时间

白屏时间 白屏时间指的是浏览器开始显示内容的时间.因此我们只需要知道是浏览器开始显示内容的时间点,即页面白屏结束时间点即可获取到页面的白屏时间. 计算白屏时间 因此,我们通常认为浏览器开始渲染 <body> 标签或者解析完 <head> 标签的时刻就是页面白屏结束的时间点. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">

关于首屏时间采集自动化的解决方案

关于首屏 首屏时间是指从转向该页面到屏幕中该页面所有内容都可见时的时间.已经有太多的关于首屏时间的计算,在本文中并不重复阐述这些已经被提出或者实现的方案,而旨在探索与讨论更多的首屏自动化采集方案,扩大思考范围,你我思想之间互相碰撞往往可以激起更多的稀奇古怪的解决方案,这也正是我写这篇文章的目的. 通过浏览器调试工具,我们可以清晰的看出页面资源加载时序图: 先是html页面加载,token进行词法.语法解析后开始加载静态资源并执行相关脚本,开始构建DOM树.render树和CSSOM数,最后加载图

降低首屏时间,“直出”是个什么概念?

早几年前端还处于刀耕火种.JQuery独树一帜的时代,前后端代码的耦合度很高,一个web页面文件的代码可能是这样的: 这意味着后端的工程师往往得负责一部分修改HTML.编写脚本的工作,而前端开发者也得了解页面上存在的服务端代码含义. 有时候某处页面逻辑的变动,鉴于代码的混搭,可能都不确定应该请后端还是前端来改动(即使他们都能处理). 前端框架热潮 有句俗话说的好——“人啊,要是擅于开口‘关我屁事’和‘关你屁事’这俩句,可以节省人生中的大部分时间”. 随着这两年被 angular 牵头带起的各种前

jvm字节码简介

1.概述 java虚拟机的指令由一个字节长度的.代表着某种特定操作含义的数字(成为操作码,Opcde)和跟随其后的0到多个此操作所需参数(操作数,Operands).由于操作码的长度为一个字节,所以指令集的操作数总数不能超过256条:又由于Class文件放弃了编译后代码的操作数对齐,所以虚拟机在处理超过一个字节的数据时会从字节中重建出具体的数据格式,例如一个16的长度的无符号整数会使用两个无符号字节存储(byte1.byte2),它们的值为  byte1 << 8 | byte2.对于大部分与

值得用一首歌时间来阅读的文章

One Song,One Article! We have already learned how to use the algorithm of quick_sort ,however ,when we want to complete something else,we need and have to turn back and rewrite the code again. Therefore, be familiar with the quick_sort's main thought