从url到页面的最终展现可以大致分为下面几个部分:
DNS解析
简单来说就是把域名解析为ip地址,域名的作用是将网站的地址语义化便于记忆,计算机识别起来就需要先转换为ip地址了。首先在本地域名服务器中查询IP地址,如果没有找到的情况下,本地域名服务器会向根域名服务器发送一个请求,如果根域名服务器也不存在该域名时,本地域名会向com顶级域名服务器发送一个请求,依次类推下去。直到最后本地域名服务器得到google的IP地址并把它缓存到本地,供下次查询使用。
TCP连接及发送HTTP请求
HTTP协议是使用TCP作为其传输层协议的,当TCP出现瓶颈时,HTTP也会受到影响。发送HTTP请求的过程就是构建HTTP请求报文并通过TCP协议中发送到服务器指定端口(HTTP协议80/8080, HTTPS协议443)。
服务器处理请求并返回HTTP报文
后端从在固定的端口接收到TCP报文开始,这一部分对应于编程语言中的socket。它会对TCP连接进行处理,对HTTP协议进行解析,并按照报文格式进一步封装成HTTP Request对象,供上层使用。这一部分工作一般是由Web服务器去进行。
浏览器解析页面
HTML字符串被浏览器接受后被一句句读取解析
- 解析到link 标签后重新发送请求获取css
- 解析到 script标签后发送请求获取 js,并执行代码
- 解析到img 标签后发送请求获取图片资源
浏览器根据 HTML 和 CSS 计算得到渲染树,绘制到屏幕上,js 会被执行。
更加详细的介绍可以看下面这篇博客,对于原理方面的东西解释的很透彻。
网友评论