Comments (2)
域名收敛是什么?
PC 时代为了突破浏览器的域名并发限制。有了域名发散。
-
浏览器有并发限制,是为了防止DDOS攻击。
-
域名收敛:就是将静态资源放在一个域名下。减少DNS解析的开销。
-
域名发散:是将静态资源放在多个子域名下,就可以多线程下载,提高并行度,使客户端加载静态资源更加迅速。
-
域名发散是pc端为了利用浏览器的多线程并行下载能力。而域名收敛多用与移动端,提高性能,因为dns解析是是从后向前迭代解析,如果域名过多性能会下降,增加DNS的解析开销。
为什么浏览器要做并发限制呢?
-
究其根本原因,在以前,服务器的负载能力差,稍微流量大一点服务器就容易就崩溃。所以为了保护服务器不被强暴到崩溃,浏览器要对 max connections(最大并发数)进行限制。如果每个用户的最大并发数不限制的话,服务器的负载能力会大幅下降。
-
另外还有一个方面就是, 防止 DDOS 攻击。最基本的 DoS 攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应。如果不限制并发请求数量,后果,啊哦,你懂的。
主流浏览器支持并发数
上图展示了各浏览器的并行连接数(同域名),可以看到在一些现代浏览器内每个 hostname 的最大连接数基本都是6个,IE 稍显傲娇,总体而言并发数不高。
所以 PC 时代对静态资源优化时,通常将静态资源分布在几个不同域,保证资源最完美地分域名存储,以提供最大并行度,让客户端加载静态资源更为迅速。
参考资料:
from web-problem.
http 请求过程
使用一个 http 请求去请求一个资源时,会经历些什么。简单而言:
-
DNS 域名解析 -->
-
发起 TCP 的 3 次握手 -->
-
建立 TCP 连接后发起 http 请求 -->
-
服务器响应http请求,浏览器得到html代码 -->
-
浏览器解析html代码,并请求html代码中的资源(如js、css、图片等)-->
-
浏览器对页面进行渲染呈现给用户
在这里第一步,也是关键的第一步 DNS 解析,在移动端的 http 请求耗时中,DNS 解析占据了大部分时间。
from web-problem.
Related Issues (20)
- 第一期《meta viewport原理》 HOT 4
- 第三期《float 与 display:inline-block的区别是什么》 HOT 7
- 第四期《前端跨域解决》 HOT 8
- 第五期《web缓存》 HOT 11
- 第六期《css优化》 HOT 3
- 第七期《WebAssembly给前端带来了什么》 HOT 7
- 第八期《websocket原理与应用》
- 第九期《PWA 是什么、给我们带来了什么?》
- 第十期《作用域链》
- 第十一期《http1.0、http1.1、http2、https》 HOT 4
- 第十二期《es7装饰器介绍》 HOT 1
- 第十三期《javascript版排序二叉树》 HOT 2
- 第十四期《js中数组排序方法》
- 第十五期《css3动画》
- 第十六期《svg学习》
- 第十七期《canvas学习》
- 第十八期《vue.nextTick实现》 HOT 5
- 数据结构/算法 HOT 1
- 为什么vue不需要fiber
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from web-problem.