用户打开浏览器,输入 baidu.com,页面展示百度首页。整个过程发生了什么?
一共完成了7步骤:
1、输入baidu.com,回车
2、域名解析
浏览器首先按以下顺序检查缓存中的DNS记录,如果存在即返回对应的IP
浏览器缓存
系统缓存(hosts文件)
路由器缓存
ISP缓存
如果请求的URL不在缓存中,本地域名服务器会向根域名服务器发送一个请求。如果不存在,转发给下一级查询,顺序如下:
根域名服务器
COM顶级域名服务器
baidu.com域名服务器
3、浏览器与服务器建立连接
一旦浏览器收到正确的IP地址,它将与服务器建立TCP连接。使用称为TCP/IP三次握手的过程建立此连接以进行数据传输。
![](https://img.haomeiwen.com/i3184973/b35c52032d8a9024.png)
4、web浏览器发送http请求
常见web服务器有:Apache.Nginx、IIS、Lighttpd
web服务器把访问需求转到百度公司网站
5、web浏览器处理请求并返回http响应
web服务器接收HTTP请求,由控制层处理逻辑,从数据库取得模型,视图层组装页面,返回HTTP响应
![](https://img.haomeiwen.com/i15178799/6babce2510e0b855.png)
6、浏览器接收http响应
状态码:
1xx 指示信息–表示请求已接收,继续处理。
2xx 成功–表示请求已被成功接收、理解、接受。
3xx 重定向–要完成请求必须进行更进一步的操作。
4xx 客户端错误–请求有语法错误或请求无法实现。
5xx 服务器端错误–服务器未能实现合法的请求。
Html字符串被浏览器接收后被一句句读取解析
解析到link标签后重新发送请求获取css
解析到script标签后发送请求获取js,并执行代码
解析到img标签后发送请求获取图片资源
7、浏览器渲染页面
浏览器根据Html和css计算得到渲染树,绘制到屏幕上js会被执行 百度把网站内容返回到用户,浏览器再把html字符串读取解析再进行渲染绘制在屏幕上
网友评论