当前位置: 首页 > news >正文

HEAD ` 只返回响应头(Headers),不返回正文内容(Body)


✅ 首先回顾:HEAD 方法的定义

在 HTTP 协议中,HEAD 方法的作用是:

向服务器请求与 GET 相同的响应,但不返回响应体(Body)


📌 所以——

HEAD 只返回响应头(Headers),不返回正文内容(Body)

例如:

HEAD /index.html HTTP/1.1
Host: www.example.com

服务器可能会返回:

HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 10240
Last-Modified: Wed, 12 Jun 2024 10:00:00 GMT(注意:没有正文 Body)

🔍 为什么不需要返回 Body?

原因主要有以下几点:

1. 💡 减少带宽消耗

  • HEAD 用于获取资源元信息(如大小、类型、最后修改时间等),而不是资源本身。
  • 节省带宽和时间,尤其在文件较大时不必下载全部内容。

2. 🔍 用于检测资源状态

典型用途:

用途描述
是否存在资源检查返回的状态码:200 存在、404 不存在
是否需要更新缓存资源配合 Last-ModifiedETag
获取文件大小查看 Content-Length
检测资源是否可访问返回 403/401 等状态码

3. ✅ 与 GET 保持一致的响应头

虽然不返回内容,但返回的响应头信息应该与 GET 方法完全一致,所以你能知道如果真的用 GET,会得到什么类型的响应。


🔧 应用场景举例

✅ 示例 1:预检测文件大小

curl -I https://example.com/big-video.mp4

-I 就是 HEAD 请求)

返回内容:

HTTP/1.1 200 OK
Content-Type: video/mp4
Content-Length: 1550000000

你就知道这是一个 1.5GB 的视频,不用先下载。


✅ 示例 2:检查资源是否更新(浏览器缓存机制)

浏览器可能发送:

HEAD /article.html HTTP/1.1
If-Modified-Since: Wed, 12 Jun 2024 10:00:00 GMT

服务器返回:

HTTP/1.1 304 Not Modified

这样浏览器就知道可以使用缓存内容,不用重新下载了


✅ 总结

问题答案
HEAD 为什么不返回正文内容?因为它的设计目标是仅获取资源的元信息,节省带宽,提高效率,不需要实际内容本身。
使用场景?资源是否存在、缓存验证、文件大小检测、权限检查等。
GET 区别?GET 返回正文,HEAD 不返回正文;其余行为应一致。

如你想看 HEAD 方法的代码实现(如 Python requests,Node.js,或服务器端如何响应 HEAD),我可以为你举例说明。是否需要?

http://www.xdnf.cn/news/1039411.html

相关文章:

  • OD 算法题 B卷【路灯照明II】
  • C++如何自己实现一个shared_ptr
  • Flutter网络请求完全指南:http与Dio库深度解析
  • 如何安全高效地维护CMS智能插件?
  • JavaScript基础-DOM事件流
  • 零基础入门PCB设计 一实践项目篇 第二章(开发板电源设计)
  • 力扣Hot100每日N题(15~16)
  • 基于docker技术的单主机环境模拟测试批量客户端
  • Vue3 响应式翻牌抽奖游戏
  • 【系统分析师】第5章-基础知识:数据库系统(核心总结)
  • 并行编程实战——CUDA编程介绍
  • 嵌入式PADS中生产资料导出操作与实现
  • NCNN 模型文件的生成流程详解
  • 鸿蒙系统备份恢复
  • 【0.4 漫画计算机网络基础】
  • 思科资料-ACL的基础配置-详细总结
  • UGPCL
  • 德国马克斯·普朗克数学研究所:几何朗兰兹猜想
  • 上位机开发中的设计模式(3):装饰器模式
  • SCADE Suite / Scade 6 官方参考材料介绍
  • 理论物理学中的规范场论与全息原理
  • 6.14星期六休息一天
  • 单片机 - STM32F407 ADC 模式详解:单次转换、连续转换、扫描模式、非扫描模式
  • 项目 【Http】第二讲---CGI机制的介绍
  • 【Unity】使用 C# SerialPort 进行串口通信
  • Java 常用类 Math:从“如何生成随机密码”讲起
  • LCEL:LangChain 表达式语言详解与测试工程师的实践指南
  • 钉钉机器人-自定义卡片推送快速入门
  • wget批量调用shell脚本
  • C#里与嵌入式系统W5500网络通讯(7)