Web
Web 是在互联网上,用浏览器访问的一种信息服务。可以简单理解成,我们打开一个网络链接,展示的一个个网页,就是 Web。
Web 有动态 Web 和静态 Web:
- 静态 Web:是指开发者提前写好 Web 网页(HTML),所有人看到的网页内容都是一样的 Web。早期的 Web 是静态 Web,是使用 HTML 将网页内容写好放在服务器中,所有人访问网页,都是看到这个 HTML 的内容。静态 Web 的特点是所有人看到相同的内容,网页内容、数据都是写在 HTML 里,不与数据库交互。静态 Web 的业务流程大致如下:
- Web 开发者编写好 HTML,保存到服务器某目录。
- 用户从浏览器打开网页,比如
www.xxxx.com/index.html。 - 服务器接受到请求,从文件目录中找到这个
index.html文件,发送给用户。 - 用户浏览器接收到 HTML,渲染成网页展示给用户。
- 动态 Web:是指开发者并非提前写好 Web 网页,而是在用户访问时,动态生成网页 HTML 内容,每个人看到的网页内容都是不一样的 Web。现代 Web 几乎都是动态 Web,每个人看到的 Web 内容都可能不一样,比如有自己的用户昵称和头像,每个人看到的商品内容都不同。动态 Web 一般会与数据库交互,在生成网页 HTML 时,从数据库获取数据,动态拼接生成 HTML 内容。动态 Web 的业务流程大致如下:
- Web 开发者无需编写好 HTML,而是编写生成 HTML 的模版程序。
- 用户从浏览器打开网页,比如
www.xxx.com/index.php?user=qiangzi。 - 服务器接受到请求,从数据库查询
user=qiangzi的头像、昵称等信息,返回给后端程序。 - 后端程序结合数据库数据,动态拼接生成 HTML,发送给用户。
- 用户浏览器接收到 HTML,渲染成网页展示给用户。
上述动态 Web 的业务流程,为后端程序的动态 Web。实际上,还有一种前端程序实现的动态 Web:服务器接受到请求,只需要发送给用户一个空 body 的 HTML。浏览器接收到这个 HTML,会拉取 JS 代码,而 JS 代码会从 API 里获取数据库数据。最后,浏览器会执行 JS 代码,将数据处理,动态生成 HTML,渲染并展示给用户。
URL
URL 全称 Uniform Resource Locator 统一资源定位符,是指在互联网上的任意资源,比如一个网页(HTML)、一张图片、一个视频,都可以有一个全网唯一的定位符,这个就是 URL。即使是我们自己目前电脑上的任意一个文件,只要我们开放外网 IP,打开防火墙,使用一个 web 服务器,就可以用 URL 访问到。
HTTP URL
我们最常见的 URL 是 HTTP 或 HTTPS 协议的网络链接,比如:https://www.baidu.com:443/source/index.html?id=123&name=user#md。这个 URL 包含这几部分:
https://:这是协议,代表 URL 采用的是 HTTPS 协议。www.baidu.com:这是域名/主机 IP,代表互联网上的某台计算机。443:这是端口号,代表这台计算机的网络端口号。端口号可以不写,如果是 HTTPS 协议,默认是用 443 端口号。如果是 HTTP 协议,默认是 80 端口号。端口号或主机 IP 与域名之间,用冒号:分隔。/source/index.html:这是路径,代表要获取计算机上这个路径的文件。在静态 web 时代,这个路径一般代表计算机上的真实存在的路径文件,而动态 web 时代,可能这个路径并不对应服务器计算机硬盘上的真实文件,而是由服务器端程序根据路由规则动态生成内容返回给客户端。因此,现代看到的很多网页,都不是以.html结尾的路径,而是类似/home/user这种非文件后缀结尾的路径。id=123&name=user:这是参数,由键值对组成,多个键值对之间用&隔开。路径和参数之间,用问号?分隔。参数用于向服务器传递参数,以便动态生成对应的资源。参数又被称为查询字符串,随请求发送给服务器,有长度限制。#md:这是定位符,一般用于 HTML 标记锚点的元素 ID,与 CSS ID 选择器相同。定位符不会发送给服务器,仅在浏览器本地用于定位页面的元素。
其他 URL 协议
除了 HTTP 和 HTTPS 协议的 URL,还有其他协议的 URL,常见的比如:

