阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

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

评论 1 条评论

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

ubuntu下docker配置:python,cuda教程。

百度搜索:蓝易云

Python Docker Linux ubuntu cuda

Android端自定义铃声

MobTech袤博科技

智能推送

来看看 Discourse 3.2.0.beta2 版本添加的新功能

HoneyMoose

文件夹图标修改器 Folder Factory最新中文版

胖墩儿不胖y

Mac软件 文件夹图标修改工具

阿尔比特质押 ARBT 代币挖矿系统开发(源码搭建)成熟技术

l8l259l3365

揭开 Amazon Bedrock 的神秘面纱 | 基础篇

亚马逊云科技 (Amazon Web Services)

sdk 生成式人工智能 Amazon VPC

如何一键私有化部署 Laf ?

米开朗基杨

2023-10-21:用go语言,一共有三个服务A、B、C,网络延时分别为a、b、c 并且一定有:1 <= a <= b <= c <= 10^9 但是具体的延时数字丢失了,只有单次调用的时间 一次调

福大大架构师每日一题

福大大架构师每日一题

Nautilus Chain 与 Coin98 生态达成合作,加速 Zebec 生态亚洲战略进

威廉META

文心一言 VS 讯飞星火 VS chatgpt (117)-- 算法导论10.3 2题

福大大架构师每日一题

福大大架构师每日一题

快速入门SRPC

1412

c++ 开源 workflow srpc 脚手架

csh与bash区别及csh常用语法

百度搜索:蓝易云

云计算 unix 运维 Shell csh

基于TOGAF和WAF的企业级架构

俞凡

架构

Nautilus Chain 与 Coin98 生态达成合作,加速 Zebec 生态亚洲战略进程

EOSdreamer111

Python 循环

小万哥

Python 程序员 软件 后端 开发

Nautilus Chain 与 Coin98 生态达成合作,加速 Zebec 生态亚洲战略进程

股市老人

Docker环境下部署Linux服务器ssh管理面板easynode

百度搜索:蓝易云

Docker 云计算 Linux SSH EasyNode

多年没有遇到如此流畅的面试了

HoneyMoose

What's new in Arana v0.2.0

apache/dubbo-go

MySQL开发

体育直播观看平台开发成品源码”解决方案,提升用户的使用消费体验

软件开发-梦幻运营部

Nautilus Chain 与 Coin98 生态达成合作,加速 Zebec 生态亚洲战略进程

鳄鱼视界

反敏捷宣言

俞凡

敏捷

vm虚拟机:VMware Fusion Pro 13 for mac

展初云

虚拟机 Mac软件 VM虚拟机

DaVinci Resolve Studio 18补丁中文包

胖墩儿不胖y

视频处理 Mac软件 视频编辑处理工具

Sublime Text 4 for Mac代码编辑器

展初云

软件 Mac 代码编辑器

Linux文件的目录结构解析

智趣匠

AI 画图,DALL.E 3 正式发布!全面解读 OpenAI 公告

豆哥

openai AI绘画 DALL.E 3

Project Office X for Mac项目管理软件

展初云

Mac 项目管理软件 Mac软件

简化

agnostic

软件工程

【运维】mysql与mongo的自动备份脚本

百度搜索:蓝易云

MySQL mongodb 云计算 Linux 运维

Android推送问题排查

MobTech袤博科技

智能推送

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