译者序

目前,国内讲解HTTP协议的书实在太少了。

在我的印象中,讲解网络协议的书仅有两本。一本是《HTTP权威指南》,但其厚度令人望而生畏;另一本是《TCP/IP详解,卷1》,内容艰涩难懂,学习难度较大。这两本书都是被读者们奉为“圣经”的经典之作,大师们的授道自然无可挑剔,但关键是它们对初学者都不那么友好,大家的学习信心很容易受到打击,阅读中途或将束之高阁。本书的出现及时缓解了该问题。

HTTP协议本身并不复杂,理解起来也不会花费太多学习成本,但纯概念式的学习稍显单调。前端工程师也许对各种具有炫酷效果的页面的实现技巧、赏心悦目的UI框架更感兴趣,但因此常常忽视了HTTP协议这部分基础内容。实际上,如果想要在专业技术道路上走得更坚实,绝对不能绕开学习HTTP协议这一环节。对基础及核心部分的深入学习是成为一名专业技术人员的前提,以不变应万变才是立足之本。

我在学习Web开发的过程中,曾接触到编写网络爬虫程序、分析抓包数据、实现HTTP服务器、提供网站REST API、修改后端定制框架等方面,它们无一例外,都会用到HTTP协议的各方面知识,并且某些细节无法通过查阅资料立即领会到,还需依靠扎实的基础及平日里的积累。

本书作者的写作手法平实易懂,内容讲解透彻到位。前半部分由HTTP的成长发展史娓娓道来,基于HTTP 1.1标准讲解通信过程,包括HTTP方法、协议格式、报文结构、首部字段、状态码等的具体含义,还分别讲解HTTP通信过程中代理、网关、隧道等的作用。接着介绍SPDY、WebSocket、WebDAV等HTTP的扩展功能。作者还从细节方面举例,让读者更好地理解何为无状态(stateless)、301和302重定向的区别在哪、缓存机制,等等。本书后半部分的重心放在Web安全上,涵盖HTTPS、SSL、证书认证、加密机制、Web攻击手段等内容。旨在让读者对HTTP协议形成一个整体概念,明确设计HTTP的目的及意义所在,了解HTTP的工作机制,掌握报文中常用的首部字段,返回结果状态码的作用,对各种客户端与服务器的通信交互场景的细节等都做到了然于心,从而在平时的开发工作中独立思考,迅速准确地定位分析由HTTP引发的问题,并辅以适当的方法加以解决。

本书图文并茂,大量图片穿插文中,生动形象地向读者介绍每一个应用案例,减少了读者阅读时的枯燥感。借助一张张配图,读者们不仅会加深视觉记忆,在轻松愉悦的氛围中,还可以更深刻地理解通信机制等背后的工作原理。正所谓一图胜千文。

在本书即将付梓之际,感谢EMC首席工程师高博学长、IBM工程师李亚舟(Fleuria)、豆瓣运维工程师钱龙、全栈工程师缪思源(Aveline Swan)以及姜莹等好友。他们在繁重的工作之余,牺牲个人闲暇时间,耐心地帮我扫清技术疑点,修正翻译疏漏,在此谨表示衷心的感谢。

最后祝大家阅读愉快!

于均良

2014年1月