先说说大概的流程
- 输入URL
- 浏览器进行域名解析
- 服务器处理用户请求
- 网站处理
- 浏览器处理
- 绘制网页
对每一步的具体说明
输入URL:
- 什么是URL:URL的全称是Uniform Resource Locator,翻译过来就是统一资源定位符,说白了就是网站的网址,或者说域名。URL包含协议部分,是浏览器和www万维网之间的沟通方式,它会告诉浏览器正确在网路上找到资源位置。常见的协议有http、https、ftp、file等。其中http是最常见的网络传输协议,而https则是进行加密的网络传输。
浏览器进行域名解析
- 也就是DNS解析。DNS解析的过程如下:浏览器会依次从浏览器缓存、系统缓存、路由器缓存、IP DNS 缓存中查找是否有缓存的DNS信息,若没找到目标URL对应的IP的话,就会向根域名DNS服务器查找目标URL的对应IP,根域名服务器会向下级服务器转送请求,层层下发,直至找到对应IP为止
服务器处理用户请求
- 什么是服务器?服务器就是一台机器安装系统的机器,每个服务器里都安装有处理请求的应用——web server。常见的web server产品有apache、nginx、IIS或Lighttpd等。
- web服务器接收用户的Request 交给网站代码,或者接受请求反向代理到其他 web服务器
网站处理
- web服务器接收用户的Request 交给网站代码,然后返回后台程序处理产生的结果作为响应。网站处理实际上就是这里的后台程序处理。后台程序处理时大部分都会用到MVC框架
- MVC框架:将应用程序分成三个核心部件:模型(model)-- 视图(view)--控制器(controller),它们各自处理自己的任务,实现输入、处理和输出的分离。前端的主要工作就是视图view部分
- 总结而言,网站处理这一步是这样的:首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回html字符串给浏览器
浏览器处理
- HTML字符串被浏览器接受后被一句句读取解析:
解析到link 标签后重新发送请求获取css
解析到 script标签后发送请求获取 js,并执行代码
解析到img 标签后发送请求获取图片资源
绘制网页
浏览器根据 HTML 和 CSS 计算得到渲染树(DOM树的可视化表示),绘制到屏幕上,js也 会被执行,最终完成了整个页面的展示
参考:饥人谷_huangyh_max
说说从URL输入到页面展现的过程
http://www.jianshu.com/p/58e4597f9c7d