在Web上的互操作性方面,我们经常遇到一些问题。对于浏览器供应商来说,其中一个问题就是拼写错误的Connection HTTP头。这两种形式给出了最常见的错误。
nnCoection:
Cneonction:已经有一些关于这方面的文章,包括Fun with HTTP headers。通常,它是按周期发生的,然后消失。它们中的一些似乎是由负载均衡器创建的,比如this example:NetScaler设备。
您是否知道导致这些问题的其他硬件或软件实例?
HTTP 在这里是一个不能发送回一个好的Connection HTTP头的站点的一个例子。
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更新2011-01-26
在亚马逊关于亚马逊网络服务的论坛上,有一个关于nnCoection的thread。一条评论说:
仅供参考,它错误拼写单词
的原因是为了使互联网校验和(一个简单的和)仍然加起来,这样可以在数据包级别发生更改。如果它完全删除了报头,它将不得不停止转发响应,直到报头被完全读取,这样它就可以重写报头,重新计算校验和,然后发送它。
使用
sum(ord(c) for c in "Connection")和
sum(ord(c) for c in "nnCoection")两者都给1040
发布于 2011-01-26 04:41:47
你确定这是一个实际的问题吗?链接的文章指出,这些类型的报头是“故意拼写错误的”,因此负载均衡器、反向代理或其他中间盒可以破坏服务器希望连接保持活动的愿望,而不必在连接的整个生命周期中跟踪TCP流位置的增量。通过强制将到其他服务器的保持活动的连接迁移到已联机的服务器,实际上可能需要这样的操作才能使停机和恢复的服务器恢复活动状态。
如果您有一个依赖于HTTP Connection: keep-alive才能工作的协议(cough),那么您可能做错了。
https://stackoverflow.com/questions/4798461
复制相似问题