前端工程师应该对 HTTP 了解到什么程度?从哪些途径去熟悉更好?

在工作中发现自己对 http 概念太模糊, 对细节不了解, 导致在问题方向上出错. 但是发现 http 这个好深, 所以问下大家, 前端工程师应该熟悉…
关注者
2,104
被浏览
201,347

36 个回答

我个人认为如果前端工程师想走技术路线的话(也就是长远目标是资深前端工程师和架构师),那必须充分了解 HTTP。

作为一位熟练的前端工程师,至少应该能在调试 HTTP 时毫无障碍。你要轻松看明白捕获回来的 HTTP 请求,并且知道是不是其中某个地方有问题导致出现你想要修复的 bug,如何处理能够最终修复这个 bug。常见的问题包括,某些必要的 header 字段没有设置,或者设置得不正确,还有就是编码方式不正确。可以说调试往往是前端工程师接触到 HTTP 最多的地方。

如果你已经开始做前后端交互 API 的设计工组,要考虑是不是把 API 设计为符合 REST,这时候你必须非常熟悉 HTTP 协议。各种状态码和 header 字段分别是用来干什么的,你都需要很清楚,绝对不能重复发明轮子。同时还要考虑如何传输数据更佳高效,这时候你就要设计合理的 cache 规则。

总之,HTTP 往往是前端工程师最容易忽略掉的一块。很多人觉得前端就是 HTML、CSS、JavaScript。对比起算法和数据结构来说,前端忽略 HTTP 的后果更严重。有时间的话,建议读 RFC 2616,至少挑重点来读。还有时间可以看看 Roy Fielding 那篇关于 REST 的论文。

其实我到感觉前端应该了解从http发起请求,到dns到apache,到某后端语言,然后回来,浏览器渲染的整个过程。这样有助于更好的把前端做好,也为了方便问题的排查。

其实我一直认为这是一个很好的面试题,比一上手问人闭包,更具有实战意义。

以下是积累的一些资料,分享一下,希望有用:

浏览器的工作原理:现代网络浏览器幕后揭秘

浏览器的工作原理:现代网络浏览器幕后揭秘

NutUX

从浏览器的渲染原理讲CSS性能-Smallni's blog

浏览器的渲染原理简介

javascript文件并行加载与顺序执行 《高性能javascript》读书笔记
js 并行加载与顺序执行
从输入 URL 到页面加载完成的过程中都发生了什么事情? FEX 做最专业的前端
NutUX
浏览器的工作原理:新式网络浏览器幕后揭秘
js和css的顺序关系%E5%92%8Ccss%E7%9A%84%E9%A1%BA%E5%BA%8F%E5%85%B3%E7%B3%BB

js css的顺序
Javascript 装载和执行
浏览器加载和渲染html的顺序


DNS工作流程及原理 域名、IP与DNS的关系_longshu_新浪博客

DNS工作流程及原理 浅说域名、IP与DNS的关系

DNS域名服务器

HTML解析原理

浏览器加载渲染网页过程解析--总结(三)

浏览器加载渲染网页过程解析(二)

前端必读:浏览器内部工作原理

浏览器的工作原理:现代网络浏览器幕后揭秘


HTTP协议详解(真的很经典)

超文本传送协议

TCP与UDP区别_动物园黑手党

php和apache的关系和作用


有其它疑问,加群吧:389875212,禁止闲聊,非喜勿加。