在浏览器上输入一个网址到网页显示,期间发生了什么?
-
解析URL的协议、主机名和路径等信息。
-
浏览器将主机名(比如www.baidu.com)发送给本地DNS服务器请求解析域名为IP地址。
-
如果本地DNS服务器中没有该域名的IP地址缓存,它会向根DNS服务器发送请求,以了解该域名的名称服务器(Name Server)。
-
根DNS服务器返回给本地DNS服务器一个DNS解析的顶级域名服务器(Top-Level Domain Server)的IP地址。
-
本地DNS服务器将请求发送到顶级域名服务器,并获得该域名的名称服务器的IP地址。
-
本地DNS服务器将请求发送到名称服务器,获得该域名的IP地址,并将其缓存到本地DNS服务器中。
-
浏览器使用在第2步中获得的IP地址建立TCP连接,然后通过TCP连接发送HTTP请求。
-
服务器收到请求后,解析请求,并查找请求的资源(比如HTML、图片、CSS等)。
-
服务器将HTML、图片、CSS等资源打包成HTTP响应,然后将响应发送回浏览器。
-
浏览器接收到响应后,解析响应,并展示页面。
-
浏览器关闭TCP连接,页面加载完成。
整个过程中,涉及到的协议有DNS、TCP、HTTP等,每一步都非常重要,浏览器通过执行这些步骤才能够将网页内容从服务器传输到用户端,并成功地展示给用户。