我们把互联网想象成一个邮局:
当你想给你的朋友写信时,首先要把内容写在信纸上,然后在信封上写上地址,再把信纸装进信封。
当你把信送到邮局,邮件分拣机会根据邮编和地址来判断你的朋友住在哪里。如果他住在一栋有很多房间的公寓大楼里面,邮局会把信件投递到大楼的前台,然后大楼的工作人员会根据房间号再次进行分拣。
互联网的工作原理和上面的过程很类似。不同的是,现实世界中是由街道连接起来的楼房和公寓,在互联网世界中被路由器和网线连接起来的计算机所取代。每一台计算机都有一个唯一的地址,让网络可以定位到它。
多个公寓房间共享一个街道地址,与此类似,多台计算机也可以共享一个网络或路由器。比如,正在使用星巴克提供的免费wifi时,多台计算机会共享一个公共IP地址。尽管如此,你的计算机依然可以通过路由器分配的内网IP地址被单独访问到,路由器好比公寓大楼的工作人员,而内网IP好比房间号。
IP是互联网协议(Internet Protocol)的缩写。IP地址是为每个接入到网络中的设备分配的数字标识符。计算机、打印机甚至手机都有自己的IP地址。
目前有IPv4和IPv6两种主要的IP地址类型,普遍使用的是IPv4地址,例如:192.168.1.1这种形式,而IPv6地址是2001:0db8:0000:0000:ff00:0042:8329这种形式的。
当你打开一个浏览器,并在地址栏输入http//google.com后,浏览器会“询问”网络(更准确的说,是“询问”DNS服务器)goole.com对应的IP地址是什么?如果DNS服务器知道你要找的IP地址,就会将其结果返回;如果不知道,它会将请求转发给其他DNS服务器,直到某一台DNS服务器上找到对应的IP地址记录。在终端输入下列指令,可观察DNS服务器的响应内容:
$dig goole.com
如果你是使用Mac操作系统,可以使用Terminal终端程序,它通常储存在/Applications/Utilities目录中。如果使用的是Windows操作系统,打开开始菜单,在运行中输入cmd就可以打开终端了。
DNS服务器返回了你想要的计算机的IP地址(例如找到了goole.com对应的IP地址)后,它就会向这个IP地址对应的计算机请求你要访问的页面。
每一个路径对应的网页都由不同的HTML文档组成(也有一些例外)。例如,当浏览器请求http//google.com或http//google.com/images时得到的HTML文档是不一样的。
现在计算机已经知道哪个IP地址可以访问到http//google.com它会向Google的服务器请求显示这个页面所需的HTML。
当远程服务器吧HTML文档发送回来后,浏览器会对文档进行渲染。渲染时就是通过一系列操作,使HTML页面按照设计之初的既定方式显示。