HTTP头查询

使用我们的HTTP头查询工具获取URL在典型GET请求中返回的所有HTTP头信息。

2 个评分中的 5 个
HTTP头查询

HTTP头查询是一款免费工具,可获取指定 URL 在典型 GET 请求下返回的全部 HTTP 响应头。

什么是 HTTP 响应头?

HTTP 响应头是 Web 服务器在响应正文之前发送的元数据。响应正文可以是 HTML 页面、图片或 JSON 文档。响应头会告诉客户端应如何解析、缓存、重定向或保护该响应。

HTTP/1.x 响应通常以 HTTP 状态行开头,后面才是响应头。在 HTTP/2 和 HTTP/3 中,对应的状态信息位于 :status 伪头字段中。严格来说,HTTP/1.x 状态行并不属于响应头,但通常会与响应头一起显示,因为它能说明请求是否成功。状态码 200 表示资源已返回,301 或 302 表示发生重定向,404 表示未找到资源,500 则表示服务器端错误。

响应头可能来自源服务器、反向代理,也可能来自 Cloudflare 等内容分发网络。响应经过这些系统时,某些头字段可能会被添加或删除,因此查询结果反映的可能不只是生成页面的应用。

示意图:向服务器发出请求并返回其 HTTP 响应头

如何查询 HTTP 响应头?

输入要检查的完整 URL,包括协议部分,例如 https://www.example.com/account。工具会从服务器发出一个典型的 GET 请求,并返回从该 URL 收到的 HTTP 响应头。

如需准确比较响应头,请分别使用你要调查的确切 URL。http://example.com、https://example.com 和 https://www.example.com 的响应头可能不同,因为每个地址都可能有各自的重定向、缓存规则和服务器配置。

URL 的写法也会影响请求:

  • 空格不能作为原始字符直接出现在 URL 中,通常需要进行百分号编码。在路径中,一般编码为 %20。
  • ? 用于引出查询部分。& 和 = 常用于表单式查询编码,但并非在所有查询字符串中都具有这些作用。
  • 包含重音字符或非拉丁字符的域名会通过 IDNA 处理,并表示为 ASCII A-label,通常以 xn-- 开头。路径字符一般先编码为 UTF-8 字节,再进行百分号编码。
  • 以 # 开头的片段由浏览器处理,不会随 HTTP 请求发送。
  • URL 没有统一的最大长度限制。过长的 URL 可能被服务器、代理或应用拒绝。
digily.link 上的 HTTP头查询 工具及其输入表单

如何看懂 HTTP 响应头查询结果?

重点检查与你正在排查的问题相关的头字段。头字段名称不区分大小写,但其值的语法可能区分大小写。

结果字段 表示什么
Location 重定向的目标地址,通常与 3xx 状态码一起出现。
Content-Type 返回内容的媒体类型,例如 text/html、application/json 或 image/png。
Content-Length 服务器提供该字段时,其中会声明响应正文的大小,以字节为单位。分块传输或动态生成的响应可能没有此字段。
Cache-Control and Expires 响应的缓存指令,以及在提供时显示的过期时间。
Age 缓存响应自生成或上次验证以来计算得出的存续时间,可能包含其在上游缓存中的时间,以秒为单位。
ETag and Last-Modified 客户端可用来检查缓存内容是否已发生变化的验证信息。
Set-Cookie 要求客户端存储 Cookie,其中可包含 Secure、HttpOnly 和 SameSite 等属性。
Content-Security-Policy 用于限制页面可以加载哪些脚本、样式、框架及其他资源的浏览器规则。
Strict-Transport-Security 指示兼容浏览器在指定期限内使用 HTTPS。

其他响应头可能由具体应用自行定义。例如,Access-Control-Allow-Origin 控制哪些来源可以通过浏览器跨源请求读取响应。Server 头可能会显示某种软件或代理的名称,但它不能可靠证明底层平台是什么,因为管理员可以修改或删除该字段。

HTTP头查询 工具生成的结果示例

