15.6 传输编码和分块编码

本文详细介绍了HTTP中的传输编码,特别是分块编码,用于解决在未知内容长度和持久连接时的可靠传输问题。分块编码将报文分割成大小已知的块,允许服务器在不知道主体完整大小的情况下发送数据。此外,还讨论了传输编码的规则和与内容编码的区别,以及分块编码中拖挂的使用。
摘要由CSDN通过智能技术生成
  • 前一节讨论的内容编码,是对报文的主体进行的可逆变换。内容编码是和内容的具体格式细节紧密相关的。例如,你可能会用 gzip 压缩文本文件,但不是 JPEG 文件,因为 JPEG 这类东西用 gzip 压缩的不够好。
  • 本节讨论传输编码。传输编码也是作用在实体主体上的可逆变换,但使用它们是由于架构方面的原因,同内容的格式无关。使用传输编码是为了改变报文中的数据在网络上传输的方式。
    这里写图片描述

1. 可靠传输

  • 长久以来,在其他一些协议中会用传输编码来保证报文经过网络时能得到“可靠传输”。在 HTTP 协议中,可靠传输关注的焦点有所不同,因为底层的传输设施已经标准化并且容错性更好。在 HTTP 中,只有少数一些情况下,所传输的报文主体可能会引发问题。其中两种情况如下所述:
    • 未知的尺寸
      如果不先生成内容,某些网关应用程序和内容编码器就无法确定报文主体的最终 大小。通常,这些服务器希望在知道大小之前就开始传输数据。因为 HTTP 协议要求 Content-Length 首部必须在数据之前,有些服务器就使用传输编码来发送数据,并用特别的结束脚注表明数据结束。(尽管可以因陋就简地用关闭连接作为报文结束的信号,但这种方法不能用于持久连接)
    • 安全性
      你可以用传输编码来把报文内容扰乱,然
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值