当我们在浏览器输入网址,按下回车的那一刻会发生什么
1.DNS 解析:
浏览器首先会根据 URL 中的域名部分,向 DNS 服务器发起请求,获取对应的 IP 地址。如果 DNS 缓存中有该域名的解析结果,则直接返回,否则需要进行递归查询和迭代查询,最终获取到正确的 IP 地址。
2.发起 TCP 连接:
浏览器通过获取到的 IP 地址和目标服务器的端口号,建立一个 TCP 连接。这个过程中还包含了三次握手的过程(SYN、SYN-ACK、ACK)。
3.发送 HTTP 请求:
TCP 连接建立成功后,浏览器会构建一个 HTTP 请求报文,包括请求方法、请求头、请求体等信息,并发送给服务器。
4.服务器处理请求并响应:
服务器在接收到请求报文后,会根据请求报文中的信息进行处理,生成相应的响应报文,并返回给客户端。
5.浏览器渲染页面:
当浏览器接收到响应报文后,会根据响应头中的 Content-Type 属性确定响应内容的类型,并进行相应的处理。比如,如果是 HTML 类型,浏览器就会解析 HTML 代码,构建 DOM 树,解析 CSS 代码,构建渲染树,并进行布局和绘制,最终展示出页面。
6.断开 TCP 连接:
当页面全部渲染完成后,浏览器会关闭 TCP 连接,释放资源。