URL是什么
URL含义:统一资源定位符,用于定位互联网上的资源。如同在网络上的门牌,是因特网上标准的资源的地址(Address),互联网上的每个文件都有一个唯一的URL,俗称网页地址。
URL组成:URL由协议,域名,端口,文件路径组成
例子:http://baidu.com:8080/news/index.asp
- 协议:传输的协议,比如http、https、ftp、file 协议
- 域名:baidu.com即为域名,一个URL中,也可以使用IP地址作为域名使用
- 端口:跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口
- 路径:news/index.asp即为url的路径
输入URL到页面展现的过程
一.输入URL
首先在浏览器输入URL,比如http://www.baidu.com
二.域名解析
对于 http://www.baidu.com的URL, 浏览器实际上不知道 www.baidu.com到底是什么东西,需要查找baidu.com网站所在服务器的IP地址,才能找到目标。
寻找过程:
- 浏览器缓存,浏览器会缓存DNS记录一段时间
- 系统缓存 - 从 Hosts 文件查找是否有该域名和对应 IP
- 路由器缓存 – 一般路由器也会缓存域名信息
- ISP DNS 缓存 – 比如到电信的 DNS 上查找缓存
- 如果都没有找到,则向根域名服务器查找域名对应 IP,根域名服务器把请求转发到下一级,直到找到 IP
三.服务器处理
服务器是什么?
服务器是一台安装系统的机器,常见的系统如Linux、windows server 2012。系统里安装的处理请求的应用叫 Web server。常见的 web服务器有 Apache、Nginx、IIS、Lighttpd。
web服务器的作用?
浏览器把用户发起的HTTP请求发送给服务器后,Web server会进而在它做自己的存储空间中搜索所请求的文件(因为同一个服务器地址,有时候可能同时绑定了多个域名,此时需要配置web服务器将请求转给相应的端口)。当找到这文件时,这个服务器会读取它,按需处理它,并且把它传送回浏览器。Web server就相对于起到了内容分发的作用,为不同域名的用户请求展示其相应的内容,如下图。
四.网站处理
这一步指的是网站后台处理数据反馈给浏览器之前的过程,常见的处理模型有MVC 模型(model)-视图(view)-控制器(controller),控制器从数据模型中拿到数据,再从试图中拿到HTML,经过处理,返回html字符串给浏览器。
五.浏览器处理
HTML字符串被浏览器接受后被一句句读取解析
解析到link 标签后重新发送请求获取css
解析到 script标签后发送请求获取 js,并执行代码
解析到img 标签后发送请求获取图片资源
六.绘制网页
浏览器根据 HTML 和 CSS 计算得到渲染树,绘制到屏幕上,并且js 会被执行