打开一个网页的时候,到底经历了哪些步骤?

本文介绍从用户在浏览器输入域名开始,到web页面加载完毕的过程。

一、页面加载(一般使用Nginx)

1. 在浏览器输入地址回车之后,浏览器进行dns解析:浏览器自身缓存(Chrome浏览器通过输入:chrome://net-internals/#dns 打开DNS缓存页面)-> 搜索hosts文件和操作系统缓存 -> 域名解析服务器发送解析请求 -> 域名解析服务器也没有该域名的记录,则开始递归+迭代解析(树形搜索的过程) -> 获取域名对应的IP后,一步步返回给浏览器。

2. 通过握手协议建立起TCP连接并发送http请求:浏览器会选择一个大于1024的本机端口向目标IP地址的80端口发起TCP连接请求。经过标准的TCP握手流程,建立TCP连接 -> 按照HTTP协议标准发送一个索要网页的请求。

3. 返回服务器结果:Nginx负载均衡、LVS-NAT、LVS-DR等负责分发大量的用户访问请求并返回结果。

4.浏览器渲染

二、静态资源加载(一般使用CDN)

在浏览器解析页面内容的时候,会发现页面引用了其他未加载的image、css文件、js文件等静态内容,浏览器根据url向提供静态资源的服务器请求加载该url下的图片内容等。本质上是浏览器重新开始第一部分的流程



参考以下文章:https://www.cnblogs.com/xuan52rock/p/6845637.html

http://www.cnblogs.com/chanshuyi/p/how-loadbalance-works.html


猜你喜欢

转载自blog.csdn.net/sinat_22065775/article/details/78732864