首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有浏览器支持以分块编码响应发送的预告片?

是否有浏览器支持以分块编码响应发送的预告片?
EN

Stack Overflow用户
提问于 2012-11-14 00:40:52
回答 5查看 7.9K关注 0票数 33

HTTP/1.1指定作为Transfer-Encoding: chunked发送的响应可以包括可选的拖车(即。通常作为标题发送的内容,但无论出于什么原因,都不能在内容之前进行计算,因此可以将其追加到末尾),例如:

请求:

代码语言:javascript
运行
复制
GET /trailers.html HTTP/1.1
TE: chunked, trailers

响应:

代码语言:javascript
运行
复制
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Trailer: My-Test-Trailer
D\r\n
All your base\r\n
B\r\n;
 are belong\r\n
6\r\n
 to us\r\n
0\r\n
My-Test-Trailer: something\r\n
\r\n

此请求在TE头中指定它期待一个chunked响应,并将在最后一个块之后查找trailers

响应在Trailer头中指定它将要发送的拖车列表(在本例中,只指定一个:My-Test-Trailer)。

每个块被发送为:

  • 十六进制块的大小(D = 13),然后是CRLF
  • 块数据(All your base),后面是一个CRLF

零大小块(0\r\n)表示身体的结束。

然后指定预告片(My-Test-Trailer: something\r\n),然后是最后的CRLF

现在,从我所读到的所有东西来看,拖车很少被使用(如果有的话)。大多数关于拖车的这里和其他方面的讨论通常以“但你为什么要使用拖车?”开始。

出于好奇,我一直在尝试模拟使用预告片的HTTP请求/响应交换(HTTP request/response exchange ),但到目前为止,我还无法让它工作,我也不确定我正在生成的响应是否有问题,或者(正如一些人所建议的那样)是否根本没有客户端寻找尾随的标题。

我试过的客户包括: curl,wfetch,Chrome + jQuery。

在所有情况下,客户端接收并正确地重新构造块响应(All your base are belong to us);我可以在响应头中看到Trailer: My-Test-Trailer正在发送的响应头;但我没有看到在响应头或任何地方返回的My-Test-Trailier: something。在接收到整个响应并关闭连接之后,这样的尾随头是否应该作为正常的响应头出现在客户机中还不清楚?

有趣的是,卷曲变化日志似乎表明curl确实支持可选的拖车,而curl将处理它找到的任何进入正常的标头流拖车。

有没有人知道:

  • 我可以点击一个有效的URL,它会在一个分块的响应中发送拖车?(这样我就可以确认是否只是我的测试响应不起作用了);
  • 已知哪些客户端支持(以及访问/显示)服务器发送的拖车?
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2018-01-10 04:13:40

问这个问题已经过去5年了,我现在可以自己回答了。

Mozilla刚刚宣布,他们将支持新的Server-Timing字段作为HTTP后继报头(这是他们第一次支持拖车)。

bug.cgi?id=1413999

然而,更重要的是,他们确认它将被白化,因此Server-Timing是唯一的支持值(着重于我):

服务器定时是HTTP预告片,而不是报头。mcmanus告诉我,我们目前解析拖车,但随后默默地将它们扔掉。我们一般不想改变这种行为(我们不想鼓励预告片),所以我们想要白名单服务器定时预告片,将它存储在某个地方(可能只是一个mServerTiming头暂时可以工作,因为它是我们支持的唯一预告片),然后通过一些新的channel.getTrailers()调用使其可用。

因此,我想这是一劳永逸地证实了这一点: Moz不支持尾随标头(也不可能是一般意义上的),所有其他浏览器供应商也可能采取相同的立场。

票数 10
EN

Stack Overflow用户

发布于 2016-08-16 00:16:46

没有普通浏览器支持HTTP/1.1预告片。查看褐镜的“网络”选项卡中的列“头在预告片中”。

  • Chrome:不,也不会修复(错误)。支持H/2拖车(错误)。
  • 火狐:没有,我在bugzilla没有看到它的门票。似乎支持H/2。
  • 艾莉:不
  • 边缘:不
  • 狩猎旅行:不
  • 歌剧:只有旧版本(v10 - 12,在14中删除)

正如您已经发现的,许多非浏览器客户端支持它。

票数 12
EN

Stack Overflow用户

发布于 2014-03-20 03:56:48

此承诺以来,Jodd HTTP客户端支持拖车头。

关于第一个问题,我还没有找到任何使用它们的实时响应;)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13371367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档