head请求

HEAD 请求方法是 HTTP 协议中的一种请求方法,它的作用与 GET 方法类似,但它只返回响应头(Headers),不会返回响应体(Body)

如果只需要资源的信息,而不需要实际内容(比如检查图片是否更新),使用 HEAD 可以减少不必要的数据传输。

Head请求的用途

1. 检测资源是否可用

通过 HEAD 请求,可以检查 URL 是否可用,而不必下载整个资源

2. 检查资源是否更新

如果想避免重复下载,可以用 HEAD 请求检查 Last-ModifiedETag

3. 预检查文件大小

如果想知道一个大文件的大小,但不想下载它:

 

为什么开发中不太常见

许多 RESTful API 只实现了 GET / POST / PUT / DELETE,而忽略了 HEAD,因为:

  • HEAD 只是 GET 的子集,开发者觉得没必要单独实现。
  • 许多 Web 框架默认不会提供 HEAD 处理(或者 HEAD 只是 GET 的一个变体)。
  • 大部分应用并不关心只获取 Headers,而是直接请求完整数据。

HEAD 请求的前端 & 后端示例

 前端:用 fetch 发送 HEAD 请求

fetch("https://example.com", { method: "HEAD" })
  .then(response => {
    console.log(response.headers.get("content-length")); // 获取资源大小
    console.log(response.headers.get("last-modified"));  // 检查是否更新
  });

后端:用 Express 处理 HEAD 请求

const express = require("express");
const app = express();

app.head("/check", (req, res) => {
  res.set({
    "Content-Type": "text/plain",
    "Content-Length": "123"
  });
  res.status(200).end(); // 结束响应,不发送 Body
});

app.listen(3000, () => console.log("Server running on port 3000"));

 

posted @ 2025-03-14 10:34  我是格鲁特  阅读(343)  评论(0)    收藏  举报