首页/网络/协议速查/HEAD 只取响应头
HTTP 方法与状态码91 条

HEAD 只取响应头

与 GET 相同的请求语义,但服务器不得返回响应体,只返回状态行与头信息。

协议速查网络更新于 2026-10-13

HEAD 是什么

HEAD 的请求语义与读取方法完全相同,唯一的差别是服务端不得返回响应体,只返回状态行与头部。它因此成为探测资源元信息最省流量的手段:判断资源是否存在、查看体积与最后修改时间、确认缓存与跳转配置,都不需要传输内容。规范要求它的头部必须与对应读取方法的结果一致,否则依赖它的下载器、缓存与健康检查都会做出错误判断。

基本信息

名称HEAD,定义见方法与状态码相关章节
作用探测资源存在性与元数据,不返回内容
特性安全且幂等
与读取方法关系请求语义相同,仅不返回响应体
规范要求头部应与对应读取方法的结果保持一致

典型使用场景

  • 健康检查:用极小的开销确认服务与资源是否可用
  • 下载前探测:先拿到体积与最后修改时间再决定是否下载
  • 缓存校验:确认资源是否变化以及缓存策略是否如预期
  • 跳转检查:确认地址是否发生跳转以及目标地址
  • 发布校验:上线后确认资源是否已更新、体积是否正确

探测文件元信息

探测文件元信息
curl -I https://www.example.com/big.iso   # 只取头部,不下载内容
# 关注体积、最后修改时间与缓存指令
curl -sI https://www.example.com/ | head -5   # 快速看状态行与关键头部
curl -s -o /dev/null -w '%{http_code} %{size_download}\n' -I https://www.example.com/   # 脚本里确认下载体积为零

使用时的注意点

注意点说明
头部必须与读取方法一致实现偷懒会让缓存与下载器判断错误
不能用于获取内容它天生没有响应体,不要用它做内容探测
行为可能被中间层改变不同边缘节点对它的处理策略可能不同

排查要点

  • 探测结果与读取方法不一致时,优先怀疑中间层对两种方法的处理不同
  • 用它的结果判断内容是否变化并不可靠,应该比对校验值
  • 批量健康检查要注意某些服务对它返回拒绝,改用读取方法但只取头部
部分框架不支持该方法时,规范允许按读取方法处理并丢弃响应体。因此它在不同实现下可能产生一次完整的源站处理开销,用它做高频健康检查前应当先确认服务端的实际行为。
某些中间层对它的处理与读取方法不同:边缘节点可能直接返回缓存元信息,也可能转发到源站。排障时只依据它的结果,可能与用户实际请求的表现不一致。

易错点

  • 用它的结果判断内容是否变化,头部一致并不代表内容一致
  • 把它当成无开销操作用于高频健康检查,部分实现会完整处理请求
  • 中间层对它的处理与读取方法不同,据它下结论导致排障方向错误
  • 用它探测内容类型却忽略了它没有响应体,无法获取实际内容特征

数据来源与参考

  • RFC 9110 §9.3.2 HEAD

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