[英]Slow HTTP vs Web Sockets - Resource utilization
如果一堆與服務器的“慢速HTTP”連接會消耗大量資源以致導致拒絕服務,為什么一堆Web套接字與服務器不會引起相同的問題?
對另一個SO問題的公認答案是,保持空閑連接幾乎是免費的。
如果維護開放的TCP連接不花任何錢,為什么“慢速HTTP”會導致拒絕服務?
WebSocket和“慢速” HTTP連接都使用開放連接。 不同之處在於對服務器設計的期望。
典型的HTTP服務器不需要處理大量打開的連接,而是根據打開連接的數量很少的假設進行設計的。 如果服務器不能保護客戶端免受低速客戶端的攻擊,則攻擊者可以強迫根據該假設設計的服務器達到資源限制。
以下是一些示例,顯示了不同的期望如何影響設計:
如果一次只運行幾個HTTP請求,則每個連接都可以使用線程。 對於WebSocket服務器,這不是一個好的設計。
默認文件描述符限制通常足以滿足典型的HTTP場景,但不適用於大量連接。
可以設計一個HTTP服務器來處理大量打開的連接,而幾個服務器則是開箱即用的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.