本文已参与「新人创作礼」活动,一起开启掘金创作之路。
入门级教程,请批评指正。
假设你在电脑上的Google Chrome浏览器中访问了某个公司的网页,让我们了解一下,你输入网址按下回车的那一瞬间发生了什么。
- DNS 寻址:浏览器根据你输入的URL中的域名部分查询DNS服务器,找到域名对应的主机IP地址。
是不是有超多不懂的?没关系,这里就是解释概念的地方!
- IP地址:就像你家地址一样,IP地址就是某一台主机在互联网上的地址,通常是一系列数字。
- 域名:域名同样相当于互联网上的地址。如果IP地址类似经纬度,那么域名就类似于街道地址了。相对于IP地址来说,域名更加方便人类识读。
- DNS:Domain Name System,专门负责提供域名和IP的对应查询的服务。
- URL:Uniform Resource Locator,统一资源定位符,说白了就是网址。简单来说,如果你想要找到互联网上的某个特定的资源(文件),光有目标主机的地址可不行,你还需要知道目标主机的访问协议、目标文件的位置(路由)和参数等等。URL的固定格式像这样:
协议://域名或IP地址:端口号/路由?查询参数字符串。举个例子:https://baike.baidu.com/item/统一资源定位系统这就是一个典型的URL,不过它省略了端口,并且没有查询字符串。
现在翻译一下上面那句话:浏览器去找一个接线员(DNS服务器)问一问:“某某地址的实际位置在哪里?”
- 请求:浏览器向目标地址发起http或者https协议的网络请求(TCP数据包),包含URL等信息,等待服务器回复。
- 协议:就是把数据打包成一种传输双方都能够看懂的形式。
- http:HyperText Transfer Protocol,超文本传输协议。超文本就是使用文本的方式传输超越文本的内容,例如图片、表格、布局等等。
- https:Hyper Text Transfer Protocol over SecureSocket Layer,简单理解就是加了一层加密算法的http协议,在这里不做详细论述。
- TCP:传输控制协议(Transmission Control Protocol),是传输层的协议,用于保持通信的完整通畅。
- 服务器:其实就是一台主机(电脑),目标资源(比如某个网页)存放在它的存储空间中。
- 服务器响应:服务器上运行的Web服务软件根据http协议的规则,返回URL中指定的资源(或者错误码)。在正常访问网页的时候通常是一个HTML格式的内容,对于静态网页来说,就是一个.html文件的内容。在后续的其他请求中,可以传输任何类型的数据,例如图片、样式、脚本代码等。
- Web服务软件:一种服务端软件,在服务器上长期保持运行,负责响应和处理http或者https请求。
- HTML:一种描述网页内容的代码语言。
- 静态网页:指页面的所有内容是由一个静态文件指定的,访问网页的时候等效于访问目标文件(通常是.html文件),所有人拿到的网页内容数据是一致的。相对应的:
- 动态网页:指页面的内容是动态生成的。通常是服务端程序在处理访问请求的时候,根据请求中包含的信息(例如用户身份信息)动态生成的HTML代码。
-
浏览器加载其它资源:服务器响应的HTML代码中可能有调用别的资源(例如JS代码,CSS代码或者各种图片等等),浏览器会根据HTML中的设定自动加载对应的资源,步骤与1-4步相同。
-
浏览器渲染:浏览器根据HTML代码指定的网页内容和CSS代码指定的网页样式,以及JS代码指定的网页交互逻辑进行页面渲染,把代码转化为UI界面,于是我们就看到了一个网页。
- 浏览器:浏览器是一个本地应用程序,它根据一定的标准引导页面加载和渲染页面,其中的技术和细节极其复杂。
- CSS:Cascading Style Sheets,层叠样式表。用于设定HTML中各个元素的显示样式。
- JS:Javascript,属于Web的编程语言,在Web应用中控制用户和网页应用的交互逻辑。
- UI:User Interface,也就是我们看到的用户界面。
一个简单的网页加载过程到这里就完成了!