Slowloris đo thật: 400 kết nối gửi một byte mỗi 500 ms, chỉ 6,4 Kbit mỗi giây, làm server Go không timeout trèo lên 252 goroutine và từ chối 80% client thật; ReadHeaderTimeout dọn sạch, giới hạn 50 kết nối mỗi IP thì không cả spike
Một client mở 400 kết nối tới server Go và gửi header nhỏ giọt một byte mỗi 500 ms, không bao giờ hoàn tất request. Server http.Server{} mặc định không timeout: trèo lên 252 goroutine, cạn file descriptor với 37 lần too many open files, client thật rớt từ 20/20 còn 2/10. Thêm ReadHeaderTimeout 3 giây: spike 252 goroutine trong 2 giây rồi timeout đóng hết, goroutine về 2, client thật 10/10. Thêm giới hạn 50 kết nối mỗi IP ở tầng Accept: 350 trên 400 bị đóng ngay, 0 lần cạn file descriptor. Băng thông tấn công chỉ 6,4 Kbit mỗi giây.