万维网是怎么工作的?
一、客户端和服务器
连接到互联网的计算机被称作客户端和服务器。下图简单描述了他们如何交互。
客户端是典型的web用户入网设备(比如你连接了wifi的电脑、或接入移动网络的手机)和设备上可联网的软件(比如Firefox浏览器和chrome浏览器)。
服务器是存储网页、站点和应用的计算机。当一个客户端设备想要获取一个网页时,一份网页的拷贝将从服务器上下载到客户端机器上来在用户浏览器上显示。
二、其他部分
客户端和服务器并不能完成全部工作,还有其他必要的部分。
假设web是一条道路,路的一端是客户端,就像你的家;另一端则是服务器,就像你想去的商店。除了客户端和服务器我们还需要了解:
网络连接:允许你在互联网上发送和接收数据,类似于你家到商店的道路,如果没有这条道路,你就没有办法去到商店购买商品。
TCP/IP:传输控制协议和因特网互联协议,定义数据如何传输的通信协议,类似于你去商店购物所选择的交通方式,比如你选了汽车、自行车或者其他。
DNS:域名系统服务器,像是一本网站通讯录,当你在浏览器内输入一个网址时,浏览器获取网页之前会先查看域名系统,浏览器需要找到存放你想要的网页的服务器,才能发送HTTP请求到正确的地方。类似于你要知道商店的具体地址,你才能到达那里。
HTTP:超文本传输协议,一个定义客户端和服务器间交流的语言的协议。类似于你去全家买一个车仔面跟工作人员提出的条件,要不要加料什么的。
组成文件:一个网页由许多文件组成,像商店里有不同的商品一样,这些文件有两种类型:
① 代码:网页大体由HTML、CSS、JavaScript组成
② 资源:资源是其他组成网页的东西的集合,图片、视频、文档等等都统称为资源
比喻2:
三、当在浏览器输入一个网址(确定你要去哪一家商店)到网页呈现,到底发生了什么?(经典面试题)
1、浏览器在域名系统(DNS)服务器上找出存放网址的服务器的实际地址(找到商店的具体地址)
2、浏览器发送HTTP请求信息到服务器来拷贝一份网页到客户端(你到达商店并下单),这条请求消息包括其他所有在客户端和服务器之间传递的数据都是通过互联网使用TCP/IP协议传输的(老板对商品定下了一些规则、比如价格,购买该商品就需要按这个规则执行)
3、服务器同意客户端的请求后,会返回一个'200 OK'信息,意味着你可以查看这个网页,然后开始将网页的文件以数据包的形式传输到浏览器(结账后,商店给你商品,你可以把它带回家了)
4、浏览器将数据包聚集成完整的网页然后将网页呈现给你(回到家,撕开包装开干)
四、DNS解析
真正的网址其实是一串数字,例如192.168.0.1,为了便于记忆且看上去更美好,因此发明了DNS域名系统(DNS),它是将你输入浏览器的地址如www.baidu.com与实际IP地址相匹配的特殊的服务器。
网址可以通过IP地址直接访问,比如你的本地域名是localhost,访问本机的ip地址一样可以,
可以通过 IP Checker 等工具输入域名来查找网站的IP地址。
五、数据包
基本上,当数据在web上传输时,是以成千上万的小数据块的形式传输的。大量不同的用户都可以同时下载同一个网页,如果网页以单个大的数据块形式传输,一次就只有一个用户下载,无疑会让web非常没有效率且失去很多乐趣。
参考文档:https://developer.mozilla.org/zh-CN/docs/Learn/Getting_started_with_the_web/How_the_Web_works