地址栏输入 URL 敲下回车后发生了什么?
简单来说,发生了以下的行为:
1. URL 解析
首先判断你输入的是一个合法的URL还是一个待搜索的关键词,并且根据你输入的内容进行对应操作
URL的解析第过程中的第一步,一个url的结构解析如下: 
2. DNS 查询
浏览器通过DNS(域名系统)查询将域名转换为服务器的IP地址。这个过程中,浏览器可能会使用缓存的 DNS 记录来加速查询过程,若缓存中无记录,则向本地DNS服务器请求,直至最终获得IP地址。 
3. TCP 连接
一旦获取到服务器的IP地址,浏览器便通过TCP三次握手与服务器建立连接。如果是HTTPS网站,还需进行TLS/SSL握手,以确保数据传输的安全性。
4. 发送 http 请求
建立连接后,浏览器构造HTTP请求报文,包括请求行(方法、URL、协议版本)、请求头(如 User-Agent、Accept-Language 等)和可能的请求体(如POST请求的数据)。然后将这个请求发送给服务器。
5. 响应请求
当服务器接收到浏览器的请求之后,就会进行逻辑操作,处理完成之后返回一个 HTTP 响应消息,包括:
- 状态行
- 响应头
- 响应正文
在服务器响应之后,由于现在http默认开始长连接keep-alive,当页面关闭之后,tcp链接则会经过四次挥手完成断开
6. 页面渲染
浏览器的渲染引擎(如 Chrome 的 Blink、Firefox 的 Gecko)开始解析HTML文档,构建DOM树。同时,CSS样式被解析生成CSSOM树,两者结合形成渲染树。接着计算布局(Layout),确定每个节点在屏幕上的位置和尺寸,最后绘制(Painting)到屏幕上。
7. 加载资源
页面渲染过程中,浏览器还会解析HTML中的资源引用(如图片、JavaScript、CSS 文件),并发起额外的HTTP请求来获取这些资源。JavaScript 的执行可能阻塞页面渲染,直到脚本执行完毕或使用异步加载技术。
总结
介绍了输入 URL 并敲下回车后,浏览器进行的一系列操作
