You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何CMD与PHP cURL请求同一站点返回不同HTTPS状态码?

为何PHP cURL请求OnlyFans返回403,而CMD的cURL返回200?

使用PHP cURL请求https://onlyfans.com时返回403状态码,但用CMD的cURL命令测试却能返回200,这是为什么?

CMD cURL命令

curl -I -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" https://onlyfans.com --ssl-no-revoke

CMD请求结果:
CMD请求结果截图

PHP cURL代码

<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, "https://onlyfans.com");
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36");
curl_setopt($ch, CURLOPT_SSL_OPTIONS, CURLSSLOPT_NO_REVOKE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
//curl_setopt($ch, CURLOPT_VERBOSE, true);

$response = curl_exec($ch);

if (curl_errno($ch)) {
    echo "cURL Error: " . curl_error($ch);
} else {
    echo $response;
}

curl_close($ch);
?>

PHP请求结果:
PHP请求结果截图

补充:开启VERBOSE后的输出

PHP cURL verbose输出截图

可能的原因及解决方案

1. 请求头不完整

CMD的curl默认会自动携带部分请求头(如Accept、Accept-Language),而PHP cURL默认不会设置这些。OnlyFans的反爬机制会校验请求头的完整性,缺失关键头会触发403。

解决办法:手动添加完整的请求头:

curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
    'Accept-Language: en-US,en;q=0.5',
    'Connection: keep-alive',
    'Upgrade-Insecure-Requests: 1'
]);

2. Cookie会话差异

CMD curl可能会复用本地缓存的Cookie,而PHP cURL默认是无状态请求,没有携带Cookie。部分网站会通过Cookie验证请求合法性。

解决办法:启用Cookie持久化:

// 保存Cookie到文件
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
// 读取Cookie文件发送请求
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');

3. SSL/TLS版本不匹配

PHP cURL依赖的SSL库版本可能与CMD curl不同,导致TLS握手时被服务器拒绝。

解决办法:强制指定TLS版本:

curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2);

4. HEAD请求限制

虽然CMD用了-I(对应PHP的CURLOPT_NOBODY=true)发送HEAD请求,但服务器可能对PHP环境的HEAD请求有额外限制。

解决办法:尝试关闭CURLOPT_NOBODY,获取完整响应:

curl_setopt($ch, CURLOPT_NOBODY, false);

5. IP地址被封禁

PHP运行环境(如服务器)的IP可能被OnlyFans列入黑名单,而本地CMD使用的IP未被限制。

解决办法:检查IP是否可正常访问OnlyFans,必要时更换IP或使用代理。


内容的提问来源于stack exchange,提问作者unice

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 02:22:13