网站从URL输入到页面展现的六个步骤:
第一步、输入URL
URL是什么
统一资源定位符(Uniform Resource Locator,缩写为URL),又叫做网页地址,是互联网上标准的资源的地址(Address)。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。它最初是由蒂姆·伯纳斯-李发明用来作为万维网的地址的。现在它已经被万维网联盟编制为因特网标准RFC1738了。统一资源定位符的开始,一般会标志着一个计算机网络所使用的网络协议。
URL的几个部分
百度完整的URL地址:https://www.baidu.com/link?url=sofXEgyeLzeisB_YfK4BQmywO9kRUuUrCNxYWtf0fI-8sQ1ZtanCPsip2xchhicn&wd=&eqid=e87ea4c90011764d000000065d4fc73f
协议部分
在该URL中,协议部分为(https://),这代表该网页使用的是https协议。在Internet中可以使用多种协议。
常见的协议有:
-
http:// (超文本传输协议,信息是明文传输)
-
https:// (网络加密的超文本传输协议)
-
file:// (本地文件传输协议,file协议主要用于访问本地计算机中的文件)
-
ftp:// (文件传输协议)
-
mailto: (资源为电子邮件地址,通过SMTP访问)
还有一种URL前面没有加指定协议,它是指获取该资源需要使用的协议与当前的URL是保持一致的。
域名部分
用来确定服务器在互联网上的位置,域名的目的是便于记忆和沟通的一组服务器的地址,是唯一不可重复的。
域名一般也分三个级别域名
一级域名(顶级域名):比如.com .cn
二级域名:http://baidu.com http://qq.com
三级域名:http://www.baidu.com http://www.qq.com
例子中
http://www.baidu.com是二级域名
.com 供商用的国际域名
.cn 供商用的中文域名
.net 用于网络供应服务商(系统类的经常使用net域名)
.org 用于官方组织
.edu 用于教育院校
.gov 用于政府机构
端口号
用来区分同一台服务器上不同服务的标识(基于web服务管理创建服务的时候可以指定),不同服务之间一般是不能使用相同的端口号的。
HTTP => 默认端口号80
HTTPS => 默认端口号443
FTP => 默认端口号21
如果当前网络服务,采用的是协议对应的默认端口管理,那么当用户输入网址的时候可以不指定端口号,浏览器会默认帮用户把默认的端口传递给服务器。(开发者在服务器上发布服务的时候需要指定端口) 一台服务器上的端口号范围:0~65535之间
webstorm预览页面:http://localhost:63342/QQMusicWebApp.html/ webstorm预览页面:webstorm把自己的电脑当做服务器,在服务器上创建一个服务,端口号是63342,自己电脑上的浏览器预览自己电脑上的服务,属于本机服务请求,用localhost(127.0.0.1)本地域名即可。
服务器上安装一款应用都可能会作为一个服务,占用一个端口号。
问号传参及哈希值
?xx=xxx这是问号传参,在HTTP事务中,问号传参是客户端把信息传递给服务器的一种方式(也有可能是跳转到某一个页面,把参数值传递给页面用来标识的)。 #xxx这是哈希值,哈希值一般都是跟用户端服务器交互没啥关系,主要用于页面中的锚点定位和HASH路由切换。
第二步、域名解析
DNS是什么
域名系统(Domain Name System缩写DNS,Domain Name被译为域名)是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。DNS系统是为解析域名为 IP 地址而存在的。
IP 网络协议(英语:Internet Protocol)。
IP分为内网和外网。
内网(也称局域网),是几台或者几十台电脑之间互相连接用于资源共享的网络,家庭、单位所使用的网络一般都是内网。内网中的设备使用内网 IP,一般来说这个 IP 的格式都是 http://192.168.xxx.xxx。
外网(也称广域网),在单位、家庭之外有覆盖范围极大的网络,比如internet,这个大网络延伸到了我们的单位、家庭(通过光纤、网线、电话线等)。我们把自己的局域网连接到internet上,那么我们的访问范围就从局域网扩展到了整个internet。这时候,就说局域网是内网,internet是外网。
内网和外网就像两个隔绝的空间,无法互通,唯一的联通点就是路由器(因为路由器既有外网 IP 也有内网 IP),所以路由器有时候也被叫做网关。
每个处于互联网的机器都有IP地址,比如192.168.0.1,127.0.0.1代表着本机的IP地址。
域名解析的流程
浏览器缓冲—浏览器会缓存DNS记录一段时间系统缓存—从Hosts文件查找是否有该域名和对应IP路由器缓冲—一般路由器也会缓存域名信息ISP DNS缓存—比如到电信的DNS上查找缓存如果都没有找到,则向根域名服务器查找域名对应IP,根域名服务器把请求转发到下一级,直到找到IP
第三步、服务器处理
服务器是一台安装系统的机器,系统里安装的处理请求的应用叫Web server
常见的web服务器有Apache、Nginx、IIS、Lighttpd
web服务器接收用户的Request交给网站代码,或者接收请求方向代理到其他web服务器
第四步、网站处理流程
MVC模型(model)—视图(view)—控制器(controller)
第五步、浏览器处理
HTML字符串被浏览器接受后被一句句读取解析解析到link标签后重新发送请求获取CSS解析到script标签后发送请求获取JS,并执行代码解析到img标签后发送请求获取图片资源
第六步、绘制网页
浏览器根据HTML和CSS计算得到渲染树,绘制到屏幕上,JS会被执行。