Queueing
請求文件順序的的排序
什麼東西?
瀏覽器有線程限制的,發請求也不能所有的請求同時發送,所以,隊列嘍。
從添加到待處理隊列
到實際開始處理的時間間隔標示Stalled
是瀏覽器得到要發出這個請求的指令到請求可以發出的等待時間,一般是代理協商、以及等待可複用的TCP連接釋放的時間,不包括DNS查詢、建立TCP連接等時間等DNS Lookup
時間執行DNS查找。每個新域pagerequires DNS查找一個完整的往返。 DNS查詢的時間,當本地DNS緩存沒有的時候,這個時間可能是有一段長度的,但是比如你一旦在host中設置了DNS,或者第二次訪問,由於瀏覽器的DNS緩存還在,這個時間就爲0了。Initial connection
建立TCP連接的時間,就相當於客戶端從發請求開始到TCP握手結束這一段,包括DNS查詢+Proxy時間+TCP握手時間。Request sent
請求第一個字節發出前到最後一個字節發出後的時間,也就是上傳時間Waiting(TTFB)
請求發出後,到收到響應的第一個字節所花費的時間(Time To First Byte),發送請求完畢到接收請求開始的時間;這個時間段就代表服務器處理和返回數據網絡延時時間了。服務器優化的目的就是要讓這個時間段儘可能短。Content Download
收到響應的第一個字節,到接受完最後一個字節的時間,就是下載時間
官方解釋
(免於大家翻牆了)
先說請求的生命週期:
The primary phases of the request lifecycle are:
- Redirect
Immediately begins startTime.
If a redirect is happening, redirectStart begins as well.
If a redirect is occurring at the end of this phase then redirectEnd will be taken. - App Cache
If it’s application cache fulfilling the request, a fetchStart time will be taken. - DNS
domainLookupStart time is taken at the beginning of the DNS request.
domainLookupEnd time is taken at the end of the DNS request. - TCP
connectStart is taken when initially connecting to the server.
If TLS or SSL are in use then secureConnectionStart will start when the handshake begins for securing the connection.
connectEnd is taken when the connection to the server is complete. - Request
requestStart is taken once the request for a resource has been sent to the server. - Response
responseStart is the time when the server initially responds to the request.
responseEnd is the time when the request ends and the data is retrieved.
然後在理解那張timing圖
Queuing
A request being queued indicates that:
The request was postponed by the rendering engine because it’s considered lower priority than critical resources (such as scripts/styles). This often happens with images.
The request was put on hold to wait for an unavailable TCP socket that’s about to free up.
The request was put on hold because the browser only allows six TCP connections per origin on HTTP 1.
Time spent making disk cache entries (typically very quick.)- Stalled/Blocking
Time the request spent waiting before it could be sent. It can be waiting for any of the reasons described for Queueing. Additionally, this time is inclusive of any time spent in proxy negotiation.
Proxy Negotiation
Time spent negotiating with a proxy server connection. - DNS Lookup
Time spent performing the DNS lookup. Every new domain on a page requires a full roundtrip to do the DNS lookup.
Initial Connection / Connecting
Time it took to establish a connection, including TCP handshakes/retries and negotiating a SSL. - SSL
Time spent completing a SSL handshake.
Request Sent / Sending
Time spent issuing the network request. Typically a fraction of a millisecond. - Waiting (TTFB)
Time spent waiting for the initial response, also known as the Time To First Byte. This time captures the latency of a round trip to the server in addition to the time spent waiting for the server to deliver the response.
Content Download / Downloading
Time spent receiving the response data.
- Stalled/Blocking