我开始阅读关于Keep-Alive并正在考虑将其添加到我的网络服务器,但当我追踪http://google.com和http://stackoverflow.com时,我注意到他们根本没有发送这个头文件给客户端(这是一个超时)。Keep-Alive带有超时的http头没有被谷歌,stackoverflow等使用?
这是为什么?我通常会认为你想杀掉已经闲置超过20秒左右的连接。其实我很好奇其他网站正在使用什么。也许他们最终会暂停闲置连接,但不要告诉客户他们会这样做(这看起来很奇怪)。
我做了一个“telnet google.com 80”,等了大约2分钟,它从来没有超时,然后我发出了一个“GET/HTTP/1.1”,并等待输入一堆随机垃圾, (不确定它们是否会限制标题大小,所以你可以'OOM他们的服务器,我认为)。我终于进入了两次,并收回了200 OK ....我的头文件没有任何格式正确,但谷歌似乎并不在意(奇怪)。
感谢, 院长
我在询问更多关于保持活着的超时功能的信息。它似乎谷歌没有使用超时。事实上,我只是通过telnet到google.com的80端口,似乎只是让我这样做,永远.....不是一件坏事,因为你可以在太多的开放连接上DOS。看起来很奇怪,他们没有时间。 –
是因为HTTP/1.1没有在头文件中给出显式超时,但是在服务器上会有一个超时。尝试离开telnet会话,你会看到它最终被关闭。没有提供一个时间(永远不能保证)允许服务器处理其他选项(例如,在该连接上进行的最大请求,来自客户端的最大连接等)。 –
你一定错过了我的编辑?谷歌和stackoverflow从未关闭我的连接,并将其打开。最重要的是,chrome在没有发送任何请求的情况下连接(有时候我想为更多或者其他东西做好准备),因为我最终实现了一个超时功能,但现在正在考虑将其重新取出,因为chrome连接时没有请求进入有时。 –