In the Chrome browser developer tools Network window, you can check the specific time required to download each component
A brief analysis based on the above table——
Stalled
Browsers have limits on the number of concurrent connections for the same host domain name, so if the current number of connections has exceeded the upper limit, other requests will be blocked, waiting for new available connections; in addition, the script will also block the download of other components;
Optimization measures:
1. Reasonably distributing resources to multiple hosts can increase the number of concurrencies, but increasing the number of parallel downloads will also increase the overhead, which depends on bandwidth and CPU speed. Too many parallel downloads will reduce performance;
2. Place the script at the bottom of the page;
DNS Lookup (domain name resolution)
To request resources under a certain domain name, the browser needs to first obtain the IP address of the domain name server through a DNS resolver. The browser cannot download anything from the hostname until the DNS lookup is complete.
Optimization measures:
1. Use DNS caching (set TTL time);
2. Use the Connection:keep-alive feature to establish a persistent connection. You can make multiple requests on the current connection without domain name resolution;
Initial connection
Three-way handshake time for TCP connection establishment
SSL (included in HTTPS connection)
http is a hypertext transfer protocol. It sends content in plain text and does not provide any form of data encryption. If criminals intercept the transmission message between the browser and the server, the information in it will be obtained.
https is the Secure Socket Layer Hypertext Transfer Protocol, which adds the SSL protocol to HTTP. SSL relies on certificates to verify the identity of the server and encrypt the communication between the browser and the server.
So the time to establish an HTTPS connection is equivalent to the three-way handshake time + SSL time.
Request sent
Time to send HTTP request (from first bit to last bit)
Optimization measures:
1. To reduce HTTP requests, you can use CSS Sprites, inline images, merge scripts and style sheets, etc.;
2. Add a long-term Expires header (equivalent to setting a long expiration time) for components that do not change frequently, so that unnecessary HTTP requests can be avoided in subsequent page browsing;
Waiting (waiting for response)
Usually it takes the longest time. The gap between sending a request and receiving a response will be affected by factors such as lines and server distance.
Optimization measures:
1. Use CDN to direct user access to the nearest cache server that is working properly, and the cache server directly responds to user requests to improve response speed;
Content Download
Time to download HTTP response (including headers and response body)
Optimization measures:
1. Through the conditional Get request, compare the If-Modified-Since and Last-Modified times to determine whether to use the components in the cache. The server will return the "304 Not Modified" status code to reduce the size of the response;
2. Remove duplicate scripts, streamline and compress code, such as using automated build tools grunt, gulp, etc.;
3. Compress the response content. Enable gzip compression on the server side to reduce download time;