从URL输入到页面展示大体经过了以下几个流程
1 . 输入URL
- URL:统一资源定位符,是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示。
URL包含以下几部分:协议、服务器名称(或IP地址)、路径、参数和查询。
- 域名解析
- 我们需要将域名转化为对应的IP地址,如何实现呢?首先是查看浏览器以及系统有没有这个IP地址的缓存,若果没有,查看本地hosts文件(用来保存域名以及域名对应的IP地址),如果还是没有,则询问本地域名服务器,还是没有,则询问根域名服务器。这种过程直至找到能够回答该请求的域名服务器为止。
- 浏览器与服务器建立连接,并发送请求给服务器
- 当浏览器得到域名对应的IP地址后,则会使用TCP协议,和服务器建立连接(三次握手)。
和服务器建立连接后,浏览器则会使用相关协议(http或https),向服务器发送请求。
HTTP协议请求方法主要有:get、post、put、delete等几种方式。
- 服务器收到请求并处理,最后返回结果
- 服务器是一台安装系统的机器,常见的系统如Linux、windows server 2012,系统中安装的处理请求的应用叫Web server。常见的Web服务器有 Apache、Nginx、IIS、Lighttpd,Web服务器接收用户的请求,或者接受请求反向代理到其他Web服务器。
(以MVC框架为例)当服务器收到来自用户的请求后,首先Controller(控制器)根据用户的请求调用相应的Model(模型)去处理用户请求相关的业务逻辑(包括对数据库的增删改查),然后将处理结果传递给对应的View(视图),构造显示页面(HTML文件)。最后服务器使用HTTP响应返回相应的资源(HTML文件)。
- 浏览器处理响应
- 浏览器收到来自服务器的响应后,会将响应中的HTML字符串一句句读取解析,解析到link标签后重新发送请求下载css文件,解析到script标签后重新发送请求下载js文件,并执行代码,解析到img标签后重新发送请求获取图片资源。
浏览器根据html、css计算得到渲染树,结合相关js的执行结果,最终将网页绘制到屏幕上。