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


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

    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

          

  • 相关阅读:
    第 16 章 CSS 盒模型[下]
    第 16 章 CSS 盒模型[上]
    第 15 章 CSS 文本样式[下]
    第 15 章 CSS 文本样式[上]
    第 14 章 CSS 颜色与度量单位
    第 13 章 CSS 选择器[上]
    第 12 章 CSS 入门
    关于springboot上传文件报错:The temporary upload location ***is not valid
    Java Enum枚举 遍历判断 四种方式(包括 Lambda 表达式过滤)
    git命令-切换分支
  • 原文地址:https://www.cnblogs.com/zgx123/p/7379993.html
Copyright © 2020-2023  润新知