从用户打开浏览器,输入 baidu.com开始,到最后页面出展示百度首页结束,这中间都发生了什么呢?
第一步 在浏览器输入url
url是统一资源符,包括http(明文),https(加密),ftp,file等。
首先,用户在这里输入了http://baidu.com,这一整串就构成了一个url,这样就完成了整个过程的第一步。
第二步 域名解析
IP是Internet Protocol外语缩写。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。IP地址具有唯一性。
根据域名 baidu.com 查找所在的IP地址,才能找到目标,找到目标之后,开始传用户的Request。
域名解析流程大致如下:
1.浏览器缓存 - 浏览器会缓存DNS记录一段时间
2.系统缓存 - 从Hosts文件查找是否有该域名和对应IP
3.路由缓存 - 一般路由器也会缓存域名信息
4.ISP DSN缓存 - 比如到电信的DNS上查找域名
5.如果没找到,→根据域名服务器查找→请求转到下一级
第三步 服务器处理
服务器是一台安装系统的机器,例如Linux,windows server 2012,其中系统安装了处理请求的应用 web server
在通过域名解析找到百度后,用户的Request传给了百度的web服务器。web服务器在接收到用户的Request之后,交给网站代码,或者接受请求再反向代理到其他web服务器。
第四步 网站处理流程
MAC模型(model)-视图(view)-控制器(controller)
浏览器发送请求,经由路由匹配交给控制器,调用模型接口来获取所需的数据,再将数据填到视图中对应的HTML模板,再传回浏览器。