【网络专栏】3. 缓存+安全专题:改了封面用户刷不出来?抓包看不懂HTTPS?一篇搞定面试+工作
学习背景HTTP缓存是性能优化最基础、性价比最高的手段HTTPS是线上产品的标配两者都是面试必考题日常排障高频点。很多人背了“强缓存不发请求”“HTTPS默认443端口”可真遇到「用户说歌词更新了但看不到」「为什么装个证书就能抓HTTPS包」这类实际问题完全不知道从哪下手。这篇用音乐APP场景讲透原理同时给你面试话术和排查步骤学完直接能用。第一部分HTTP缓存机制一、强缓存 vs 协商缓存核心区别是什么缓存的本质已经下载过的资源别每次重新下载能复用就复用既省流量又提速度。HTTP缓存分两级优先级从高到低先走强缓存强缓存过期了再走协商缓存。1. 强缓存根本不发请求速度最快强缓存阶段浏览器判断本地缓存还没过期就完全不向服务器发请求直接读本地文件。这是加载最快的方式。控制它的两个响应头Cache-Control: max-agexxx当前主流方案单位是秒。比如max-age86400代表24小时内直接用本地缓存不发请求。Expires旧标准写一个具体的过期时间点。缺点是依赖客户端本地时间用户改系统时间就会失效现在基本被前者替代。音乐APP场景专辑封面、歌手头像、APP图标、固定的静态资源都会设置较长的强缓存二次打开秒加载。2. 协商缓存先问服务器再决定用不用强缓存到期后浏览器不会直接下载新文件而是发一个轻量请求问服务器这个文件变了吗没变服务器返回304浏览器继续用本地缓存变了服务器返回200和新文件浏览器下载覆盖旧缓存。控制它的两组配对头方案服务器响应头客户端请求头特点按修改时间Last-ModifiedIf-Modified-Since精度到秒一秒内多次修改识别不了按内容指纹ETagIf-None-Match根据文件内容生成唯一标识精度更高推荐用二、304状态码到底是什么触发条件是什么很多人面试被问“304触发条件”答不全这里给你标准答案含义服务器告知客户端资源未修改直接复用本地缓存响应不携带资源内容只返回响应头。触发条件缺一不可强缓存已过期进入协商缓存阶段请求头携带了协商缓存标识If-None-Match或If-Modified-Since服务器校验后确认资源内容/修改时间没有变化。易错点提醒强缓存命中时根本不发请求绝对不会出现304304只属于协商缓存的命中结果。三、实战排障改了资源用户刷不出来按这个步骤查音乐APP运营经常遇到换了专辑封面、改了歌词用户说刷新还是旧的。按顺序排查99%能定位第一步看强缓存是不是时间设太长了浏览器根本没发请求第二步看文件的ETag/Last-Modified有没有更新是不是服务器没生成新标识终极解决方案更新静态资源时文件名加版本号/hash值比如cover_v2.jpg从根源避开缓存不一致问题。四、面试标准答法强缓存和协商缓存的核心区别强缓存不发起HTTP请求直接用本地资源速度更快协商缓存会发起请求校验服务器判断资源是否更新未更新则返回304复用缓存。控制头强缓存靠Cache-Controlmax-age和Expires协商缓存靠ETag/If-None-Match、Last-Modified/If-Modified-Since两组。304是协商缓存命中的标志代表资源未修改客户端复用本地缓存。第二部分HTTPS与加密机制一、HTTP 和 HTTPS 核心区别不用零散记抓住4个核心点就够传输安全HTTP明文传输抓包能直接看到账号密码、接口参数HTTPS全程加密中间人截获也是乱码。默认端口HTTP默认80端口HTTPS默认443端口。证书依赖HTTP不需要证书HTTPS需要CA机构颁发的SSL证书用来验证身份。性能损耗HTTP速度更快HTTPS多了加密解密和握手过程有轻微性能损耗。二、对称加密 vs 非对称加密HTTPS里怎么分工HTTPS不是只用一种加密而是把两种加密的优点结合起来了。1. 两种加密的区别对称加密同一把钥匙加密解密都用它。优点运算速度极快适合加密大量数据缺点密钥怎么安全传给对方是难题传输中被截获就等于没加密。非对称加密一对钥匙公钥私钥。公钥可以公开给所有人私钥只有自己留着。公钥加密的内容只有私钥能解开。优点不用偷偷传密钥安全性高缺点运算速度极慢不适合加密大量数据。2. HTTPS里的分工搭配干活一句话记住非对称加密负责安全交换密钥对称加密负责加密真实业务数据。完整流程握手阶段服务器把公钥发给客户端客户端生成一个随机的对称密钥用服务器公钥加密后发过去服务器用私钥解密拿到对称密钥。数据传输阶段两边都有了同一把对称密钥后续所有接口、网页数据都用对称密钥加密解密兼顾安全和速度。三、CA数字证书为什么必须有它有人会问黑客也能自己生成一对公私钥冒充网站啊没错这就是CA证书存在的意义——解决公钥的身份信任问题。1. 通俗理解CA就是网上的公证处正规网站拿着自己的公钥、域名信息去CA机构申请公证CA核实网站身份属实用自己的私钥给网站公钥盖章做成数字证书发给网站浏览器和操作系统里提前内置了各大CA的公钥公章模板。收到网站证书后用CA公钥一验章是真的就说明这个公钥确实属于这个网站不是黑客伪造的。2. 没有CA证书会有什么问题会发生中间人攻击黑客拦在你和音乐网站中间把自己的公钥发给你你以为是网站的公钥用它加密密码黑客用自己的私钥就能解开你的账号、支付信息全泄露。3. 实战问题为什么装了证书就能抓HTTPS包做测试、调试接口常用Charles、Fiddler抓HTTPS原理非常简单抓包工具自己生成一套假证书你手动把它装到手机/电脑上并且选择信任——相当于你主动告诉系统这个“公证处”我认。之后抓包工具就充当中间人一边冒充服务器和你通信一边冒充你和真实服务器通信两边的加密它都能解开自然就能看到明文接口数据了。本质区别正规HTTPS是防陌生人偷看抓包是你自己授权信任了中间人属于主动放行。四、面试标准答法HTTP和HTTPS核心区别HTTP明文传输默认80端口无需证书HTTPS基于SSL/TLS加密默认443端口需要CA证书安全性更高。对称加密单密钥、速度快密钥传输有风险非对称加密公私钥成对、安全但性能差。HTTPS中用非对称加密协商对称密钥后续用对称加密传输数据兼顾安全与效率。CA证书用来验证服务端公钥的合法性防止中间人攻击没有CA证书无法确认公钥归属加密传输存在被冒充的风险。注不少读者私信问网络协议刷题资料怎么准备文中截图就是我自用的 HTTP/HTTPSTCP 全套习题集一共 35 道面试高频考题每道题附带完整答题思路与原理解析。这套题库免费分享给所有粉丝想要完整学习网址的朋友评论区留言我会逐一私信发给你。