lxinr/interview-question

2021/03/06 - HTTP1.1 如何解决 HTTP 的队头阻塞问题

Opened this issue · 0 comments

lxinr commented

队头阻塞: 当单个(慢)对象阻止其他/后续的对象前进时

HTTP传输是基于请求-应答的模式进行的,报文必须是一发一收,但值得注意的是,里面的任务被放在一个任务队列中串行执行,一旦队首的请求处理太慢,就会阻塞后面请求的处理

并发连接

对于一个域名允许分配多个长连接,那么相当于增加了任务队列,不至于一个队伍的任务阻塞其它所有任务。在RFC2616规定过客户端最多并发 2 个连接,不过事实上在现在的浏览器标准中,这个上限要多很多,Chrome 中是 6 个

域名分片

在一个域名test.com下分多个二级域名,如static.test.comapi.test.com等,它们可以指向同一个服务器,这样就能并发更多的长连接