浏览器为什么要请求并发数限制?
参考答案:
1.对操作系统端口资源考虑
PC总端口数为65536,那么一个TCP(http也是tcp)链接就占用一个端口。操作系统通常会对总端口一半开放对外请求,以防端口数量不被迅速消耗殆尽。
2.过多并发导致频繁切换产生性能问题
一个线程对应处理一个http请求,那么如果并发数量巨大的话会导致线程频繁切换。而线程的上下文切换有时候并不是轻量级的资源。这导致得不偿失,所以请求控制器里面会产生一个链接池,以复用之前的链接。所以我们可以看作同域名下链接池最大为4~8个,如果链接池全部被使用会阻塞后面请求任务,等待有空闲链接时执行后续任务。
3.避免同一客服端并发大量请求超过服务端的并发阈值
在服务端通常都对同一个客户端来源设置并发阀值避免恶意攻击,如果浏览器不对同一域名做并发限制可能会导致超过服务端的并发阀值被BAN掉。
4.客户端良知机制
为了防止两个应用抢占资源时候导致强势一方无限制的获取资源导致弱势一方永远阻塞状态。
题目要点:
作答思路:
浏览器对请求并发数进行限制,主要是出于以下几个考虑要点:
服务器压力:限制并发数可以减轻服务器的负载,防止服务器因处理过多请求而过载。
资源分配:合理分配网络资源,确保浏览器可以同时处理多个请求,但不至于消耗过多带宽。
用户体验:避免因等待过多响应而影响用户体验,平衡页面加载和响应时间。
安全性:防止恶意用户通过发起大量请求来攻击网站,实施拒绝服务攻击(DoS攻击)。
公平性:确保不同用户和不同网站之间的请求能够公平地竞争网络资源。
浏览器性能:避免浏览器自身因处理过多并发请求而出现性能瓶颈或崩溃。