当我们在浏览器中输入一个 url 时,背后都发生了什么,想要弄明白这个问题首选我们要知道浏览器的工作原理是什么?
浏览器的工作原理就是,web 浏览器与 web 服务器之间通过 http 协议进行通讯的过程,c/ s 的握手协议就是 http 协议
浏览器接受到一个 url 之后发生的过程大致如下图:
接下来说下 html 里的内嵌资源是如何请求加载的 html 的内嵌请求资源主要就是 js,css,image
1.js 和 css 的资源加载都是串行的,因为浏览器需要一个稳定的 dom 树结构,js 中很有可能有代码会改变 dom 结构,浏览器为了防止这种情况就会阻止其他下载和呈现
2. 因为 js 有语法定义,如果一个 html 里引用多个 js 文件的情况下,第二个文件里的函数很有可能引用了第一个文件里的变量和函数,此时如果先加载了第二个 js 浏览器就会解释错误,所以 js 要按照顺序串行加载,我们开发者在写代码时也要注意 js 的书写顺序
3.css 的加载也是串行的,原理和 js 一样
4. 图片的加载是并行的,可以同时加载几个,并且加载完成以后立即显示