最近在带新人做工业公开数据采集项目的优化,发现一个很普遍的问题:很多人花了大量精力做UA轮换、代理池搭建、浏览器指纹混淆,结果脚本还是频繁返回403,抓包对比了半天,最后发现问题出在最基础的请求头上——要么Referer乱写,要么Origin字段乱加,要么Cookie硬编码过期,反爬系统只需要做一轮请求头完整性校验,直接就把请求标记为异常流量了。很多人对反爬的认知都集中在指纹、IP、验证码这些高阶对抗上,却忽略了一个最基础、成本最低、同时拦截率极高的校验环节:请求头完整性验证。事实上,目前绝大多数中小站点的反爬体系里,请求头校验都是第一道防线,至少能拦截掉80%以上的粗糙采集脚本。这篇文章就从实战角度,拆解Referer、Cookie、Origin这三个最容易出错的请求头字段,讲清楚反爬到底在校验什么、常见的错误写法有哪些、以及如何正确构造符合真实浏览器特征的请求头。一、为什么请求头校验能拦下这么多脚本很多人对请求头校验的理解还停留在「有没有这个字段」的层面,以为随便加上Referer、Cookie就能蒙混过关。但实际上,现代反爬系统的请求头校验是一套完整的多层级逻辑,查的不是「有没有」,而是「对不对」。正常浏览器发出的请求,字段的组成、顺序、取值都是有固定规律的,完全符合浏览器的默认行为。而采集脚本经常出现三类典型问题:字段缺失:缺少Accept、Accept-Langu