php transfer-encoding,Transfer-Encoding

Transfer-Encoding头指定用于将安全地传输编码的形式的实体提供给用户。

Transfer-Encoding是一种逐跳报头,即应用于两个节点之间的消息,而不是资源本身。多节点连接的每个段可以使用不同的Transfer-Encoding值。如果要在整个连接上压缩数据,请改为使用端到端标Content-Encoding头。

当出现在对HEAD没有主体的请求的响应中时,它指示将应用于相应GET消息的值。

Header typeResponse headerForbidden header nameyes

句法

Transfer-Encoding: chunked

Transfer-Encoding: compress

Transfer-Encoding: deflate

Transfer-Encoding: gzip

Transfer-Encoding: identity// Several values can be listed, separated by a commaTransfer-Encoding: gzip, chunked

指令

chunked数据以一系列块的形式发送。该Content-Length标题省略在这种情况下,并在每个需要添加十六进制格式的当前块的长度,其次是块“的开始\r\n”,然后是块本身,紧接着又“ \r\n”。终止块是一个常规块,除长度为零外。其后是拖车,它由一个(可能是空的)实体标题字段序列组成。compress使用 Lempel-Ziv-Welch(LZW)算法的格式。值名取自实施此算法的 UNIX 压缩程序。

与大多数 UNIX 发行版已经消失的压缩程序一样,目前几乎没有浏览器使用这种内容编码,部分原因是由于专利问题(已在2 003年过期)。deflate使用 deflate 压缩算法(在RFC 1951中定义)使用zlib结构(在RFC 1950中定义)。一种使用Lempel-Ziv编码(LZ77)和32位 CRC  的格式。这最初是 UNIX gzip 程序的格式。为了兼容性的目的,HTTP / 1.1 标准还建议支持该内容编码的服务器应该将其识别为别名。gzipx-gzipidentity指示身份功能(即不压缩,也不修改)。除非明确指定,否则此标记始终被视为可接受。

例子

分块编码

当大量数据发送到客户端时,分块编码非常有用,并且在请求完全处理之前可能不知道响应的总大小。例如,生成从数据库查询产生的大型 HTML 表格或传输大型图像时。分块的响应如下所示:

HTTP/1.1 200 OK

Content-Type: text/plain

Transfer-Encoding: chunked7\r\n

Mozilla\r\n

9\r\n

Developer\r\n7\r\n

Network\r\n0\r\n

\r\n

产品规格

SpecificationTitleRFC 7230, section 3.3.1: Transfer-EncodingHypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing

浏览器兼容性

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafariBasic Support(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)

FeatureAndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS SafariBasic Support(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)(Yes)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值