9.4 头部

9.4 头部

我们正在用 C 语言构建一个多线程代理文件服务器,我们在其中接收请求并使用 libcurl 库从另一个位置检索它。

该库为您提供了发出 HEAD 请求来获取一些文件参数(例如大小等)的选项。

当您实际开始提供文件时,您也可以获取这些参数。

一位同事指出,执行 HEAD 请求后立即获取文件是一种浪费。我同意他的观点,但我想知道是否存在提前知道文件大小可能有用的用例?

  • 例如选择最佳 MTU。
  • 例如,如果文件很大,则设置线程优先级。
  • 例如,当我们有一个大文件时,为了防止消耗太多内存,可以减少总体线程数。

除此之外,在代理文件服务器场景中检索文件之前查询文件大小时是否存在安全问题?

答案1

请求函数已经说明了一切:

9.4 头部

HEAD方法与 相同,GET只是服务器不得在响应中返回消息主体。响应请求的 HTTP 标头中包含的元信息HEAD应与响应请求发送的信息相同GET。此方法可用于获取请求所暗示的实体的元信息,而无需传输实体主体本身。
此方法通常用于测试超文本链接的有效性、可访问性和最近修改。

我希望代理主要使用HEAD请求来确定已缓存的对象是否仍然有效并且可以返回而不是启动新的下载。

相关内容