面試官:為什么要合并 HTTP 請求?
來源:https://www.jianshu.com/p/9a3f0e84c2b0
思考路徑:
1. Client發(fā)出請求
1.1 HTTP 1.1
1.2 TCP丟包問題
1.3 瀏覽器線程數(shù)限制
1.4 DNS緩存問題
每次請求都需要找DNS緩存,多個請求就需要查找多次,而且緩存有可能被無故清空
2. 服務器處理請求
每個請求需要使用一個連接,建立一個線程,分配一部分CPU, 對于CPU而言,是種負擔,尤其是一般來說建立了連接以后,哪怕發(fā)回了請求,這個連接還會保持一段時間才會timeout。
這種時候,維持連接是對服務器資源的一種巨大的浪費。
3. HTTP 2.0
就是這么酷炫,HTTP/2多了很多特性來解決HTTP/1.1的很多問題
3.1 Fully multiplexed
另外,HTTP 系列面試題和答案全部整理好了,微信搜索互聯(lián)網(wǎng)架構(gòu)師,在后臺發(fā)送:2T,可以在線閱讀。
3.2 Header Compression
4. 總結(jié)
It’s a trade-off. 其實最重要的是看你傳輸什么東西,因為合并HTTP請求實質(zhì)上是減少了網(wǎng)絡(luò)延時,但是如果你在服務器上處理的時間遠遠大于網(wǎng)絡(luò)延時的時間的時候,那么合并HTTP請求并不會給你帶來很多性能上的提升。
而且大數(shù)據(jù)量的傳輸一定會降低瀏覽器的cache hit rate,對于緩存的利用率會降低很多。但是對于HTTP請求攜帶的數(shù)據(jù)量比較少的情況,合并請求帶來的性能提升會是顯而易見的。
https://www.zhihu.com/question/34689035
https://www.zhihu.com/question/34401250
https://deliciousbrains.com/performance-best-practices-http2/
https://www.tutorialdocs.com/article/merge-parallel-http-request.html
感謝您的閱讀,也歡迎您發(fā)表關(guān)于這篇文章的任何建議,關(guān)注我,技術(shù)不迷茫!小編到你上高速。
正文結(jié)束
1.不認命,從10年流水線工人,到谷歌上班的程序媛,一位湖南妹子的勵志故事
3.從零開始搭建創(chuàng)業(yè)公司后臺技術(shù)棧
5.37歲程序員被裁,120天沒找到工作,無奈去小公司,結(jié)果懵了...
6.IntelliJ IDEA 2019.3 首個最新訪問版本發(fā)布,新特性搶先看
一個人學習、工作很迷茫?
點擊「閱讀原文」加入我們的小圈子!

