DNS 解析

浏览器查询 DNS,获取域名对应的 IP 地址:具体过程包括浏览器搜索自身的 DNS 缓存搜索操作系统的 DNS 缓存读取本地的 Host 文件向本地 DNS 服务器进行查询等。对于向本地 DNS 服务器进行查询,如果要查询的域名包含在本地配置区域资源中,则返回解析结果给客户端,完成域名解析(此解析具有权威性);如果要查询的域名不由本地 DNS 服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个 IP 地址映射,完成域名解析(此解析不具有权威性)。如果本地域名服务器并未缓存该网址映射关系,那么将根据其设置发起递归查询或者迭代查询

TCP 连接

建立TCP连接就是要在发送数据之前建立通道,客户端和服务端之间建立通道就可以在这个通道里发送数据。

浏览器获得域名对应的 IP 地址以后,浏览器向服务器请求建立链接,发起三次握手;

浏览器输入一个 url 的解析过程_运维

发送 HTTP 请求

TCP 连接建立起来后,浏览器向服务器发送 HTTP 请求;

服务器处理请求并返回 HTTP 报文:服务器接收到这个请求,并根据路径参数映射到特定的请求处理器进行处理,并将处理结果及相应的视图返回给浏览器;

请求报文:

浏览器输入一个 url 的解析过程_缓存_02


响应报文:

浏览器输入一个 url 的解析过程_运维_03

浏览器解析渲染页面

浏览器解析并渲染视图,若遇到对 js 文件、css 文件及图片等静态资源的引用,则重复上述步骤并向服务器请求这些资源;浏览器根据其请求到的资源、数据渲染页面,最终向用户呈现一个完整的页面。

连接结束。