阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

这个 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:1015025

评论 1 条评论

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

【动态规划/路径问题】强化 DP 分析方法练习题 ...

宫水三叶的刷题日记

面试 LeetCode 数据结构与算法

项目截图

赝品

还不懂云数据库Redis是什么?快上车,一张图带你了解!

浪潮云

云数据库

翻译:《实用的Python编程》04_04_Defining_exceptions

codists

Python

Hello World!!!

小太阳

深读golang中map后思考和借鉴

ninetyhe

源码 Go 语言

Python 基础语法

依旧廖凯

28天写作 3月日更

Python 变量类型

依旧廖凯

28天写作 3月日更

为什么选择python

张鹤羽

28天写作 3月日更

2021最新快手面经主动分享:Java面试神技/技术知识集合(10个专题详细介绍)

比伯

Java 编程 架构 面试 程序人生

Nacos配置安全最佳实践

Robert Lu

nacos 配置中心

Yarn日志聚合优化—摆脱HDFS依赖

笨小康

大数据 YARN

JAVA中的I/O模型-多路复用

Java 架构 计算机

Wireshark数据包分析学习笔记Day7

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

震荡的比特币:区块链的“照妖镜”

CECBC

数字货币

如何带团队?

石云升

程序员 28天写作 职场经验 管理经验 3月日更

已经整整10年了,经济学人分析日本福岛核泄漏事故带来的沉重影响

wbliu85

引爆40亿播放的抖音春节道具,背后是怎样的技术?

字节跳动技术团队

价值感知:如何评价企业IT项目的价值?

boshi

价值传递 七日更 项目经验

ARTS - Week 6

Khirye

Java LeetCode arts

数字货币持币生息钱包系统开发搭建

薇電13242772558

区块链 数字货币

【笔记】第七周 第1课

Geek_娴子

华为不养猪,小米没造车,“巨头错觉”是怎么来的?

脑极体

FutureTask源码解析

程序员星星toC

多线程 Future future设计模式

【20万大奖】参加APICloud3.0案例与AVM组件大赛,赢现金大奖

YonBuilder低代码开发平台

开发者 大前端 APP开发 APICloud

关于写东西的一点思考

道伟

28天写作

如何破解区块链人才的结构性问题?

CECBC

区块链

终于有人把 "高可用" 说清楚了

架构精进之路

3月日更

HashData携手中国移动 共筑通信技术数字化之路

酷克数据HashData

数据库 解决方案

LeetCode题解:125. 验证回文串,双指针,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

一名优秀的女程序员是如何炼成的?我们跟爱奇艺的五位工程师姐姐聊了聊

爱奇艺技术产品团队

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