• 【网络】HTTP报文信息


    报文: 用于HTTP协议交互的信息称之为报文。它是由多行数据构成的字符串文本。

    请求报文: 客户端的HTTP报文。

    响应报文: 服务器端的HTTP报文。

    请求报文&响应报文

    报文结构

    请求报文:

    在这里插入图片描述

    响应报文:

    在这里插入图片描述

    概念阐述

    1. 请求行:包含请求的方法,用于请求URI和HTTP版本。
    2. 状态行:包含表明响应结果的状态码、原因短句、HTTP版本。
    3. 首部字段:包含表示请求和响应的各种条件和属性的各类首部。
      1. 一般有各种首部:通用首部、请求首部、响应首部、实体首部。

    编码

    HTTP有两种传输数据的方式:

    1. 按照数据原貌直接传输
      1. 效率慢
    2. 传输过程中通过编码提高效率
      1. 效率高
      2. 但是会消耗更多的CPU资源

    报文主体&实体主体

    报文:

    HTTP通信的基本单位,由8位组字节流组成,通过HTTP通信传输。

    实体:

    作为请求或响应的有效载荷数据被传输。内容由实体首部和实体主体构成。
    HTTP报文主体:用于传输请求或者响应的实体主体。
    📎 一般来说 报文主体 == 实体主体 。但是当传输过程中进行编码操作时,实体主体的内容发生变化,会导致和报文主体产生差异。

    内容编码

    指明应用在实体内容上的编码格式,并保持实体信息原样压缩,内容编码后的实体由客户端接收并负责解码。

    在这里插入图片描述

    常见编码格式:

    1. gzip
    2. compress
    3. deflate
    4. identity

    分块传输编码

    在传输大的数据时,通过把数据分成多块,让浏览器逐步显示页面

    步骤:

    1. 将实体主体分为多个部分,每一块用16进制标记块的大小。最后一块用0(CR+LF) 来标记。
    2. 客户端负责解码,恢复到编码前的实体主体。

    在这里插入图片描述

    多部分对象集合

    可以发送多种数据:

    1. multipart/form-data: 用于表单文件上传。

    2. multipart/byteranges: 响应报文包含了多个范围的内容时使用。

    步骤:

    1. 报文中使用多部分对象集合时,要在首部字段加上Content-type,
    2. 使用boundary字符串划分多部分对象集合指明的各类实体。

    获取部分内容的范围请求

    在这里插入图片描述

    要实现该场景需要指定下载的实体范围。

    范围请求: 指定范围发送的请求

    执行范围请求时,用到首部字段Range指定资源的byte范围。

  • 相关阅读:
    图文详解机器学习中的超平面、函数间隔、几何间隔
    Linux手记
    使用helm快速安装 grafana&prometheus
    实验七—高级数据管理(一)
    只想做个一门心思只赚钱的打工人?这4种收入你都有吗?
    【Spring】实例化bean的三种方式、bean的生命周期控制操作(代码解释)
    【C++漂流记】一文搞懂类与对象的封装
    Android 沉浸式状态栏
    使用Java语言做几个小小练习题吧
    (附源码)ssm产品裂变管理系统 毕业设计 100953
  • 原文地址:https://blog.csdn.net/qq_41675812/article/details/132999278