为了账号安全,请及时绑定邮箱和手机立即绑定

请问各大服务器对HEAD协议支持情况如何呢?

请问各大服务器对HEAD协议支持情况如何呢?

PHP
慕运维8079593 2023-04-14 11:18:27
我的程序里允许用户填写网址从其它网站抓取资源,但是在抓取之前我要知道资源的大小,要不然资源太大耗时太长也会占用不必要的带宽。我查到了http里面有HEAD这个协议,就是只获取一个资源的http头部信息,那么在curl里怎么只获取http的头而不下载全部body呢?还有content-length是所有的http头部信息里必须都有的吗,因为我只有这个办法来获取资源大小了。如果没有这个信息,我想用一个替代方法,就是设置curl下载资源的最大长度,如果超过了就中断连接,然后报错。在curl有达到此类效果的选项吗?
查看完整描述

2 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

为什么要用curl呢?直接用fsockopen往那边发一个head请求就行了。

不过head请求不一定会返回资源的大小,这个似乎不是可以保证的。


查看完整回答
反对 回复 2023-04-18
?
HUWWW

TA贡献1874条经验 获得超12个赞

curl_setopt($curl, CURLOPT_HEADER, true);

curl_exec返回的结果中也就包含了HTTP response header,其中抽取 Content-Length 值就可以了

HTTP/1.1 200 OKServer: ApacheContent-Type: text/htmlContent-Encoding: gzipContent-Length: 26395

这个长度值不可靠,服务器后端脚本可以任意修改该值。


查看完整回答
反对 回复 2023-04-18
  • 2 回答
  • 0 关注
  • 73 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信