保持活跃的http标头,谷歌,stackoverflow等没有使用超时?

时间:2016-07-04 17:19:27

标签: http

我开始阅读关于Keep-Alive的内容,并考虑将其添加到我的网络服务器中,但当我跟踪http://google.comhttp://stackoverflow.com时,我注意到他们并没有将此标题发送回客户端(超时是。)

为什么?我认为通常你想要杀掉闲置超过20秒左右的连接。我真的很好奇其他网站正在使用什么。也许他们最终会暂停空闲连接但只是不告诉客户他们会这样做(这看起来很奇怪)。

我做了一个“telnet google.com 80”并等了大约2分钟它从未超时然后我发出了一个“GET / HTTP / 1.1”而且等了一些比一堆随机垃圾一遍又一遍打字(不确定它们是否限制了标题大小,因此我认为你可以'OOM他们的服务器)。我终于打了两次输入然后回来了200 OK ....我的标题都没有形成良好但谷歌似乎并不关心(奇怪)。

感谢, 迪安

1 个答案:

答案 0 :(得分:0)

在HTTP / 1.1及更高版本中,keep-alive是默认值,除非服务器明确发送“关闭”消息:http://tools.ietf.org/html/rfc7230#section-6.3,因此无需发送Connection: keep-alive标头。

事实上,在HTTP / 2下你甚至不允许发送这个Close头,所以除了在处理请求后显式关闭连接之外不能使用keep-alives [使用GOAWAY消息] [1 ]

在HTTP / 1.1服务器下,可以在不告知客户端的情况下关闭连接。

因此Google和StackExchange正在使用keep-alives - 他们只是不在标题中做广告。