1,用户输入url,浏览器获取到url
2,浏览器的应用层对url进行DNS解析
3,根据解析到的IP地址加端口 ,浏览器发起http请求,请求包括 header body
header包括
①,请求方法(post get等)
②,请求协议(http,https,ftp等)
③ ,请求地址 url
④,一切必要的其他信息 缓存 cookie等
body包括:
请求的内容
4,http请求到达传输层,TCP协议为传输报文提供安全可靠的字节流传输服务,它通过3次握手等手段来保证传输过程的安全可靠,将大段数据分割成一个个报文段的方式提供大量数据的便携传输
5,到达网络层,网络层通过ARP寻址得到接收方的Mac地址,ip协议再把分割的一个个数据包传输接收方
6,数据到达数据链层,请求阶段完成
7,接收方在数据链层接收到数据包,层层传递到应用层,获取请求报文
8,接收方收到发送方的http请求之后,进行html页面的寻找并响应发送报文
9,发送方收到响应报文之后,如果报文中的状态码是请求成功,则接受返回的资源,进行页面渲染
浏览器是如何渲染页面的
1,浏览器通过HTML parse 根据深度遍历的原则把html 节点遍历成DOM tree
2,将css 解析成CSS DOM tree
3,将DOM tree 和 css DOM tree 构造 render tree
4,layout 根据得到的render tree 计算所有节点在屏幕中的位置
5,paint 遍历render tree 并调用硬件API来绘制所有节点