HTTP是Web的基础,这里所说的Web,不仅只是通常意义上的Browser/Server端的开发,而是Web Service。 HTTP初看上去似乎是非常简单的协议,是的,HTTP 0.9确实是非常简单的,简单到只有一个GET方法,更不用说什么持久连接了。HTTP协议还有一个显著特点,那就是其协议是明文的基于文本的。这使得通过工具与HTTP进行交互变得非常简单,最原始的telnet也可以发送HTTP请求(参考本书15页)。 而大多数人对HTTP的了解也就是这种程度了(没有读此书之前的我也是这样)。此书的意义在于,它让你知道,HTTP不仅只有一个简单的GET,HTTP可以做为一种通用的分布式编程的协议。现如今Web上大行其道的所谓RESTful Web Service,其基础就是HTTP,而提出REST这个概念的Roy Fielding,也是HTTP协议(RFC2616)的主要作者之一(小八卦:Roy Fielding还是Apache HTTP Server的co-founder,总之是个大牛)。 我之所以看这本书,是因为这半年在搞OpenStack(http://api.openstack.org/),然后接触到了web service和REST,发现自己的知识储备远远不够,匆忙之中发现了此书,如获至宝,断断续读了三四个月,总算能开始阅读REST相关的书籍,颇有打通任通二脉之感。 此书第一部分是HTTP的概略,如果你没有时间,通读第一部分就能让你应付普通的日常开发工作。第二部分主要讲现实世界中HTTP的架构,也可以看作HTTP的全景图,包括Web Server/Cache/Proxy/Gateway,是全书中精华的部分。 第三部分主要是HTTP安全,其中Basic和Digest概略看下即可,现实世界中用的应该不多。看HTTPs最好有一些计算机安全基础,这样会顺畅很多。 第四部分主要是关于HTTP Message Body的部分,包括Content Negotiation,MIME Type,chunked encoding等,概略看下即可。 第五部分的内容,Web Hosting可以认真看下,了解下Virtual Host(话说我上学的时候一直搞不懂Virtual Host,一个IP怎么能同时Host两个不同域名的Web页面呢,sigh)。剩下三章已经过时,基本可以忽略。 最后的附录,可以用作边用边学的字典,如果你自己来写Web Server,那么这一部分是极有价值的参考。 总而言之,无论你是前端还是后端,只要是Web相关的,那么此书就是必读的。 最后推荐一个工具:https://github.com/jkbr/httpie 还有一个仿照http协议设计的基于message queue的协议:http://en.wikipedia.org/wiki/Streaming_Text_Oriented_Messaging_Protocol