HTTP_EXPECT header 到底是做什么用的?
What exactly is the HTTP_EXPECT header for?
HTTP_EXPECT header 到底有什么用?
我注意到它出现在我的一些但不是所有的日志中,我很好奇它是什么意思?
我以前从未听说过这个 header,但一些研究很有启发性。
您可以阅读spec for HTTP_EXPECT right here。然而,规范语言可能有点枯燥和技术性。比较宽松的解释如下:
客户端可以发送具有大正文的 HTTP 请求。如果事实证明服务器由于某种原因最终将拒绝请求(例如,没有用户登录或类似情况),这将是对带宽的巨大浪费。输入 HTTP_EXPECT header。这个header本质上是让客户端对服务器提出特殊要求; "I the client expect that you will pre-approve this message, else… I won't even bother schlepping the big stuff over." 在服务器端,服务器通常可以选择以下两种方式之一进行响应:
- 反弹回
100
(请继续!)响应,或
417
(不,期望失败)响应。
这必须由服务器完成 before 昂贵的大请求 body 跟随流管道,所以 100
是一种中间在您的最终响应之前响应(可能 200
),并且 417
是完全关闭管道的最终响应,因此客户端永远不会结束流式传输数据。
现在,理论上期望 header 是可扩展的,因此它可以用于其他目的。客户端可以发送 100
以外的期望。但上述用例似乎是此 header 的主要(如果不是唯一)目的。 See here for more info on the 100
response.
JS 开发人员需要特别注意,我认为值得指出的是 Node 具有 100-continue support, but as of today, doesn't yet support other Expect headers.
HTTP_EXPECT header 到底有什么用?
我注意到它出现在我的一些但不是所有的日志中,我很好奇它是什么意思?
我以前从未听说过这个 header,但一些研究很有启发性。
您可以阅读spec for HTTP_EXPECT right here。然而,规范语言可能有点枯燥和技术性。比较宽松的解释如下:
客户端可以发送具有大正文的 HTTP 请求。如果事实证明服务器由于某种原因最终将拒绝请求(例如,没有用户登录或类似情况),这将是对带宽的巨大浪费。输入 HTTP_EXPECT header。这个header本质上是让客户端对服务器提出特殊要求; "I the client expect that you will pre-approve this message, else… I won't even bother schlepping the big stuff over." 在服务器端,服务器通常可以选择以下两种方式之一进行响应:
- 反弹回
100
(请继续!)响应,或 417
(不,期望失败)响应。
这必须由服务器完成 before 昂贵的大请求 body 跟随流管道,所以 100
是一种中间在您的最终响应之前响应(可能 200
),并且 417
是完全关闭管道的最终响应,因此客户端永远不会结束流式传输数据。
现在,理论上期望 header 是可扩展的,因此它可以用于其他目的。客户端可以发送 100
以外的期望。但上述用例似乎是此 header 的主要(如果不是唯一)目的。 See here for more info on the 100
response.
JS 开发人员需要特别注意,我认为值得指出的是 Node 具有 100-continue support, but as of today, doesn't yet support other Expect headers.