Frontend / Network

OSI 七层模型与 TCP/IP 四层模型:计算机网络分层到底怎么理解

前言刚开始学计算机网络,最常见的一张图就是: 1234567应用层表示层会话层传输层网络层数据链路层物理层 这张图很经典,但也很容易让人产生一个误会:好像只要背下七层名字,就算理解网络了。 其实分层模型真正想表达的不是“有几个层”,而是: 一次复杂的网络通信,可以拆成多个职责清晰、彼此协作的阶段。 只要抓住这个思路,再看 OSI 七层模型和 TCP&#x2F...

计算机网络 HTTP TCP IP OSI
Frontend / Network

计算机网络学习地图:从分层模型到浏览器请求链路

前言学习计算机网络,最容易卡在两个地方: 知识点太多,协议名像一张散开的网。 只背概念,不知道它们在真实请求里站在哪一环。 所以这个专题的目标不是一口气背完所有协议,而是先建立一条主线: 1234567891011浏览器发起请求 ↓找到域名对应的 IP ↓建立连接 ↓传输请求和响应 ↓浏览器处理缓存、安全和跨域 ↓出现问题时能够定位是哪一层出了问题 1. 先...

计算机网络 HTTP HTTPS TCP DNS
Frontend / Engineering

SEO 进阶:怎么提升排名,以及怎么用数值衡量效果

前言上一篇《SEO 从 0 开始:搜索引擎如何理解一个网页》讲的是“理解 SEO”——搜索引擎怎么发现、收录、排名,前端该怎么配合。 但当基础配置都做完之后,新的问题就来了: 接下来怎么提升排名?我又怎么知道自己的 SEO 到底做得好不好?有没有数值标准? 这一篇就专门解决这个问题。它把 SEO 从“一次性配置”推进到“可量化的持续运营”。 整体分三块: 怎...

SEO 搜索引擎 排名优化 Search Console Core Web Vitals
Frontend / Engineering

SEO 从 0 开始:搜索引擎如何理解一个网页

前言SEO 是 Search Engine Optimization 的缩写,中文通常叫“搜索引擎优化”。 很多人一听 SEO,会以为它是“堆关键词”“骗搜索引擎”“想办法排第一”。这其实是很旧、也很危险的理解。 更准确地说,SEO 解决的是: 让搜索引擎更容易发现、理解、收录和展示你的内容,同时让真正的用户更愿意点击和阅读。 如果一篇文章写得很好,但搜索引...

SSR SSG 前端工程化 SEO 搜索引擎
Frontend / Engineering

一文讲清 CSR、SSR、SSG:前端页面到底在哪里渲染?

前言前端页面最终都会变成浏览器里的 HTML、CSS 和 JavaScript。 但问题是: 这份 HTML 是在哪里生成的? 是在浏览器里由 JavaScript 临时生成?是在服务器收到请求时实时生成?还是在项目构建时提前生成好? 这三个答案,分别对应了前端里最常见的三种渲染模式: CSR:Client-Side Rendering,客户端渲染 SSR:...

CSR SSR SSG ISR 前端渲染
Frontend / React

一文搞懂 SSR 水合(Hydration):从"能看"到"能点"

一文搞懂 SSR 水合(Hydration):从”能看”到”能点”如果你第一次听到”水合”这个词觉得莫名其妙,那很正常——它是 Hydration 的直译,本身是个比喻。这篇文章从零开始,把这个概念拆开讲清楚:它解决什么问题、具体发生了什么、为什么会出问题、以及业界怎么优化它。 一、先从两种渲染方式说起要理解水合,得先理解 CSR 和 SSR 各自的流程。 ...

SSR React Hydration 性能优化
Frontend / WeChat

微信小程序 JSBridge 详解:wx API 如何调用原生能力

📚 前言前两篇我们先建立了两条主线: 1小程序运行在微信客户端宿主环境里 以及: 1小程序页面由逻辑层和渲染层共同完成 这一篇继续往下讲: 小程序里的 wx.xxx API,为什么能调用微信和系统的原生能力? 比如: 1234wx.login()wx.scanCode()wx.getLocation()wx.chooseImage() 这些 API 看起来...

前端工程化 JSBridge Native 小程序运行时 微信小程序
Frontend / WeChat

微信小程序双线程架构详解:逻辑层、渲染层和 setData 链路

📚 前言上一篇我们从整体链路理解了微信小程序和小游戏: 123456789开发者代码 ↓微信基础库 ↓逻辑层 / 渲染层 / 游戏运行时 ↓JSBridge ↓微信客户端 Native 这一篇开始详细讲小程序最核心的运行模型: 1双线程架构 小程序很多问题都和它有关: 为什么不能直接操作 DOM? 为什么要用 setData? 为什么 setData 太频...

JSBridge WebView 小程序运行时 微信小程序 双线程架构
Frontend / WeChat

微信小程序和小游戏底层逻辑:从运行时链路开始理解

📚 前言如果要系统学习微信小程序和小游戏,不建议一开始就背 API。 更稳的入口是先问一个问题: 小程序和小游戏的代码,到底跑在哪里? 很多现象都能从这个问题推出来: 为什么小程序没有完整 DOM? 为什么更新页面要用 setData? 为什么频繁 setData 会卡? 为什么小程序能调用扫码、支付、定位这些原生能力? 为什么小游戏可以直接画 Canva...

前端工程化 JSBridge WebView 小程序运行时 微信小程序