1、查询 DNS,获取域名对应的 IP。
(1)检查浏览器缓存、检查本地 hosts 文件是否有这个网址的映射,如果有,就调用这个 IP 地址映射,解析完成。
(2)如果没有,则查找本地 DNS 解析器缓存是否有这个网址的映射,如果有,返回映射,解 析完成。
(3)如果没有,则查找填写或分配的首选 DNS 服务器,称为本地 DNS 服务器。服务器接收到 查询时: 如果要查询的域名包含在本地配置区域资源中,返回解析结果,查询结束 如果要查询的域名不由本地 DNS 服务器区域解析,但服务器缓存了此网址的映射关系,返回 解析结果,查询结束
(4)如果本地 DNS 服务器也失效: 如果未采用转发模式(迭代),本地 DNS 就把请求发至 13 台根 DNS,根 DNS 服务器收到请求后, 会判断这个域名(如.com) 是谁来授权管理,并返回一个负责该顶级域名服务器的 IP,本地 DNS 服务器收到顶级域名服务器 IP 信息后,继续向该顶级域名服务器 IP 发送请求,该服务器如 果无法解析,则会找到负责这个域名的下一级 DNS 服务器(如 http://baidu.com) 的 IP 给本地DNS 服务器,循环往复直至查询到映射,将解析结果返回本地 DNS 服务器,再由本地 DNS 服务器返回解析结果,查询完成。 如果采用转发模式(递归),则此 DNS 服务器就会把请求转发至上-一级 DNS 服务器,如果上 一级 DNS 服务器不能解析,则继续向上请求。最终将解析结果依次返回本地 DNS 服务器, 本地 DNS 服务器再返回给客户机,查询完成。
2、得到目标服务器的 IP 地址及端口号(http 80端口,https 443 端口),会调用系统库函数 socket, 请求一个 TCP 流套接字。
客户端向服务器发送 HTTP 请求报文:
(1) 应用层:客户端发送 HTTP 请求报文。
(2)传输层: (加入源端口、目的端口)建立连接。实际发送数据之前,三次握手客户端和服务 器建立起一个 TCP 连接。
(3) 网络层: (加入 IP 头) 路由寻址。
(4)数据链路层: (加入 frame 头) 传输数据。
(5)物理层:物理传输 bit。
3、服务器端经过物理层>数据链路层→网络层→传输层→应用层,解析请求报文,发送 HTTP 响应报文。
4、关闭连接,TCP 四次挥手。
5、客户端解析 HTTP 响应报文,浏览器开始显示 HTML
在浏览器中输入一个网址它的运行过程是怎样的?
最新推荐文章于 2023-03-26 17:49:15 发布