从URL输入到页面展现的过程
2017-03-31 本文已影响0人
飘飘流浪者
当我们在浏览器输入一个URL,到浏览器展现给我们想要的页面并可以操作,这其中大致经历了6个步骤:
1. 在浏览器输入URL
2. 域名解析
3. 服务器处理
4. 网站处理
5.浏览器处理
6. 绘制网页
1. 输入URL
URL,即Uniform Resource Locator,统一资源定位符,顾名思义,其为可定位互联网上资源的地址符号。URL的基本元素有:传输协议、域名、端口号等。常用的传输协议有:
- HTTP(hyper text transport protocol):超文本传输协议。
- FILE:本地文件传输协议。是从用户自己计算机上获取文件的一种方法.
- FTP(file transfer protocol):文件传输协议。它是为用户与文件服务器之间进行相互传输文件服务的。
- HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer):数据经过加密的超文本传输协议
若开头仅有//,则表示该URL协议与当前页面一致。
2. 域名解析
IP(Internet Protocol):即网络之间互联的协议。对于我们输入的URL,浏览器并不知道是什么,需要查找其所在IP地址才能找到目标。
每个处于互联网中的设备都有IP 地址,形如 192.168.0.1。
公网IP:是由国际互联网分配的唯一的IP地址,是个静态IP地址。
局域网IP:由路由器建立子网分配IP地址。
域名:由于IP字符不便于记忆和输入,所以通常设置一个域名与IP相对应,例如google的域名为:google.com。
域名解析的流程:
- 浏览器缓存 – 浏览器会缓存DNS记录一段时间
- 系统缓存 - 从 Hosts 文件查找是否有该域名和对应 IP。
- 路由器缓存 – 一般路由器也会缓存域名信息。
- ISP DNS 缓存 – 比如到电信的 DNS 上查找缓存。
- 如果都没有找到,则向根域名服务器查找域名对应 IP,根域名服务器把请求转发到下一级,知道找到 IP
3. 服务器处理
服务器是一台安装系统的机器,常见的系统如Linux、windows server 2012
系统里安装的处理请求的应用叫 Web server
常见的 web服务器有 Apache、Nginx、IIS、Lighttpd
web服务器接收用户的Request 交给网站代码,或者接受请求反向代理到其他 web服务器
4. 网站处理
网站处理遵循MVC流程,即模型(model)-视图(view)-控制器(controller)
- 模型(model): 将开发中的业务规则和数据格式进行模型化,可以被多个视图重用。
- 视图(view): 用户看到并与之交互的界面。这也是前端的主要工作范围。
- 控制器(controller): 从视图接收请求并决定调用哪个模型去处理请求,并确定用哪个视图来显示模型处理返回的数据。最后返回HTML字符串给浏览器。
5. 浏览器处理
HTML字符串被浏览器接受后被一句句读取解析
解析到link 标签后重新发送请求获取css
解析到 script标签后发送请求获取 js,并执行代码
解析到img 标签后发送请求获取图片资源
6. 绘制网页
浏览器根据 HTML 和 CSS 计算得到渲染树,绘制到屏幕上
js 会被执行