• 【网络】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范围。

  • 相关阅读:
    一端强制一端自协商会有问题吗
    一键自动化博客发布工具,用过的人都说好(oschina篇)
    [LeetCode解题报告] 30. 串联所有单词的子串
    【考研数据结构代码题6】构建二叉树及四大遍历(先中后层)
    arthas常用命令
    大写字母转小写字母
    Docker制作镜像并部署bind9(yum安装bind)--use
    593. 有效的正方形 : 简单几何运用题
    Vue学习笔记(一)——搭建自己的Vue项目及框架结构解释
    秋招攻略秘籍,吃透25个技术栈Offer拿到手软
  • 原文地址:https://blog.csdn.net/qq_41675812/article/details/132999278