无论前端程序员,还是后端程序员,稍微系统的学习HTTP是非常值得的。实际上,它是日常开发一直在用的,之所以没有怎么太学习也可以工作,现存的各种框架帮了很多的忙。然而,想要快速理解概念,理解安全,使得开发性能高效的程序称为可能,学习HTTP都是必不可少的。
另外一个方面,学习HTTP的投入是值得的,因为到目前为止,需要关注的版本就只有两个,1.1版本和2.0版本,1.1是主流使用的,2.0是逐步演进推动下,渐渐的开始进入主流,并且,令人非常开心的是,2.0版本只是一优化版本,在语义上完全保持了和1.1的兼容,因此令学习成本大幅降低。
稍微想要系统的学习某一门知识的话,看书都是最快的选择,其次就是多看代码,多写代码,这也是老生常谈了。
有趣的是,即使是HTTP,这个目前网络上最主流的协议,但是和它的地位不相称的是,它的出版物并不多。就是这么几本而已:
- HTTP小书 ¥9 http://www.ituring.com.cn/book/1791
- 图解HTTP ¥49 http://www.ituring.com.cn/book/1229
- HTTP权威指南 ¥109 http://www.ituring.com.cn/book/844
即使全部读完也不是多大一个事。然而,对于这几本书,还是有必要做些评论的。
首先是《HTTP小书》,篇幅最短,各种都讲到,使用命令和nodejs代码验证概念,和文本对照。并且全文无图。HTTP本来简洁,并且基于文本,正好使用使用命名和代码验证的。《HTTP小书》真正体现了HTTP的精神,就是极度简洁。
其次是图解HTTP,篇幅200多页,但是主要是文字解说,缺乏代码佐证。图解的话,不同人有不同的看法,有些看法认为图解会更直观,有些人认为图解在此场景下有些牵强,是滥用了图解。日系书的一个特点,什么都点到,看起来比较亲和,实际内容评价不一。
最后是《HTTP权威指南》,这本书被认为是此领域的圣经。此书的优势是出来的早,应该是2002年出版,距离HTTP1.1通过不过2年左右的时间,讲的也是比较全面的。做的不好的地方是,700页的大部头,令人怀疑是否内容经过优化,6人合作编写也让材料的取舍标准以及质量存疑。毕竟HTTP协议一再声称自己是非常简洁的协议那里需要那么大的篇幅呢。且对于稍微有些含糊不清的地方比如隧道,Connect请求,响应码300等细微之处,缺乏代码的佐证,感觉说得不清不楚。结论是在没有选择的情况下,只能选择。详细分析,请参考 “有人一直说这本书是http圣经,我认为不妥。” https://www.zhihu.com/question/30331161/answer/95351347
看代码的话,不管是采用什么开发堆栈,大家都需要掌握JS的知识的,因此不妨从Nodejs开始。毕竟Nodejs很火,且代码都是开源的,其中不乏高质量的代码。
可以直接阅读node HTTP模块代码,或者expressjs。后者会更加接近应用,也相对比较好读,网上关于expressjs代码剖析的文章也比较多,有些指南的东西,比起自己从头开始要好得多。