from输入网址to页面展现

我们先思考一个问题:你打开浏览器,输入 baidu.com,页面展示百度首页。整个过程发生了什么?

1.在浏览器输入URL - 2.域名解析 - 3.服务器处理 - 4.网站处理 - 5.浏览器处理

当你输入一个URL时,浏览器其实并不知道你输入的是什么意思,它需要先找到域名所在的服务器IP地址。这个过程叫域名解析,它的流程是1.先查找浏览器缓存,浏览器会缓存DNS的记录一段时间。2.若1没找到,则在系统缓存中查找,系统缓存记录了一些域名和对应的IP。 3. 若2没找到,则查看路由器缓存,路由器会缓存你或者别人访问过的域名。 4.若3没找到,则从ISP DNS中查找,即运营商的DNS。5.若4没找到,则向根域名服务器一层一层向下查找,直到找到IP。

这里另外要说明两个点:1. 电脑上不了网,为什么修改DNS为8.8.8.8或114.114.114.114? 8.8.8.8为谷歌的DNS,修改之后可以省掉中间的一些步骤,比如不用去运营商的DNS查缓存。  2. DNS劫持是什么?黑客通过攻击某个节点服务器,比如运营商的DNS,此时当你输入一个真域名时,从被攻击的节点返回给你一个假IP。

找到IP之后也找到了相应的Web服务器,Web服务器如Apache, Nginx等会接收用户的请求,通过配置文件将对应的网站代码发回去。


web服务器通过nginx的配置文件找到对应的网站代码

web服务器处理完请求后将代码交至网站后台处理。网站是一个MVC模型(model模型- view视图 - controller控制器)。

网站处理流程

代码运行时,路由器发现有/users请求,则交给users控制器,控制器会要求模型读取所有用户,模型会从数据库读取所有用户然后将用户列表返回给控制器,控制器再把信息传入视图,视图则会把页面渲染成html返回浏览器。

接下来就该浏览器处理,它将一句句解析html,然后获取css和js。全部加载完毕就会有一个完整的页面展现了。

你可能感兴趣的:(from输入网址to页面展现)