Cneonction和nnCoection HTTP标头

kar*_*cow 18 interop http http-headers

我们在Web上的互操作性方面经常遇到一些问题.浏览器供应商的这些问题之一是错误拼写的ConnectionHTTP标头.这两种形式给出了最常见的错误.

nnCoection:
Cneonction:
Run Code Online (Sandbox Code Playgroud)

有一些关于此的文章,包括Fun with HTTP headers.通常它会在一段时间内发生,然后消失.似乎其中一些是由负载平衡器创建的,例如:NetScaler Appliance.

您是否知道造成这些问题的任何其他硬件或软件实例?

更新此处的一个示例,其中一个站点没有发回好的ConnectionHTTP标头.

curl -sI ehg-nokiafin.hitbox.com
HTTP/1.1 200 OK
Date: Tue, 25 Jan 2011 20:35:45 GMT
Server: Hitbox Gateway 9.3.6-rc1
P3P: policyref="/w3c/p3p.xml", CP="NOI DSP LAW NID PSA ADM OUR IND NAV COM"
Cneonction: close
Pragma: no-cache
Cache-Control: max-age=0, private, proxy-revalidate
Expires: Tue, 25 Jan 2011 20:35:46 GMT
Content-Type: text/plain
Content-Length: 23
Run Code Online (Sandbox Code Playgroud)

更新2011-01-26

在论坛亚马逊AWS左右,有一个线程有关nnCoection.评论说:

仅供参考,它错误拼写单词连接的原因是互联网校验和(简单的总和)仍然加起来,这样变化可以在数据包级别发生.如果它完全删除了标题,它将不得不停止转发响应,直到标题被完全读取,因此它可以重写标题,重新计算校验和然后发送它.

sum(ord(c) for c in "Connection")
Run Code Online (Sandbox Code Playgroud)

sum(ord(c) for c in "nnCoection")
Run Code Online (Sandbox Code Playgroud)

两者都给出1040

Jef*_*tin 9

你确定这是一个实际问题吗?链接的文章表明,这些类型的标题是"故意拼写错误",因此负载平衡器,反向代理或其他中间件可以破坏服务器保持连接保持活动的愿望,而不必跟踪TCP流中的增量.连接的生命.这样的事情实际上可能是必要的,通过强制保持活动连接到其他服务器迁移到联机的服务器,使被击倒和恢复的服务器恢复到现役状态.

如果您的协议依赖于HTTP Connection: keep-alive来运行(咳嗽),那么您可能做错了.

  • 有趣,但很恶心。 (2认同)