浏览器输入 baidu.com,页面展示百度首页的过程
by饥人谷_凛冬
第一步:在浏览器中输入baidu.com
baidu.com
第二步:域名解析
浏览器实际上不知道baidu.com是什么,需要查找baidu.com网站所在服务器IP地址才能找到目标
域名解析流程
浏览器会通过下几个方式来查找baidu.com域名及其对应的IP
1.浏览器缓存-浏览器会缓存DNS记录一段时间。
2.系统缓存-从host查找是否有对应域名和IP。
3.路由器缓存-一般路由器也会缓存域名信息。
4.ISP DNS缓存-比如到电信的DNS查找缓存。
5.如果都没有找到,则向根域名服务器查找域名对应IP,根域名服务器把请求转发到下一级,直到找到目标IP.
第三步:服务器处理
服务器是一台安装系统的机器,常见的系统如Linux、windows server 2012
系统里安装的处理请求的应用叫 Web server
web服务器接收用户的Request交给网站代码,或者接受请求反向代理到其他web服务器
第四步:网站处理流程
1.浏览器向 /users 发送请求;
2.Rails 的路由把 /users 交给 Users 控制器的 index 动作处理;
3.index 动作要求 User 模型读取所有用户(User.all);
4.User 模型从数据库中读取所有用户;
5.User 模型把所有用户组成的列表返回给控制器;
6.控制器把所有用户赋值给 @users 变量,然后传入 index 视图;
7.视图使用嵌入式 Ruby 把页面渲染成 HTML;
8.控制器把 HTML 送回浏览器
浏览器处理
-
HTML字符串被浏览器接受后被一句句读取解析
-
解析到link 标签后重新发送请求获取css
-
解析到 script标签后发送请求获取 js,并执行代码
-
解析到img 标签后发送请求获取图片资源
-
浏览器根据 HTML 和 CSS 计算得到渲染树,绘制到屏幕上
-
js 会被执行
-最终baidu.com页面会显示
网友评论