$$ 05 $$
牛郎接着说:“我将这套新的方案,叫做‘HTTP’。首先,明确几个概念。”
“发送方发出的消息,我们称之为‘请求’,接收方返回的回应,我们称之为‘响应’。”
“一个‘请求’,分为3部分,请求行,请求头,请求体。”
“请求体,就是我要发送的内容。如果文本过长,请喜鹊们按一百字左右拆分就好,每个我们称为一个‘包’,注意进行编号。”
“请求头,是对整个请求的概括,以及一些辅助信息。主要包含总字数,拆分的包数目,用于接收方重组原始文本。”
“请求行,只要2点信息,版本,接收者。目前版本固定为1.1,后面可能升级,不同版本将对应不同的解析策略。”
·
“喜鹊拿到我要发送的内容,自动拆分为这3部分,请求行与请求头随第一个请求体发出。”
“接收的喜鹊通过请求行与请求头,确认总的包数量,按照编号组装文本,然后校验组装好的文本是否与请求头的字数一致。”
“这中间可能有丢包,比如一共10个包,3号包一直没来,那么,你们自行重传就好。”
“最终,把整合好且确认无误的信息传递给织女,才算是完成了任务。”
·
“请求行和请求头是给喜鹊看的,我和织女真正关系的是请求体。”
“‘响应’的结构与之完全一样,这里不重复了。”
“当一个‘请求’成功发出,一个‘响应’成功回来时,一次HTTP通信则算完美成功。否则,任意一步出错,都将进行重试。”
·
----
$$ 06 $$
小艾皱了皱眉头,看着牛郎,说:“意思我理解,但总觉得,喜鹊做的事情,越来越多越来越乱了,好像有些失去条理了。”
牛郎与之相视一笑,说:“哈哈,我早就想到,你们可能有这样的疑惑了。所以,让我来给你们‘有条理地解释一下’吧!”
·
牛郎起身,走到旁边的桌子旁,拿起纸笔,回到茶桌一遍画一边讲解:
“看似所有的事情都交付喜鹊们执行,但是,这里面,确实可以分为4个层面的。让我们从下往上说。”
“首先,一切都是基于喜鹊可以飞行并向附近喜鹊传递信息这一基础。这是整个通信链路的根基,没有它就没有这一切。我们称之为‘链路层’。”
“其次,是根据IP寻找并准确与每一只喜鹊沟通,从而形成喜鹊网络。这一层,称为‘网络层’。”
“接着,就是之前通过TCP传输数据,从而形成稳定的传输通路。因此,这里称之为‘传输层’。”
“最后,是基于传输的优化与应用,是文本等信息传输的最终解决方案,这也就是‘应用层’了。”
·
“这就是目前的‘四层网络模型’。怎么样,两位,理清思绪了吗?”
小艾和小皮仿佛醍醐灌顶:“听君一席话,胜读十年书!这个简直太强了!是我们之前想的太简单了。”
小艾继续说道:“唉,要是能有人像这样透彻地讲解法术,说不定我和小皮就能更上一层楼了。”
牛郎无意说道:“传言说有两只连低级法术都只学了个皮毛的废柴神仙……”
小皮那柔弱的拳头已经落在了牛郎的头上:“你可以闭嘴了……”
·
----
$$ 07 $$
“牛郎失言,咱们接着聊优化的事情。”牛郎给小艾和小皮满上茶水,继续说道:
“接下来,咱们说说多个请求的优化。”
“之前,是每一个‘请求-响应’,都会对应一套‘握手-挥手’流程。”
·
“而优化的核心就是,在一次‘握手’捡来连接之后,允许发送多个‘请求’。我称之为‘连接复用’,或者叫做‘长连接’。”
“具体的做法是这样的。”
“一次请求发送后,不要立即进行‘挥手’,而是等待1个小时之后,再进行‘挥手’关闭连接。”
“在这一个小时内,如果有新的请求要发送,那么,就直接复用原来已经‘握手’成功的连接即可,并重置1小时的等待时间。”
“这样,我们减少了‘握手-挥手’次数,从而减少了资源消耗。”
·
“当然,稳定性方面也不会打折扣的,因为之前建立过连接,所以复用该连接,大概率是通畅的。”
“当然,也一定会存在复用时连接中断的情况,此时,就需要重新‘握手’建立连接了。”
·
这时,小艾突然问道:“既然如此,何必1小时后挥手关闭呀,为什么不一直保持连接呢?”
“好问题!”牛郎夸赞道,“但是,一直维持连接,对于链路上的喜鹊,也是一种浪费。”
“而且,由于王母的拦截,连接的长时间维护很难,必然中断概率很高,下次可能还免不了新建连接。”
“再者,若长时间不进行请求发送,那么维护连接的成本,远比新建连接的成本要高得多。”
·
----
$$ 08 $$
牛郎拍了拍手:“好了,理论都讲完了,接下来该干活了!”
小艾与小皮没有动,也没有说话。
·
小艾看着疲惫的牛郎,轻声问道:“这样值得吗?”
牛郎愣了一下,旋即坚定的回答:“值得。”
接着,牛郎低下头,许久的沉默后,牛郎低声说道:
“我从不否认自己的目标,也对自己所迈出的每一步坚定不移。”
“只是,有时候我也会迷茫,仿佛看不到这一切的未来。”
“我只是一介凡人而已,我不知道如何让王母真正承认自己。”
“天数契约可能只是个开始,即使我完成了,王母之后肯定也不会善罢甘休的……”
声音有些听不清了,夹杂着那强忍住的啜泣。
·
小艾轻轻拍了拍牛郎的肩膀,说:“你有没有想过,像我们一样,踏上仙途?”
牛郎没有回答。小艾与小皮也没有继续追问。
·
“我们先走了,HTTP相关的事情,一定会办好的。不用送了,你也多保重。”小艾和小皮起身告别。
“再见。”牛郎挥手告别,然后继续低下头,陷入了沉思中。
·
星夜,牛郎的内心独白。
“我本想沿着通信学专家的路线,一直走下去的。”
“我本想继续研究第三代HTTP协议,本想接下来与织女一起探索通信加密的奥妙。”
“但是,我所做的这么多研究,没人关注,没人点赞,没什么阅读量,让我好伤心啊……”
“所以,是时候做出一些改变了……”
虽然很遗憾,但是,我们再也回不到过去了。

