我正在用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