图解HTTP-阅读笔记 第3章 HTTP报文内的HTTP信息

本文深入解析HTTP协议,涵盖请求与响应报文结构、编码提升传输速率、多部分对象集合、部分内容获取与内容协商技术,帮助读者全面理解HTTP通信机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、HTTP报文

用于HTTP协议交互的信息被称为HTTP报文。请求端(客户端)的HTTP报文叫做请求报文,响应端(服务端)的叫做响应报文。

2、请求报文及响应报文的结构

数据组成:
  • 请求行:包含用于请求的方法,请求URI和HTTP版本
  • 状态行:包含表明响应结果的状态码,原因短语和HTTP版本
  • 首部字段:包含表示请求和响应的各种条件和属性的各类首部(一般有4种首部,分别是:通用首部、请求首部、响应首部和实体首部)
  • 其他:可能包含HTTP的RFC里未定义的首部(Cookie等)
请求报文
请求行-->请求首部字段-->通用首部字段-->实体首部字段-->其他
复制代码
响应报文
状态行-->响应首部字段-->通用首部字段-->实体首部字段-->其他
复制代码

3、编码提升传输速率

  • 报文(message):是HTTP通信中的基本单位,由8位组字节流(octet sequence,其中octet为8个比特)组成,通过HTTP通信传输
  • 实体(entity):作为请求或响应的有效载荷数据(补充项)被传输,其内容由实体首部和实体主体组成
  • 压缩传输的内容编码:gzip(GNU zip)、compress(UNIX 系统的标准压缩)、deflate(zlib)、identity(不进行编码)
  • 分割发送的分块传输编码

4、发送多种数据的多部分对象集合

HTTP协议中采用了多部分对象集合,发送的一份报文主体内可含有多类型实体。通常是在图片或文本文件等上传时使用
  • multipart/form-data:在Web表单上传时使用
  • multipart/byteranges:状态码206(Partial Content ,部分内容)响应报文包含了多个范围的内容时使用

5、获取部分内容的范围请求

执行范围请求时,会用到首部字段Range来指定资源的byte范围
  • 5001~10000字节
Range: bytes=5001-10000
复制代码
  • 从5001字节之后的全部
Range: bytes=5001-
复制代码
  • 从一开始到3000字节和5000~7000字节的多重范围
Range: bytes=0-3000, 5000-7000
复制代码

6、内容协商返回最合适的内容

内容协商会以语言、字符集、编码方式等为基准判断响应的资源。包含在请求报文中的某些首部字段就是判断的基准:
  • Accept
  • Accept-Charset
  • Accept-Encoding
  • Accept-Language
  • Content-Language
内容协商技术有以下3种类型:
  • 服务器驱动协商(由服务器进行内容协商,以请求的首部字段为参考,在服务器端自动处理)
  • 客户端驱动协商(由客户端进行内容协商,用户从浏览器显示的可选项列表中手动选择)
  • 透明协商(是服务器驱动和客户端驱动的结合体,是由服务器端和客户端各自进行内容协商的一种方法)

转载于:https://juejin.im/post/5c092c3cf265da61327f1e38

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值