假期过去了,金三银四招聘季也就要来了,春节期间和一位面试官交流面试心得。他说面试一年多,每当问起面试者对 HTTP 的了解时,经常出现这样的情形:
- 面试官:请问你了解 HTTP 协议吗?
- 前端开发:这不是应该后端清楚的吗?
- 后端开发:这不应该是前端知道的吗?
- 面试官:......
其实无论是前端还是后端,都需要了解 HTTP。前端接触较多的是在其上层的 HTTP 协议,包括承载请求的 HTTP 和 HTTPS 协议,而随着前端路由的控制越来越多,深刻理解 HTTP 的 Header、Body 等属性是很有好处的。
学好了 HTTP 对于 Web 开发和性能优化等都有用处。比如页面资源的缓存策略,如果对 HTTP 协议不够了解,就没法进行方案的制定或者优化。页面资源加载速度的优化,也同样离不开对 HTTP/2 的了解。
就这么说吧,如果你不懂 HTTP 协议,就相当于是个只有“半桶水”的程序员。
话虽如此,不少人觉得:“HTTP 协议好简单的啦,还用系统学吗?” “HTTP 不就是请求 / 响应、GET/POST、Header/Body 吗?网络上的资料一抓一大把,有什么问题搜一下就是了。”
但事实是,就因为 HTTP 太常见、太普遍了,很多工作 7、8 年的老手,也未必搞得清楚,当年我也是在工作上踩了大坑,所以才下定决心“死磕” HTTP。
资料看了一大堆,真正有体系的却不多,罗剑锋的《透视HTTP 协议》专栏,算是一个,给我启发很大,先分享一份他总结的「HTTP 知识图谱」,把零散的概念系统地整理在一起,建议收藏:
最近我又在 2 刷《透视HTTP 协议》,毫不夸张的说,是我见过含金量最高的 HTTP 学习资料,兼具广度和深度,真正做到了“透视”,能让你深刻了解 HTTP 的底层运行机制、工作原理,讲得明白又系统。
由于 HTTP 应用得非常广泛,几乎涉及到所有的领域。所以罗剑锋的内容不只讲协议本身,与它相关的 TCP/IP、DNS、SSL/TLS、Web Server 等都会讲到,而且会把它们打通串联在一起,形成知识链,让你知道它们之间是怎么联系、怎么运行的。
作者罗剑锋,奇虎 360 技术专家,是个有着 20 多年技术经验的 IT 老兵,长期从事 Web 后台服务器的研发,熟悉各种网络应用协议,专注于 C/C++、Linux、高性能编程等领域,也是 Nginx/OpenResty 开源项目贡献者。
他之前写过几本畅销书,比如《C++11/14 高级编程》《Nginx 完全开发指南》等等,能出书的,都是真正的行家里手,而且更懂如何讲的体系化。
再来说说专栏的「深度」,也是下足了功夫,全部基于最新的 RFC 标准文档,再结合老罗自己多年的实践体会,力求讲清讲透,能让你看了以后有豁然开朗的感觉。
在「动手实践」上,也独具特色。专栏里教你用 Nginx 搭建一个“麻雀虽小,五脏俱全”的实验环境,即使不联网,也能够在里面收发 HTTP 消息,让你与 HTTP 零距离接触。
更惊喜的是,专栏还精心设计了配套的测试用例,最小化应用场景,排除干扰因素,你可以在里面任意测试 HTTP 的各种特性,再配合 Wireshark 抓包,真正做到了理论结合实践。
最简单的浏览器 HTTP 请求过程
标签:协议,面试官,HTTP,每天,Web,Nginx,专栏 From: https://blog.51cto.com/u_15809510/7191188