Http2
Windows 設置 Http2MaxSettingsPerMinute - 按連接或伺服器範圍計算?
在文章https://support.microsoft.com/en-us/help/4491420/define-thresholds-on-the-number-of-http-2-settings-parameters-exchange中,微軟描述了兩個新的 Windows 系統資料庫設置解決了惡意 HTTP/2 客戶端可以發送大量 HTTP/2 SETTINGS 參數以致伺服器耗盡 CPU 的問題。
Http2MaxSettingsPerMinute 系統資料庫設置的描述是
如果在一分鐘內收到的多個設置幀中包含的設置參數數量超過“Http2MaxSettingsPerMinute”值,則連接被終止。
我不清楚這個計數(“設置參數的數量”)是在每個連接上測量的,還是在整個伺服器上測量的。也就是說,如果我將 Http2MaxSettingsPerMinute 的系統資料庫值設置為 100,並且客戶端在一分鐘內啟動 20 個連接,每個連接有 5 個 SETTINGS,那麼該分鐘內第 21 次嘗試的連接會被終止嗎?或者只有當單個連接包括客戶端在一分鐘內發送超過 100 個設置時才會終止連接?
謝謝!
馬丁
您必須要求 Microsoft 絕對確定,但我肯定會將其視為每個連接限制。
文章的標題是(強調我的):
定義通過連接交換的 HTTP/2 設置參數數量的門檻值
如果這是一個伺服器級別的設置,我會期待這個:
如果在一分鐘內收到的多個設置幀中包含的設置參數數量超過“Http2MaxSettingsPerMinute”值,則連接被終止。
讀起來像:
如果在一分鐘內收到的多個設置幀中包含的設置參數數量超過“Http2MaxSettingsPerMinute”值,則超過該限制的連接將被終止。