admin管理员组

文章数量:1616416

目录

1. 解析域名(DNS解析)

2. 建立 TCP 连接

3. 发送 HTTP 请求

4. 服务器处理请求并返回响应

5. 浏览器渲染页面

6. 连接关闭和资源释放


1. 解析域名(DNS解析)

1. 用户输入百度网址 " http://www.baidu/ "。

2. 浏览器发起 DNS 解析:

  • 浏览器先检查自己的 DNS 缓存,如果缓存中有对应解析结果且未过期,则直接使用。如果缓存中没有或者已经过期,则浏览器向操作系统发起 DNS 解析。

3. 操作系统进行 DNS 解析:

  • 操作系统先检查自己的 DNS 缓存,同样如果缓存中有对应的解析结果且尚未过期,就直接使用。否则操作系统向配置的首选 DNS 服务器发送 DNS 查询请求。

4. DNS 服务器处理请求:

  • 用户计算机的操作系统向配置的首选 DNS 服务器发送 DNS 查询请求,询问域名 “ http://www.baidu/ ” 的对应IP地址。

5. DNS 服务器返回 IP 地址:

  • DNS服务器查询自身的缓存,如果有对应的解析结果就直接返回;否则会向更高层的 DNS 服务器发送 DNS 查询请求,直至找到找到对应 IP 地址,并将结果返回给计算机。

6. 操作系统将收到的 IP 地址返回给浏览器。


2. 建立 TCP 连接

1. 浏览器发起 TCP 连接请求:

  • 浏览器用 http 协议向收到的 IP 地址发起 TCP 连接请求。HTTP默认使用端口为80,HTTPS默认端口是443。

2. 次握手建立连接

  • 客户端(浏览器)向服务器(百度)发送SYN包(同步请求),请求建立连接。
  • 服务器收到SYN包后,回复SYN-ACK包(同步应答),表示收到请求并准备好建立连接。
  • 客户端收到SYN-ACK包后,发送ACK包(确认包),完成连接建立。

3. 发送 HTTP 请求

1. 浏览器发送HTTP请求:

  • 连接建立后,浏览器向服务器发送一个HTTP请求,请求获取 http://www.baidu/ 页面的内容。

2. 请求到达服务器:

  • HTTP请求通过之前建立的TCP连接传输到服务器端。

4. 服务器处理请求并返回响应

1. 服务器处理HTTP请求

  • 服务器收到HTTP请求后,根据请求的内容(URL、请求方法等),执行相应的处理逻辑。

2. 服务器返回HTTP响应

  • 服务器生成HTTP响应,包括状态码、响应头和响应体(网页内容)。
  • 响应体中包含了网页的HTML代码、文本、图片、脚本等信息。

3. 响应通过TCP连接传输

  • 服务器将HTTP响应通过之前建立的TCP连接发送给客户端(浏览器)。

5. 浏览器渲染页面

1. 浏览器接收响应

  • 浏览器接收到HTTP响应后,开始解析响应头和响应体内容。

2. 解析HTML和渲染页面

  • 浏览器解析HTML代码,构建DOM树(文档对象模型)。
  • 根据CSS样式表对DOM树进行样式计算,生成渲染树。
  • 根据渲染树和布局规则,计算每个节点在屏幕上的位置和大小。
  • 将页面内容绘制到浏览器窗口上,显示给用户。

6. 连接关闭和资源释放

1. TCP连接关闭

  • 当页面加载完毕或者用户关闭页面时,浏览器会关闭与服务器的TCP连接。

2. 资源释放

  • 浏览器释放页面相关的资源(内存、网络连接等),以及可能存在的缓存数据。

至此,以上就是浏览器访问百度的详细过程。

本文标签: 发生了什么整个过程打开浏览器