智能体刷屏的背后,是 AI 应用拐点的来临?AICon 北京站议程重磅公布,50+ 硬核分享不容错过 了解详情
写点什么

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

  • 2019-06-20
  • 本文字数:1824 字

    阅读完需:约 6 分钟

这个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-06-20 18:1015235

评论 1 条评论

发布
用户头像
标题党
2021-05-26 21:31
回复
没有更多了
发现更多内容

技术分享 | TiUP工具 - TiDB集群滚动升级核心流程解析

TiDB 社区干货传送门

TiDB常用SQL

TiDB 社区干货传送门

性能调优 集群管理

为什么vue3要选用proxy,好处是什么?

hellocoder2029

JavaScript

TiFlash 源码阅读(六) DeltaTree Index 的设计和实现分析

TiDB 社区干货传送门

深聊Nodejs模块化

coder2028

node.js

汇总LED显示屏专业知识

Dylan

LED LED显示屏 led显示屏厂家

教你一招,安全的从 MySQL 切换到 TiDB

TiDB 社区干货传送门

迁移 实践案例

深度理解NodeJS事件循环

coder2028

node.js

技术公开课|深度剖析 Java 的依赖管理,快速生成项目 SBOM清单

墨菲安全

Java SBOM 软件供应链安全

将业务从mysql迁移至TIDB,有哪些需要注意的?

TiDB 社区干货传送门

管理与运维 应用适配 大数据场景实践

React-hooks+TypeScript最佳实战

xiaofeng

React

Vue3, setup语法糖、Composition API全方位解读

yyds2026

Vue

腾讯大神亲码Redis技术笔记,实战+原理双管齐下

小小怪下士

Java redis 程序员 腾讯

令人头疼的Javascript隐式&强制转换

hellocoder2029

JavaScript

前端懒加载和预加载

hellocoder2029

JavaScript

腾讯会议后台研发效能提升之路

博文视点Broadview

TiFlash 源码阅读(七)TiFlash Proxy 模块

TiDB 社区干货传送门

安防厂商在企业数字化转型中的机遇和挑战

慕枫技术笔记

AIOT 11月月更

双机热备软件原理简单说明以及品牌重点推荐

行云管家

高可用 ha 热备 双机热备

Java后端面试到底要如何准备?

钟奕礼

Java 程序员 java程序员 java面试 java编程

深度阐述Nodejs模块机制

coder2028

node.js

TiFlash 源码阅读(八)TiFlash 表达式的实现与设计

TiDB 社区干货传送门

老板拍脑袋决策,团队群魔乱舞

填空时光

决策 团队内耗 企业敏捷

React中常见的TypeScript定义实战

xiaofeng

React

Webpack中的plugin插件机制

Geek_02d948

webpack

详解webpack构建优化

Geek_02d948

webpack

React性能优化的8种方式

xiaofeng

React

Vue.nextTick核心原理

yyds2026

Vue

解读Vue3模板编译优化

yyds2026

Vue

深度解读Webpack中的loader原理

Geek_02d948

webpack

BI口碑分析,Quick BI何以连续入选魔力象限

巷子

这个HTTP的面试题,竟然80%的面试者都不知道?| 极客时间_文化 & 方法_罗剑锋_InfoQ精选文章