每次你访问网页,发出的 HTTP 请求其实分三段:第一行说「要什么」,最后一段是可选的内容,而中间那一片密密麻麻的「名字: 值」小条,就是请求头。代理IP语境下谈请求头,谈的就是这片承载元信息的区域。
请求头里装的是关于请求本身的说明:谁在访问、想要什么格式、接受什么语言、带没带登录凭证。它不是给用户看的内容,而是给服务器读的说明书——服务器靠它决定怎么回应这次请求。
这篇把请求头是什么讲清楚:它长在请求的哪个位置、装的是什么性质的信息、以及为什么它值得单独认识。
请求头长在请求的哪里
一个完整的 HTTP 请求由三部分叠成:最上面是请求行,写着方法(比如 GET、POST)和要访问的地址;中间是请求头,一行行元信息;最后才是请求体,装着 POST 时要提交的数据。多数请求没有请求体,但几乎每个请求都有请求头。
请求行与请求头之间用换行分隔,请求头与请求体之间用一个空行分隔。这个空行是边界信号:服务器读到空行,就知道头已经结束、体(如果有)从这里开始。位置规矩,解析才不混乱。
请求头里装的是什么
请求头装的全是「关于请求的信息」,而不是内容本身:它告诉服务器这次访问来自什么软件、偏好什么语言、能接受什么格式、是否带着登录状态。服务器不会从请求头里读取业务数据,它只读这些描述性的元信息。
把这些元信息想成寄包裹时填的单子:收件地址是请求行的活,而「要不要签收、放不放驿站、怕不怕摔」这些要求写在备注里——备注就是请求头。它不改变包裹内容,只影响对方怎么处理这次寄送。
为什么请求头值得单独认识
因为网络世界的许多行为差异都由它解释:同一个网址,不同语言的人看到不同页面,是请求头里的语言偏好起作用;登录过的账号自动识别,是请求头带着凭证;代理IP链路对请求的许多改写,改的也多是请求头区域。看懂请求头,就拿到了理解 HTTP 通信与代理IP链路的一把钥匙。
请求头是 HTTP 请求里的元信息层:位置在请求行与请求体之间,内容是给服务器的说明书,代理IP链路对请求的处理大多发生在这层。
请求行说要什么,请求体给内容,请求头则告诉服务器「这次请求该怎么被对待」——三层各司其职。
知道请求头是一行行「名字: 值」的小条之后,下一个问题自然冒出来:这一行行小条具体是怎么写的,有什么格式规矩?下一篇从格式讲起。
把请求头放进一次完整请求里看,它的位置与作用就都清楚了:请求行开门见山,请求头交代细节,请求体装真正的内容。三层合起来才是完整的 HTTP 请求,缺了请求头这层,服务器就只能靠猜——这也是为什么所有标准请求都带着它。
日常浏览中你几乎感觉不到请求头的存在,但它每时每刻都在工作:每一次登录状态的维持、每一种语言页面的返回、每一份正确格式的响应,背后都有请求头在传达信息。它像空气一样不被注意,却撑起了 HTTP 通信的大部分智能。
理解请求头还有一个实用入口:浏览器的开发者工具里能看到每个请求的完整头部,打开看一眼,你会发现刚才讲的三段结构一目了然。看得多了,陌生网站的行为模式也能从请求头里读出端倪,代理IP场景排查也从这里开始。
给这篇总纲收个尾:请求头不难,难的是第一次接触时不知道它整体长什么样。现在你已经知道它是什么、装什么、在哪——后面的篇章就是往这个框架里填细节,代理IP语境下读懂请求头的能力会一步步建立起来。
