只看响应头,判断这个 API 来自官方、Bedrock、Vertex 还是逆向
前面几篇讲过多维交叉验真伪。这篇只抠一个信号——HTTP 响应头,把它讲透。很多时候不看正文,光看 header 就能判断这个 API 到底从哪来。
为什么响应头是强线索
模型正文可以被网关随意改写,但响应头往往带着上游基础设施的"出厂印记":谁家的服务器、经过了哪些代理、有没有官方特有的标记。除非中转刻意逐个清洗,否则这些印记会漏出来。
先把响应头打印出来
import requests
r = requests.post("https://你的中转/v1/chat/completions",
headers={"Authorization":"Bearer sk-xxx"},
json={"model":"gpt-4o-mini","messages":[{"role":"user","content":"ping"}],"max_tokens":5})
for k, v in r.headers.items():
print(f"{k}: {v}")
常见来源的头部特征
| 来源 | 典型特征头 | 说明 |
|---|---|---|
| OpenAI 官方 | openai-organization、openai-processing-ms、x-request-id、cf-ray(其 CDN) | 组织号 + 处理耗时齐全 |
| Anthropic 官方 | anthropic-*、request-id、x-should-retry | 原生 Anthropic 标记 |
| AWS Bedrock | x-amzn-requestid、x-amzn-bedrock-* | 亚马逊请求 ID / Bedrock 专有头 |
| Google Vertex | x-goog-*、server: ESF 之类 Google 前端标记 | 谷歌基础设施印记 |
| 逆向 / 套壳 | 上述特征头几乎全被剥光,只剩通用 content-type / date / 反代的 server: nginx | 干净得反常 = 可疑 |
一句话经验:该有的官方头齐全 → 偏向真源;被剥得干干净净、只剩裸头 → 逆向/套壳嫌疑大。
三个实操判断技巧
1)看 server 与 CDN 头
真官方多挂 Cloudflare / 自有前端(cf-ray、特定 server)。如果 server: nginx 且无任何厂商头,多半是中间自建反代。
2)看有没有"处理耗时/请求号"
openai-processing-ms、x-amzn-requestid 这类是上游真实生成的,逆向渠道通常给不出、或给了个对不上的假值。
3)看流式响应的分块特征
真流式(SSE)响应头带 content-type: text/event-stream、transfer-encoding: chunked,且事件是逐字增量吐;假流式(整段生成再切片)常缺这些头、节奏也不对。
# 流式探测:看是不是真 SSE
r = requests.post(url, headers=headers, json={**body, "stream": True}, stream=True)
print(r.headers.get("content-type")) # 期望 text/event-stream
for line in r.iter_lines():
if line: print(line[:80]) # 观察是否逐字增量、字段是否原生
注意:头部会被清洗,别单靠它下结论
响应头是强线索但非铁证——讲究的中转会伪造或补齐特征头,粗糙的逆向会漏。所以头部判断要和正文指纹、能力表现结合:头部干净 + 能力也缩水,基本可以定性;头部齐全但能力翻车,说明特征头是伪造的。
懒得逐个头去比对?
各家特征头又多又杂,还随基础设施升级变动,人工逐个记忆比对不现实。
推荐 CheckToken(Token检测):**https://www.checktoken.cn/**。它的"签名检测"这一项就是自动解析响应头/流式结构里的来源特征,结合指纹、能力等其他维度,给出「疑似官方直连 / 逆向 / 掺水 / 非目标模型」的综合判定,不用你手动背各家头部特征,也不存 Key。
总结
响应头是判断 API 来源的高性价比信号:官方/Bedrock/Vertex 各有专有头,逆向套壳则被剥得反常干净。配合处理耗时、请求号、真假流式一起看,就能快速定位来源。记住它是强线索不是铁证,和正文能力交叉才稳。
相关阅读
立即免费检测你的 API Key
立即使用 CheckToken 检测