What means TTFB for the firstly loaded file is clear. But if i look at further loaded files i see in their details TTFB too, and it is ways higher then zero. How can it happen, if all files are loaded through persistent / keep-alive-ed connection? What means TTFB for files loaded through keep-alive?
On a per-request level, TTFB is the time from when the browser sends the HTTP request (new connection or not) until the first bit of the response (headers) comes back from the server. It is ALWAYS going to be greater than zero.
@chilly_bang, do you have a webpagetest results you want to link to?
Are you using HTTP/2 as well? In HTTP/2 the tcp socket is multiplexed, so one asset at a time is returned through the same pipe. The result is the waterfall shows all assets requested at the same time, but a stacked response where each asset is returned one at a time. Look at the “connection view” below the water fall to see the stacked assets being returned sequentially over HTTP/2. Because of the serialized nature of the assets being piped back, the TTFB for each asset will appear larger as you go down the waterfall (because it was returned later in the response pipe).
While this may look like a bigger TTFB number, the overall client experience is still better piping all the assets back through one TCP socket than if you saw a staggered waterfall where each subsequent request was not even sent by the client until the previous one had returned its response (before HTTP/2, using HTTP/1.1).