常见的实际故障排查场景

重定向问题是查看响应头的常见原因之一。假设 https://example.com/old-page 返回状态码 301,并带有 Location: https://example.com/new-page。这表示服务器要求客户端访问新地址。持续逐一检查各个目标地址,可以发现重定向循环,或 HTTP 与 HTTPS 之间的意外切换。

如果 Cloudflare 或其他 CDN 后面的页面内容没有更新,请检查 Cache-Control、Age、ETag 以及服务商特有的缓存头。较大的 Age 值表示缓存响应计算得出的存续时间,其中可能包含响应在上游缓存中的时间,并不表示某个特定中间节点保存它的时长。它也不能证明所有地区的缓存都持有同一版本。

如果某个 API 在服务器端脚本中可以使用,但在浏览器中失败,请检查 Content-Type 和 CORS 响应头,包括 Access-Control-Allow-Origin。如果 JSON 接口返回 text/html,它实际提供的可能是错误页面或登录页面。即使服务器返回状态码 200,缺少跨源访问权限也可能导致浏览器阻止访问。

响应头也能帮助排查网站看似无法访问的问题。503 响应通常指向临时性的服务器或上游故障,404 则表示找不到所请求的路径。不过,响应头无法诊断所有故障。如果在产生 HTTP 响应之前,DNS 解析、TCP 连接或 TLS 协商就已失败,可能根本没有响应头可供检查。Ping工具可用于单独检查网络连通性,HTTP/2协议检查则可检查协议支持情况。

为什么正确的查询结果看起来仍然不对?

即使查询结果正确,也可能与浏览器中看到的不同,因为缓存、DNS 记录和请求上下文可能会让两个请求得到不同的响应。此查询在服务器端运行,因此它可能访问不同的 CDN 节点,也可能比你的本地网络更早或更晚解析到刚刚变更的 DNS 记录。

浏览器还会发送自己的 Cookie、可接受的内容类型、语言设置和缓存验证信息。因此,已登录的 WordPress 页面可能使用与匿名服务器请求不同的缓存规则。地理路由和机器人管理系统也可能根据来源网络或请求头返回不同响应。

修改 DNS 后,缓存解析器可能会继续使用之前的记录,直到其生存时间到期。即使流量已经到达新服务器,旧的 CDN 对象或浏览器缓存仍可能返回早先的内容。请单独检查解析到的主机,在适当情况下清除缓存,并比较完全一致的 URL,不要假定所有主机名都使用相同配置。

常见问题

这个工具会显示请求头吗?

不会。它获取的是指定 URL 在典型 GET 请求下返回的响应头。请求头是发送给服务器的元数据,如需完整查看,应另行使用浏览器开发者工具、服务器日志或命令行客户端。

输入工具的 URL 会被保密吗?

查询在服务器端执行。你的输入会通过 HTTPS 传输到该服务器,并且不会被存储。不要输入含有密码、访问令牌或敏感查询参数的 URL,因为发起请求时,目标服务器同样会收到这些值。

HTTP 响应头能解释证书警告吗?

通常不能仅靠响应头判断。TLS 连接会在发送 HTTP 响应之前建立,因此证书过期、主机名不匹配或颁发者不受信任,都可能导致无法返回任何响应头。如果浏览器在页面加载前就显示警告,请单独检查证书及其证书链。

为什么会返回多个 Set-Cookie 响应头?

一个响应可以设置多个 Cookie,每个 Cookie 都使用独立的 Set-Cookie 字段。不要把它们当作以逗号分隔的列表合并,因为 Cookie 的过期日期本身也可能包含逗号。请分别检查每个 Cookie 的域、路径和安全属性。

可以把查询结果与 curl 对比吗?

可以。使用 curl -D - https://example.com/ -o /dev/null 这样的命令,可以输出响应头并丢弃响应正文。不同的 curl 版本、请求头、重定向设置和网络位置都可能产生不同结果,因此在把差异视为服务器故障之前,请先确保这些条件一致。

热门工具