• 1、输入网址
  • 2、DNS解析
  • 3、建立tcp连接
  • 4、客户端发送HTPP请求
  • 5、服务器处理请求
  • 6、服务器响应请求
  • 7、浏览器展示HTML
  • 8、浏览器发送请求获取其他在HTML中的资源。

1.域名解析

当我们在浏览器中输入一个URL的时候首先需要解析为IP地址,这一过程叫做DNS解析

DNS解析是一个递归查询的过程,例如我们解析“www.baidu.com” 时过程是这样的:

  • 在本地域名服务器中查询IP地址,未找到域名
  • 本地域名服务器向根域名服务器发送请求,未找到域名
  • 本地服务器向.com顶级域名服务器发送请求,未找到域名
  • 本地域名服务器向.baidu.com域名服务器发送请求,找到该域名,并将对应的IP返回给本地域名服务器

2.TCP连接

HTTP协议是使用TCP协议作为其传输层协议的,在拿到服务器的IP地址后,浏览器客户端会与服务器建立TCP连接,该过程包括三次握手

3.浏览器发送HTTP请求

浏览器构建http请求报文,并通过TCP协议传送到服务器的指定端口,http请求报文一共包括三个部分:

  • 请求行:指定http请求的方法、url、http协议版本等
  • 请求头:描述浏览器的相关信息,语言、编码等
  • 请求正文:当发送POST、PUT等请求时,通常需要向服务器传递数据。这些数据就储存在请求正文中。

4.服务器处理HTTP请求

服务器处理HTTP请求,并返回响应报文。响应报文包括三个部分:

  • 状态码:http服务常用的状态码及其含义如下
分类 分类描述
1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误
  • 响应头:包含了响应的相关信息,如日期等。
  • 响应正文:服务器返回给浏览器的文本信息,通常的 html、js、css、图片等就在这部分里。

5.浏览器页面渲染

浏览器接收到http服务器发送过来的响应报文,并开始解析HTML文档,渲染页面。具体的渲染过程包括:构建DOM树、构建渲染树、定位页面元素、绘制页面元素等

6.断开TCP连接

客户端与服务器四次挥手,断开TCP连接