用户打开浏览器,输入 baidu.com,页面展示百度首页。整个过程发生了什么?

一,输入URL

二,域名解析

  • 1,浏览器缓存 – 浏览器会缓存DNS记录一段时间
  • 2,系统缓存 - 从 Hosts 文件查找是否有该域名和对应 IP
  • 3,路由器缓存 – 一般路由器也会缓存域名信息
  • 4,ISP DNS 缓存 – 比如到电信的 DNS 上查找缓存
  • 5,如果都没有找到,则向根域名服务器查找域名对应 IP,根域名服务器把请求转发到下一级,知道找到 IP

三,服务器处理

服务器是一台安装系统的机器,常见的系统如Linux、windows server 2012系统里安装的处理请求的应用叫 Web server
Web server是一个统一管控的工具。结合配置文件,Web server把接收到的用户请求交给网站代码,或者接受请求反向代理到其他Web server,然后返回后才程序处理的结果。

四,网站处理

网站处理,就是实际后台处理的工作。后台开发现在有很多框架,但大部分都还是按照MVC模式进行搭建的。
首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回html字符串给浏览器

五,浏览器处理

HTML字符串被浏览器接受后被一句句读取解析:
解析到link 标签后重新发送请求获取css
解析到 script标签后发送请求获取 js,并执行代码
解析到img 标签后发送请求获取图片资源

六,绘制网页

浏览器根据 HTML 和 CSS 计算得到渲染树,绘制到屏幕上js 会被执行

你可能感兴趣的:(用户打开浏览器,输入 baidu.com,页面展示百度首页。整个过程发生了什么?)