比如 keep-alive 且 timeout 設定100毫秒,客戶端發送多個請求其實是使用同一個socket連接的,想弄清楚這個連接的關閉程序
問題1:100毫秒來臨時,如果客戶端沒有主動關閉連接(connection:close),服務端會怎么處理?會主動給客戶端發connection:close的確認命令嗎還是直接當方面關閉socket通道后續訊息不再處理?
問題2:在100毫秒來臨時,客戶端在此socket上發起新的請求,而訊息到達服務端時已經過了100毫米,服務端是如何處理的?
小弟看了http的官方檔案好像也沒太清楚的程序說明,百度上也沒有
https://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8
希望大神指點迷津!講清楚的給分
uj5u.com熱心網友回復:
上面的問題一也等同于:http1.1 連接建立后,客戶端突然掛了,服務端會怎么處理這個連接,關閉時肯定的,怎么關閉的?比如是timeout 100毫秒后直接關閉?還是先和客戶端確認,收到確認回復再關閉?一直沒收到確認回復的話等一段時間后再關閉嗎?
如果發送確認的話問題二等同于:發送確認但還沒收到確認回復時,這中間收到了客戶端新的請求,這個請求是怎么處置的?
大家有沒有思考過,線上會有出現這種情況的可能性的!所以想學習清楚
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/21900.html
標籤:網絡協議與配置
