1. 分析 url:判断输入的 url 是否合法,如果不合法浏览器会使用默认的搜索引擎进行搜索。如果输入的是一个域名,默认会加上一个 http 前缀。
  2. DNS 查询:检查浏览器本地hosts文件的缓存,如果没有会向本地 DNS 服务器发送请求进行递归查询,如果找到则返回,否则会向根 DNS 进行迭代查询。找到域名和 ip 的关系后,把结果返回给用户,并把结果保存到缓存中。
  3. TCP 建立连接:拿到 ip 地址后,浏览器以一个随机端口与服务器的80端口建立TCP连接,并发送HTTP请求。
  4. 处理请求:服务器收到 HTTP 请求报文后进行响应,返回 HTTP 响应报文。
  5. 接收响应:浏览器收到 HTTP 响应报文后进行解析,首先查看响应报文在状态行的状态码,根据不同的状态码做不同的事,将渲染结果返回给用户并进行缓存。
  6. TCP 断开连接:通过 TCP 的四次挥手断开连接。