提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
地址栏输入 URL 敲下回车后发生了什么?
1.URL输入
url输入(全称叫做统一资源定位符,用于定位互联网上资源,俗称叫做网址)
我们在地址栏输入网址敲下回车,浏览器会对输入的信息,进行以下的判断:
-
首先检查输入的内容是否是一个合法的URL链接
-
如何合法的话,判断输入的URL是否完整,如果不完整浏览器可能会对url的地址进行猜测,补全地址的前缀或者后缀
-
如果不合法,将输入的内容作为搜索条件,使用用户默认的搜索引擎来进行搜索,大部分的浏览器会从历史记录,书签等地方开始查找我么输入的内容,并给出智能提示。
2.DNS解析
因为浏览器不能直接通过域名找到对应的服务器IP地址所以需需要进行DNS解析找到对应的IP地址进行访问
那DNS解析域名的过程是怎么样的呢?
-
首先用户在浏览器中输入域名
,操作系统会检查浏览器缓存和本地的hosts文件中是否有这个网址记录,有的话就从记录里面找到对应的IP地址,完成域名的解析 -
没有的话再接着使用tcp
ip参数中设置的DNS服务器进行查询。如果要查询的域名包含在本地配置区域资源中则返回解析结果,成域名的解析 -
还没有的话再接着检查本地DNS服务器是否缓存有该网址记录,有的话就返回解析结果,完成域名的解析
-
如果还没有的话,本地服务器会发送查询报文到根DNS服务器,根DNS服务器收到请求后返回顶级域DNS服务器地址,
然后本地服务器在发送查询报文到顶级域DNS 服务器,顶级域DNS
服务器收到请求后返回权威DNS服务器的地址然后本地DNS服务器在发送查询报文到权威DNS服务器那么权威DNS服务器收到请求后呢返回最终的IP地址,完成域名的解析。
3.建立TCP链接:
当浏览器获取到服务器的IP地址后,浏览器会用一个随机的端口号向服务器80端口发起TCP连接请求,这个连接请求到达服务器端后,通过TCP三次握手建立TCP的连接。
4.发送http请求
建立连接后,就可以通过HTTPw进行数据的传输了,如果使用了HTTPS,会在TCP与HTTP之间多添加一层协议作为加密及认证的服务,
HTTPS 使用ssl和tls协议,保障了信息的安全。
ssl
协议的作用是认证客户端和服务器,确保数据,发送到正确的客户端和服务器,加密数据,防止数据中途被窃取,维护数据的完整性,确保数据在传输过程中啊不被改变
tls
协议的作用是用于在两个通信应用程序之间提供保密性和数据完整性,tls协议有两层组成tls记录协议和twls握手协议
5.服务器端响应请求
当浏览器到外部服务器的连接建立后,浏览器会发送一个初始的HTTP GET 请求,请求目标通常是一个html文件,服务器收到请求后将发回一个HTTP 的响应报文,内容包括相关的响应头和HTML正文
6.服务器解析渲染页面
不同的浏览器渲染过程是不一样的,以谷歌浏览器为例子,来介绍渲染的过程:
- 首先处理HTML标记并构建dom 树
- 处理css标记并构建cssDOM树
- 将DOM树以cssDOM树合并为一颗渲染树
- 根据渲染树来布局,以计算每个节点的几何信息
- 将各个节点渲染到屏幕上。
7.tcp断开连接:
4次挥手断开链接。