浏览器、域名、DNS、端口、服务器
网页不是凭空出现的。
浏览器里看到的东西,总得先来自某个地方。
这一节我们就把这条链路从头到尾走一遍:从你电脑里的一个 html 文件,一直到互联网上任何人都能访问的网页。
用 vim 或 VS Code 都可以写入这段代码。完成后用 cat ~/zero-to-tech/index.html 验证内容是否正确写入。
访达会打开这个文件夹,找到 index.html,双击它——浏览器会自动打开并显示页面。
一行命令直接打开文件,浏览器立刻显示结果。两种方式都建议各试一次。
Windows 用户:open 命令可能不可用,在文件管理器中找到文件后双击,或右键选择"用浏览器打开"。
你在 VS Code 或 vim 里改的是代码文件,浏览器里显示的是这个文件被读取、被解释之后的结果。它们不是同一个形态,但有直接关系。
一个网页最开始完全可以只是你电脑里的一个文件。
浏览器既然能打开你自己电脑里的 index.html,当然也能打开其他电脑上提供的内容——这正是你每天都在做的事。
服务器不是什么神奇的东西,本质上就是一台联网的电脑,只不过它的主要工作不是给某个人本地使用,而是持续地对外提供服务。
现实世界里你要找一栋楼,需要地址。网络世界里,一台联网的设备也需要地址——这个地址就是 IP 地址。
可以把它理解成:一台联网设备在网络中的唯一地址。
域名的作用,可以先理解成:给机器地址起一个更方便人记忆和输入的名字。 你平时在浏览器里输入的,通常不是 IP 地址,而是域名。
域名是给人看的名字,DNS 负责把它翻译成机器要用的 IP 地址。这个翻译过程发生在你每次访问网站时,速度非常快,你几乎感觉不到。
DNS = Domain Name System,域名系统。可以先把它理解成互联网的"通讯录"。
一台服务器上可能同时运行好几个不同的服务。浏览器找到服务器以后,还需要确认:我应该连哪个入口,才能拿到网页内容?
端口就是用数字标记的这些入口,一台服务器可以开放多个端口。
平时你访问网站,这些端口号会被省略——浏览器会根据 http 或 https 自动选择。
这条链路看起来很长,实际上有许多工作不需要你自己来做。下一节我们会真正把这个过程走起来。
"输入网址后发生了什么"
不再是黑盒了。
接下来,我们去部署第一台真实的服务器,亲自把这条链路走通。
零到全栈 · 模块 2.3 完