请求中的“TE”头字段指示除了分块之外,客户愿意接受什么样的传输编码,以及客户是否愿意接受分块传输编码中的尾部字段。

    TE字段的值由一系列以逗号分隔的传输编码的名称组成,每个都允许可选的参数(如第4节描述)和/或关键字“trailers”。客户端不得在TE中发送分块传输编码的名字;分块对HTTP/1.1的接收者总是可接受的。

    1. TE = #t-codings
    2. t-codings = "trailers" / ( transfer-coding [ t-ranking ] )
    3. t-ranking = OWS ";" OWS "q=" rank
    4. rank = ( "0" [ "." 0*3DIGIT ] )
    5. / ( "1" [ "." 0*3("0") ] )

    下面是TE使用的三个例子。

    1. TE: deflate
    2. TE:
    3. TE: trailers, deflate;q=0.5

    关键字“trailers”的出现指示客户端代表它自己或者任何下游客户端愿意在分块传输编码中接受尾标字段,如4.1.2节定义。对于从中介来的请求,这意味着(a)所有的下游客户端在被转发的消息中愿意接受尾标字段;或者,(b)中介将试图代表下游接收者缓冲响应。请注意,HTTP / 1.1没有定义任何方法来限制分块响应的大小,以便中介可以确保缓冲整个响应。

    当多个传输编码都是可接受的时候,客户端可能使用不区分大小写的q参数优先对编码排序(类似于内容协商字段中使用的qvalues,RFC7231中5.3.1节)。排序值是0到1范围内的实数,其中0.001是最不优选的,1是最优选的; 值为0意味着“不可接受”。

    如果TE字段值是空的或者没有TE字段出现,可接受的传输编码仅有chunked。不使用传输编码的消息总是可接受的。

    由于TE头字段只适用于立即连接,所以TE的发送者也必须在Connection头字段(6.1节)中发送一个“TE”连接选项,以防止TE字段被不支持的中介转发 它的语义。