经典面试题: 从输入URL到页面加载的过程发生了什么?

时间:2023-02-08 16:47:49

可以分为这几个大的过程:

  1. DNS解析
  2. TCP连接
  3. 客户端发送HTTP请求
  4. 服务器处理请求并返回HTTP报文
  5. 浏览器解析渲染页面
  6. 结束

其中(1)DNS解析可以理解为主寻找这个IP地址的过程,其中如果找到IP地址会进行本地缓存,以便下次继续使用

  (2)HTTP协议是使用TCP作为其传输层协议的

  (3)HTTP请求报文是由三部分组成: 请求行请求报头请求正文

     例如请求行:GET index.html HTTP/1.1,常见的请求报头有: Accept, Accept-Charset, Accept-Encoding, Accept-Language, Content-Type, Authorization, Cookie, User-Agent等,请求正文一般是一些需要客户端向服务端发送的数据

  (4)HTTP响应报文也是由三部分组成: 状态码响应报头响应报文

     状态码是由3位数组成,第一个数字定义了响应的类别,且有五种可能取值:

    • 1xx:指示信息–表示请求已接收,继续处理。

    • 2xx:成功–表示请求已被成功接收、理解、接受。

    • 3xx:重定向–要完成请求必须进行更进一步的操作。

    • 4xx:客户端错误–请求有语法错误或请求无法实现。

    • 5xx:服务器端错误–服务器未能实现合法的请求。
      平时遇到比较常见的状态码有:200, 204, 301, 302, 304, 400, 401, 403, 404, 422, 500(分别表示什么请自行查找)。

    响应报头:常见的响应报头字段有: Server, Connection...。

    响应报文:服务器返回给浏览器的文本信息,通常HTML, CSS, JS, 图片等文件就放在这一部分。

   (5)浏览器一边解析一边渲染

   (6)结束

详情可以参考完整文章:https://segmentfault.com/a/1190000006879700