从url输入到页面展现的过程
url输入到页面展现的过程大概分为以下几步:
1.浏览器中输入url
2.域名解析
3.服务器处理
4.网站处理
5.浏览器处理
6.绘制网站
一、url是什么
URL(Uniform Resource Locator的缩写,统一资源定位符)用于定位互联网上的资源。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
基本URL包含协议、服务器名称(或IP地址)、路径和文件名。
常见的协议有http、https、ftp、file。
二、域名解析
域名解析是把域名解析为IP地址。
什么是IP地址?
IP地址是一个32位二进制数的地址, 由4个8位字段组成,是IP协议提供的一种统一的地址格式。它为互联网上的每一个网络和每一台主机分配一个逻辑地址。
什么是域名?
由于IP地址是数字标识,使用时难以记忆和书写,因此在IP地址的基础上又发展出一种符号化的地址方案,来代替数字型的IP地址。每一个符号化的地址都与特定的IP地址对应,这样网络上的资源访问起来就容易得多了。这个与网络上的数字型IP地址相对应的字符型地址,就被称为域名。
什么DNS?
DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。
域名解析流程如下:
1.浏览器缓存 – 浏览器会缓存DNS记录一段时间
2.系统缓存 - 从 Hosts 文件查找是否有该域名和对应IP。
3.路由器缓存 – 一般路由器也会缓存域名信息。
4.ISP DNS 缓存 – 比如到电信的 DNS 上查找缓存。
5.向根域名服务器查找域名对应 IP,根域名服务器把请求转发到下一级,直到找到IP
三、服务器处理
服务器是一台安装系统的机器,常见的系统如Linux、windows server2012等
系统里安装的处理请求的应用叫 Web server(web服务器)
常见的web服务器有 Apache、Nginx、IIS、Lighttpd
web服务器接收用户的Request交给网站代码,或者接受请求反向代理到其他web服务器
四、网站处理
MVC 模型(model)-视图(view)-控制器(controller)
五、浏览器处理
HTML字符串被浏览器接受后被一句句读取解析
解析到link 标签后重新发送请求获取css
解析到 script标签后发送请求获取 js,并执行代码
解析到img 标签后发送请求获取图片资源
六、绘制网页
浏览器根据 HTML 和 CSS 计算得到渲染树,绘制到屏幕上,js会被执行。