前言
我们每天都在使用网络,面对这个看不见也摸不着的东西,你有没有思考过他的背后发生了什么吗?
相信很多人第一次接触网络是通过一个叫「网站」的东西,那网站又究竟是什么?
影视剧里经过出现的通过 IP 地址获取定位,是真的可以实现吗?
相信你在阅读本文后就会有一个清晰的认知了。
网站?服务器?网络?
首先我们要理解的是,一个网站只是一堆保存在硬盘上的文件, 就像你的电影、 音乐或图片一样。 然而,网站的唯一的不同之处是: 网站包含一种称为 HTML 的代码。也正是这个叫 HTML 的东西让网站有了好看的皮肤(界面)。
如果你对编程不熟悉,一开始你会很难理解 HTML,因为 HTML 其实是让你的浏览器(Chrome、Safrai、FireFox、IE 等)去“理解”的信息,浏览器读得懂这些代码,然后会按照代码的内容展示这些文件。
就和我们对待自己的电脑文件一样,我们会把 HTML 文件存储在硬盘的某个位置, 然后通过浏览器去访问这些 HTML 文件。对于互联网,我们使用特定而功能强大的电脑,我们称之为服务器,所以其实服务器本质上也是一台电脑,它们没有屏幕、鼠标或者键盘,因为它们的主要目的是存储数据,并用它来提供服务。 这就是为什么它们被称作服务器的原因——因为他们用数据服务你。
因此如果想要存储更多的信息,我们有两种解决方案:
- 增加服务器的容量
- 增加服务器的数量
显而易见的,一台服务器可以存储的信息是有限的,哪怕是不断增加一台机器的容量也肯定是有上限的。所以,我们可以通过第二种方式以达到「量变产生质变」的效果。
于是,一台又一台的服务器通过“网线”连接在了一起,形成了类似下面这样的结构
众多服务器组成的这种结构被称为“互联网”,而其中每台服务器都被称作“节点”,所以「顺着网线来打你」是有理论依据的。
IP地址?域名?
那么紧接着,问题就来了。
既然网络是用来存储文件的,对于我这个初次上网的人,我又如何找到我想要的内容呢?
不着急,我们先来设想一个场景。
闰土家里有几套房子,其中房子 A 被闰土爸妈当作仓库了,一天,妈妈让闰土去房子 A 拿一个家传的盒子 X,说是给未来儿媳妇准备的,房子 A 在 a 市 b 区 c 小区 d 号,并给了侧门钥匙,让他从侧门 C 进去拿,盒子 X 在房子 A 的 2 楼的房间 B 里的衣柜。
我们可以从上述场景中抽象出盒子 X 的位置:
房子 A:侧门 C/二楼/房间 B/盒子 X
但对于闰土来说,其实他在心里还做了一个位置转换,房子 A 等价于地址 a 市 b 区 c 小区 d 号
所以,这个盒子的位置还可以表示成:
a 市 b 区 c 小区 d 号:侧门 C/二楼/房间 B/盒子 X
这样的表示方法有没有让你想起什么?
没错,就是我们最常见的网址,就像这样 👉 https://mp.weixin.qq.com/s/jHbf-cFTu6rpVEySw-juGg
不过,作为一个学计算机的,我们还是要专业点,这玩意叫 URL,全称是 Uniform Resoure Locator,翻译过来就是“统一资源定位符”。
看翻译名称就知道这他的作用就是为了定位一个资源的,这里的资源其实就是我们之前说的存储在服务器上的各种各样的文件。
和找盒子一样,想要找到一个服务器上的资源,第一步就是要知道服务器的地址在哪,在网络中,我们使用的地址叫做 IP 地址,例如 192.168.0.1。使用 IP 地址后,我们就可以找到相应的服务器所在的位置。但即使我们找到了房子 A,我们也需要知道从哪个门进去,“端口”就起到了这样的作用。通过访问 IP 地址指定的端口,我们可以访问到不同的资源,当然了,考虑到安全,服务器也有可能会关闭一些端口,只开放几个常见的端口,就跟你家通常只会开一个门用作进出是一个道理。
再回到找盒子这个例子,我们记忆一个地址是很容易,可是久而久之,女朋友家的地址要记、丈母娘家的地址要记,还有各种乱七八糟要记的地址越来越多,没办法,闰土只能拿出小本本,写下了如下的内容:
房子 A: a 市 b 区 c 小区 d 号
女友家: a 市 b 区 e 小区 f 号
丈母娘家: c 市 g 区 h 小区 i 号
……
这样每次他要去一个地址的时候都会先看一下小本本,通过代号然后找到具体的地址,在这里,这个小本本就起到了地址解析的作用。
在网络中也有类似的实现,例如在刚才的 URL https://mp.weixin.qq.com/s/jHbf-cFTu6rpVEySw-juGg
中,
mp.weixin.qq.com
这样的内容被称为“域名”,其真实的 IP 地址是 121.51.79.206(这个 IP 是会变化的),而从域名到 IP 的转换是通过一个叫 DNS 服务器的东西完成的,这个东西的功能就和我们刚刚提到的小本本是一样的,起到将域名解析成 IP 地址的作用。
那么影视剧里经常出现的通过 IP 地址获取定位,是真的可以实现吗?
结论是当然可以,但精度远没有描述的那么准确。至于原因,且听下回分解。
最后
以上就是本文的全部内容了,如果你觉得对你有所帮助的话,欢迎关注点赞支持一波,你的支持就是我更新的最大动力。