一个大参考吧
2016-04-15
我花了几个月的时间,读了它几遍。并且同时参照 Node.js http 实现,自己写验证代码,通过Google 的帮助等等,然后发现这本书需要真去啃,因为读者需要理解HTTP的本质复杂度,并且避免被作者引入的非本质复杂度的干扰。然而我没有办法说花费这个时间是不值得的,因为我已经具备了这个知识无法装作没有知识是怎么地了。这就是所谓的知识的诅咒吧。
外部的看,这本书有些地方必定会引入非本质复杂度:
1. 合著的书,作者达,,,5人
2. 出来的很早 ,2002年第一版本成书,嗯http 1.1 应该是1999年成稿,那会儿HTTP1.1还缺乏历练,以及多种场景的考验
内容,可以看到,它常常有问题在于:
1. 罗列常常缺乏重点。比如第十一章 客户端识别,既然cookie是最有效的 ,何不第一个讲。那些胖URL客户端IP什么的,用的人极少,不应该摆在前面。best first 最好。
2. 缺乏层次分离。比如第四章 连接管理底层的TCP连接即使不讲,是一定可以讲清楚HTTP的连接优化机制的,讲了TCP连接实际上能做的就是调整参数,但是那些参数又是久经考验的,不建议改。这个。。。。
3. 缺少代码验证,导致文字模糊难以澄清,比如4.5 keep alive,以及第八章 集成点
4. 概念提出太早。概念是一本书的骨架,但是骨头得包起来,包到肉里,不然太难嚼。比如第一章概念登场,却缺乏案例和场景的支撑。
最近在看pro git ,它甚至号称学习git命令必须得首先了解它的实现,这就有点邪气了。然后我也就真的按他的说法来,发现确实无需了解实现就理解和学习命令的。于是,我发现这样的类似的层次分离问题,其实是比较常见的问题,所以不能太过求全,毕竟早年间的东西,出来的快,市场需要,再加上IT作家通常都并不擅长写作。
想要学就得啃。晚近一点的,就会好很多。
我原来发的知乎的地址:
https://www.zhihu.com/question/30331161/answer/95351347