这个 HTTP 的面试题,竟然 80% 的面试者都不知道?| 极客时间

阅读数:14034 2019 年 6 月 20 日 18:10

这个HTTP的面试题,竟然80%的面试者都不知道?| 极客时间

长达三个月的打磨,我们的《透视 HTTP 协议》专栏上线了。

当时想要出这个选题的时候,其实来源于和一位面试官的交谈。他说面试一年多,每当问起面试者对 HTTP 的了解时,经常出现这样的情形:

面试官:请问你了解 HTTP 协议吗?
前端开发:这不是应该后端清楚的吗?
后端开发:这不应该是前端知道的吗?
面试官:…

而这些开发着都有 3-5 年的开发经验,问到 HTTP 的时候却一脸茫然,可能大多数程序员都觉得 HTTP 太常见了,反而会觉得面试官为什么会问一些这么普遍的问题呢?

其实无论是前端还是后端,都需要了解 HTTP。前端接触相对较多的是在其上层的 HTTP 协议,包括承载请求的 HTTP 和 HTTPS 协议,需要对请求的全过程有一个深刻的认识。尤其是在如今大环境下,前端路由的控制越来越多,深刻理解 HTTP 的 Header、Body 等属性是很有好处的。

学好了 HTTP 对于 Web 开发和性能优化等都有用处。比如页面资源的缓存策略,如果对 HTTP 协议不够了解,就没法进行方案的制定或者优化。页面资源加载速度的优化,也同样离不开对 HTTP/2 的了解。

可能很多人的第一反应是:“HTTP 协议好简单的啦,还出个专栏,有这个必要吗?” “HTTP 不就是请求 / 响应、GET/POST、Header/Body 吗?网络上的资料一抓一大把,有什么问题搜一下就是了。”

所以我们做了一个小范围的“调查”,各个领域的都有,比如产品、开发、运维、测试、前端、后端、手机端……想看看他们有什么意见。

出乎意料,他们无一例外都对这个“HTTP 专栏”有很强烈的需求,想好好“补补课”,系统地学习了解 HTTP,这其中甚至还包括有七、八年(甚至更多)工作经验的老手。

这不禁让我们陷入了思考,为什么如此“简单”的协议却还有这么多的人想要学呢?

一个原因可能是 HTTP 协议“太常见”了,就像现实中的水和空气一样,如此重要却又如此普遍,普遍到我们几乎忽视了它的存在。真的很像那句俗语所说:“鱼总是最后看见水的”,但水对鱼的生存却又是至关重要。

因此我们开设了这门《透视 HTTP 协议》,没错,就是“透视”。HTTP 只是表面上显得简单,而底层的运行机制、工作原理绝不简单,可以说是非常地复杂。只是我们平常总是“KPI 优先”,网上抓到一个解决方法用过就完事了,我们希望通过这门专栏带你深究里面的要点和细节。

我们请了长期从事 Web 后台服务器的研发工作的罗剑锋老师(网名 Chrono)来写这个专栏,他熟悉各种网络应用协议,专注于 C/C++、Linux、高性能编程等领域,毕业于北京理工大学计算机专业,是奇虎 360 技术专家,Nginx/OpenResty 开源项目贡献者。

同时,罗剑锋老师还是《C++11/14 高级编程》《Boost 程序库完全开发指南》《Nginx 完全开发指南》《OpenResty 完全开发指南》等畅销书的作者。

我们准备怎么设计这个专栏呢?

罗老师说了,他为这个专栏定了一个基调:“要有广度,但更要有深度”。目标是成为含金量最高的 HTTP 学习资料,新手可以由浅入深、系统学习,老手可以温故知新、查缺补漏,让你花最少的时间,用最少的精力,掌握最多、最全面、最系统的知识。

由于 HTTP 应用得非常广泛,几乎涉及到所有的领域,所以我们会在广度上从 HTTP 尽量向外扩展,不只讲协议本身,与它相关的 TCP/IP、DNS、SSL/TLS、Web Server 等都会讲到,而且会把它们打通串联在一起,形成知识链,让你知道它们之间是怎么联系、怎么运行的。

专栏文章的深度上老师也是下足了功夫,全部基于最新的 RFC 标准文档,再结合老师自己多年的实践体会,力求讲清讲透,能让你看了以后有豁然开朗的感觉。

陆游有诗:“纸上得来终觉浅,绝知此事要躬行”。学习网络协议最重要的就是实践,在专栏里还会教你用 Nginx 搭建一个“麻雀虽小,五脏俱全”的实验环境,让你与 HTTP 零距离接触。

它有一个最大的优点:自身就是一个完整的网络环境,即使不联网也能够在里面收发 HTTP 消息。

另外还精心设计了配套的测试用例,最小化应用场景,排除干扰因素,你可以在里面任意测试 HTTP 的各种特性,再配合 Wireshark 抓包,就能够理论结合实践,更好地掌握 HTTP 的知识。

每一讲的末尾,会给大家留几个思考题,你可以把它当作是求职时的面试官问题,尽量认真思考后再回答,这样能够把专栏的学习由“被动地听”,转变为“主动地学”,实现“学以致用”。

如果学习中遇到问题,也欢迎在专栏中跟我一对一的互动。

今年是万维网和 HTTP 诞生 30 周年,也是 HTTP/1.1 诞生 20 周年,借用莎翁《哈姆雷特》里的名句,“To Be a HTTP Hero!” ,戳此 >>> 订阅专栏或者试读,让我们在接下来的三个月里一起努力。

收藏

评论

微博

用户头像
发表评论

注册/登录 InfoQ 发表评论