我正在用Java编写一个Web服务器,我希望它支持HTTP 1.1 Keep-Alive连接。但是,如何知道客户端何时完成了给定连接的请求? (就像是一个双线结束的东西)。如何知道何时关闭HTTP 1.1保持连接?
让我们来看看stackoverflow如何处理这个非常模糊的问题 - 在Google上,这些问题都被技术规范和模糊语言所困扰。我想要一个非C程序员的简单英语答案:)
我明白了。这证实了我不得不依赖SocketTimeoutException的怀疑。但我不确定是否有一些我可以从客户端获得的信息表明它已完成连接 - 这可以让我在大多数情况下更快地关闭连接 - 而不是等待超时。谢谢
我想问的原因是,大多数Web浏览器(特别是所有我曾与测试者)的持续发出“连接:保持活动”头即使在所有的的CSS/.js文件/ etc文件已经请求并收到。我想也许他们比我更聪明,我错过了一些东西。 – Bret 2008-09-26 17:56:04
浏览器更愿意保持连接的打开状态,因为如果需要向同一台服务器发送更多请求,则会增加响应时间。没有什么能够防止服务器在每次请求后忽略Keep-Alive功能并关闭连接。 – Alexander 2008-09-26 18:06:03