前端工程师应该对 HTTP 了解到什么程度?从哪些途径去熟悉更好?
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,到某后端语言,然后回来,浏览器渲染的整个过程。这样有助于更好的把前端做好,也为了方便问题的排查。
其实我一直认为这是一个很好的面试题,比一上手问人闭包,更具有实战意义。
以下是积累的一些资料,分享一下,希望有用:
从浏览器的渲染原理讲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_新浪博客
有其它疑问,加群吧:389875212,禁止闲聊,非喜勿加。