这是我参与「第四届青训营 」笔记创作活动的的第三天
web基础
这个问题简单描述了在计算机或手机上通过浏览器访问网页时发生了什么
客户端和服务器
- 客户端是典型的 Web 用户入网设备(比如,你连接了 Wi-Fi 的电脑,或接入移动网络的手机)和设备上可联网的软件(通常使用像 Firefox 和 Chrome 的浏览器)。
- 服务器是存储网页,站点和应用的计算机。当一个客户端设备想要获取一个网页时,一份网页的拷贝将从服务器上下载到客户端机器上来在用户浏览器上显示。
其他部分
-
网络连接:
允许你在互联网上发送和接受数据。基本上和你家到商店的街道差不多。
-
TCP/IP:
传输控制协议和因特网互连协议是定义数据如何传输的通信协议。这就像你去商店购物所使用的交通方式,比如汽车或自行车(或是你能想到的其他可能)。
-
DNS:
域名系统服务器像是一本网站通讯录。当你在浏览器内输入一个网址时,浏览器获取网页之前将会查看域名系统。浏览器需要找到存放你想要的网页的服务器,才能发送 HTTP 请求到正确的地方。就像你要知道商店的地址才能到达那。
-
HTTP:
超文本传输协议是一个定义客户端和服务器间交流的语言的协议(protocol )。就像你下订单时所说的话一样。
-
组成文件
: 一个网页由许多文件组成,就像商店里不同的商品一样。这些文件有两种类型:
- 代码 : 网页大体由 HTML、CSS、JavaScript 组成,不过你会在后面看到不同的技术。
- 资源 : 这是其他组成网页的东西的集合,比如图像、音乐、视频、Word 文档、PDF 文件。
解析过程
当你在浏览器里输入一个网址时(例子:向商店的路上时):
- 浏览器在域名系统(DNS)服务器上找出存放网页的服务器的实际地址(找出商店的位置)。
- 浏览器发送 HTTP 请求信息到服务器来请拷贝一份网页到客户端(你走到商店并下订单)。这条消息,包括其他所有在客户端和服务器之间传递的数据都是通过互联网使用 TCP/IP 协议传输的。
- 服务器同意客户端的请求后,会返回一个“200 OK”信息,意味着“你可以查看这个网页,给你~”,然后开始将网页的文件以数据包的形式传输到浏览器(商店给你商品,你将商品带回家)。
- 浏览器将数据包聚集成完整的网页然后将网页呈现给你(商品到了你的门口 —— 新东西,好棒!)。
解析组成文件的顺序
- 浏览器首先解析 HTML 文件,并从中识别出所有的 "link" 和 "script" 元素,获取它们指向的外部文件的链接。
- 继续解析 HTML 文件的同时,浏览器根据外部文件的链接向服务器发送请求,获取并解析 CSS 文件和 JavaScript 脚本文件。
- 接着浏览器会给解析后的 HTML 文件生成一个 DOM 树(在内存中),会给解析后的 CSS 文件生成一个 CSSOM 树(在内存中),并且会编译和执行解析后的 JavaScript 脚本文件。
- 伴随着构建 DOM 树、应用 CSSOM 树的样式、以及执行 JavaScript 脚本文件,浏览器会在屏幕上绘制出网页的界面;用户看到网页界面也就可以跟网页进行交互了。
DNS 解析
域名系统
将输入浏览器的地址与实际 IP 地址相匹配的特殊的服务器。
网页可以通过 IP 地址直接访问。您可以通过在 IP Checker 等工具中输入域名来查找网站的 IP 地址。
数据包详解
前面我们用“包”来描述了数据从服务器到客户端传输的格式。这是什么意思?基本上,当数据在 Web 上传输时,是以成千上万的小数据块的形式传输的。大量不同的用户都可以同时下载同一个网页。如果网页以单个大的数据块形式传输,一次就只有一个用户下载,无疑会让 Web 非常没有效率并且失去很多乐趣。