小结:地址栏输入url地址 -> 进行DNS解析 -> 建立TCP连接 -> 发送http/https请求 -> 服务器返回数据 -> 浏览器解析并渲染页面 -> 断开TCP连接
用户在地址栏输入地址后回车,
- 浏览器校验输入信息
- 校验是否是合法URL
- 合法则校验URL是否完整。如果不完整的话,可能对地址进行猜测,补全前缀或者后缀。
- 不合法的话,则会将输入信息作为查询内容使用默认浏览器查询。
- 域名DNS解析成IP地址
- 检查浏览器缓存和本地hosts文件是否有这个网址记录;
- 没有则采用TCP/IP参数设置中的DNS服务器查询。如果查询结果在本地配置资源中,则直接返回解析结果;
- 还没有则检查本地DNS服务器是否缓存该网址的记录,有则返回;
- 如果还没有,本地DNS服务器发送查询报文到DNS根服务器,返回顶级域服务器地址;然后本地DNS服务器向顶级域服务器发起查询,返回权威域服务器地址;再然后本地DNS服务器向权威域服务器发起查询,拿到ip地址。
- 通过TCP三次握手建立TCP连接
- 发送HTTP请求。如果使用HTTPS,会在TCP和HTTP中间加一层协议,用于加密与认证。HTTPS采用ssl和tls协议。
- 服务响应请求(服务端也会有很多处理。)。
- 浏览器并渲染页面。大概是构建HTML dom树,构架CSS dom树,合并两棵树为一棵渲染树,根据渲染树计算每个节点的几何信息,将各个节点渲染到屏幕上。
- 断开TCP连接,四次挥手(长连接)。