GMTC 全球大前端技术大会(北京站)门票 9 折特惠中,点击立减 ¥480 了解详情
写点什么

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

2019 年 6 月 20 日

这个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!” ,戳此>>>订阅专栏或者试读,让我们在接下来的三个月里一起努力。


2019 年 6 月 20 日 18:1014502

评论

发布
暂无评论
发现更多内容

架构师训练营大作业二

kawayi

十一周作业

架构师训练营 4 期 第2周

引花眠

架构师训练营 4 期

架构训练营第十二周作业

一期一会

hdfs hive 大数据MapReduce

架构师训练营 week12 学习笔记

花果山

大作业(二)

TheSRE

第 12 周 系统架构作业

心在那片海

第 12 周 系统架构总结

心在那片海

大作业(二)

Pyr0man1ac

Java并发编程总结

topsion

Java 并发编程 多线程

架构师训练营第 1 期 - 大作业 (一)

wgl

架构师训练营第 1 期

给我结果

三只猫

28天写作

大作业1

架构师设计大作业一

小诗

「架构师训练营第 1 期」

架构师训练营第 1 期 - 大作业 (二)

wgl

架构师训练营第 1 期

大作业2

记一次缓存服务器迁移史,心塞!

冰河

高并发 高性能 分布式缓存 数据同步 服务器迁移

软件架构总结图

dll

【薪火计划】10 - 目标计划管理

brave heart

管理 28天写作

SpringMVC学习!

程序员的时光

程序员 28天写作

架构师训练营第十二周作业1

韩儿

技术人小故事-团队愿景篇-第3段

Ian哥

28天写作

大作业

solike

价值 - 什么是有价值的事?(3)

石云升

读书笔记 28天写作 价值

十二、数据应用(一)

Geek_28b526

精选算法面试-栈

李孟

算法 堆栈 28天写作

架构师训练营大作业(一)

月殇

「架构师训练营第 1 期」

28 天带你玩转 Kubernetes-- 第三天(K8s 安装)

Java全栈封神

Kubernetes k8s 28天写作 k8s安装

架构师训练营大作业二

一马行千里

架构师训练营第 1 期

架构师训练营大作业(二)

月殇

一个技术主管的年终管理心得

陆陆通通

程序员 技术管理 28天写作

DIY 的 Kubernetes 集群的稳定性保障实践

DIY 的 Kubernetes 集群的稳定性保障实践

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