【发布时间】:2011-12-28 22:16:38
【问题描述】:
首先我初始化 curl 句柄:
$ch = curl_init();
接下来我设置 url 和 referer 标头:
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_REFERER,$referer);
最后执行语句:
curl_exec($ch);
现在我可以在不关闭并重新打开句柄的情况下使用另一个 url,所以:
curl_setopt($ch,CURLOPT_URL,$another_url);
这里开始头疼了,因为我不知道如何禁用将发送到服务器的referer 标头,当然我尝试将false 和null 放入CURLOPT_REFERER 但它会导致referer 字段为空的,即Referer: 仍然发送到服务器,但没有任何价值(这对于 http 规范是否正确?)。
是否有任何选项可以在不关闭和重新实例化 curl 句柄的情况下完全删除标题?
我想避免它,因为 curl 会在一段时间内保持连接打开,如果我在从同一主机下载时不断关闭句柄,则可能需要更多时间。
【问题讨论】:
-
您必须完全删除标题吗?难道你不只是将它设置为与您请求的 url 相同,或者与上一个请求中的 url 相同吗?
-
是的,我愿意。可能有非常严格的服务器应该在引用中。直到现在我还没有遇到任何,但我提前询问。问题真的是,如果这种行为在 http 规范方面是正确的?
-
如果有bug,可以给我链接吗?
标签: php curl http-headers libcurl