在这篇文章中,我们回顾了互联网是如何工作的,以及我们如何使用HTTP在互联网上进行通信。
想象一下,你的房子是一台巨大的电脑。你的家庭地址不是上海路或中山西路,而是由数字组成。例如:112.231.31.20。
就像在未来主义电影中一样,你的城市主要由天上的高科技机器人组成,从一个房子到另一个房子,传递他们的信息和进行回应。
明白了吗?
互联网的工作方式概述
稍微简化一下,这就是当你在浏览器中输入一个网页地址时发生的事情。
它找到你想发送请求的 “房子 “的地址它使用机器人邮递员发送请求它耐心地等待机器人邮递员的回应现在,所有这一切都被抽象化了,你作为终端用户。你在浏览器中输入网页地址,网页就会出现在你的眼前–就像魔术一样。
像任何足够先进的技术一样,如果没有这些抽象的东西,普通用户将无法使用互联网。
大多数时候,你不需要担心某个东西是如何工作的–你只需要知道它在工作。
但是,对于某些主题,深入研究一下螺母和螺栓是有帮助的,或者只是满足好奇心的痒痒。
通过阅读这篇文章,你不会成为互联网技术细节方面的专家–那将需要更多的时间和努力–但你将获得更好的理解。
信息传递系统从本文开头的比喻中,我们了解到,互联网是由信息传递组成的。在大多数情况下,这些信息是使用所谓的HTTP协议发送的。
协议。这是个可怕的词。那是一个眼睛发亮或关闭浏览器的词。因此,让我们把它分解成更简单的术语。
协议只是协议的一个花哨的词。让我们用一个比喻来说明它。
假设你和你最好的朋友互相留下秘密信息。当你在门口发现一张写着 “球脚 “的纸时,你知道你的朋友想在今晚20:00和你一起踢足球。
你知道这一点是因为你同意,送到你家的纸片上的 “ballfoot “这个词代表了一个游戏邀请。
现在,当你开始给你的其他朋友留下 “ballfoot “的纸条而不告诉他们秘密的含义时,问题就出现了。他们会不知道该如何处理这些信息。
他们会在门口发现这张纸条,挠挠头,然后继续在客厅里玩《王者荣耀》。而你和你的另一个朋友会在你们之间传递球。来来回回。来来回回。直到无聊到无法忍受,你们都回家了。
但它不一定是这样的。如果你告诉你的朋友们 “ballfoot “的含义是什么呢?现在你的每一个朋友都会知道并共同同意,与世界 “ballfoot “的注解意味着在20:00出现并在当地法院踢足球。
成功。
这就是–在本质上–HTTP协议所代表的。我们已经同意,如果我们以一种特定的方式发送消息,服务器将理解它,并给出一个响应作为回报。
消息的结构
让我们仔细看一下HTTP协议。它由请求和响应组成。简单地说,你要求什么,然后从被称为服务器的东西那里得到答复。
在我们继续之前,让我们修改一下一开始的比喻,以便更好地理解HTTP请求/响应周期。
还记得那些挨家挨户传递信息的机器人吗?现在想象一下,所有这些机器人都属于某人。
你有你自己的私人机器人,你可以要求它带着信息去任何地址(IP地址)。一旦你的机器人带着你的信息到达给定的地址,它将进入并大胆地宣布它有一个信息要传递。然后它将说出信息。
为了打比方,想象一下,房屋(服务器)的门就像《指环王》中莫里亚矿区的入口。只有当话说得正确,门才会打开,让你进去。
在这种情况下,只有当你的机器人以特定的方式说出信息时,他们才会收到一个响应信息,并带回给你。
这就是HTTP协议的作用。有一套预定义的规则来指导请求和响应信息的模样。
在这一点上,你可能想知道这些信息是怎么来的。当你把网站地址输入到你的网络浏览器时,你肯定不会自己写这些信息。
好吧,这都是由浏览器自动为你处理的。当你输入一个地址时,你的浏览器就会为你编写HTTP请求信息,并将其发送给服务器。HTTP请求信息看起来像这样。
GET / HTTP/1.1
Host: google.com
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko)
Version/11.0 Mobile/15A372 Safari/604.1
Accept: text/html,application/xhtml xml,application/xml;q=0.9,
image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
...etc
它看起来很吓人,对吗?
好在浏览器为我们做了这些。
让我们仔细看一下第一行。get / http/1.1。这一行让你的机器人到谷歌的房子里说:”我能不能接收你网站根部的东西?”(这意味着我们想检索www.google.com,而不是www.google.com/home。
因此,现在我们已经以正确的方式向谷歌的房子(服务器)传递了我们的信息。大门亮了起来,摇晃着打开。
在里面你可以看到另一个机器人。它的后面是一系列的锁箱,上面标有GET / HTTP/1.1和GET /search HTTP/1.1等文字。如果你的请求与这些锁箱之一相匹配,机器人将解锁,并将内容交给你的机器人,这将促使它迅速返回给你,并作出回应。
响应你得到的响应将看起来像这样。
HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
Content-Length: 88
Content-Type: text/html
Connection: Closed
现在,你永远不会看到这个响应,除非你真的想在浏览器的开发者工具中检查它。但尽管如此,你还是收到了它。
接下来会发生什么,取决于你收到的是什么样的响应,以及服务器的锁箱里是什么。
在许多情况下,你收到的回报是一个HTML文档。HTML代表了网页的结构,定义了浏览器应该显示的内容。
如果你去www.google.com,你会收到一个HTML文件作为回报,该文件定义了google.com网站将如何在你的浏览器中显示。
总结
在这篇文章中,我们回顾了互联网是如何工作的,以及我们如何使用HTTP在互联网上进行通信。
我们了解到,HTTP协议是用来在互联网上的浏览器和服务器之间进行通信的,它包括一个普遍认同的关于如何发送和接收请求的标准。
我们还探讨了拥有这种通信标准的重要性,以及拥有一个普遍认同的标准的好处。
要了解互联网是如何工作的,以及你能收到什么样的回应,还有很多方面。现在你应该对互联网上的通信方式有了大致的了解。
如果你认为其他人也可以从这篇文章中受益,请传播这篇文章。如果你想知道我什么时候发布更多的内容,你可以在微信公众号上关注我。