【发布时间】:2017-03-25 14:18:34
【问题描述】:
有一个函数(下面的代码)来验证一个 URL 是否确实存在,但遇到了一个失败的函数。不过它在浏览器中是works fine,这就是为什么我很好奇为什么这个 URL 会失败。
我得到的回复是:
HTTP/1.1 400 Bad Request
content-length: 378
x-synthetic: true
expires: Thu, 01 Jan 1970 00:00:00 UTC
pragma: no-cache
cache-control: no-cache, must-revalidate
content-type: text/html; charset=UTF-8
connection: close
date: Sat, 25 Mar 2017 14:05:45 UTC
x-contextid: 1INsx8lY/G2fZ1ojZ
x-via: 1.1 echo105
<html>
<head>
<title>400 Bad Request</title>
<style> body { background-color: #F2F2F2; color: #3E3E3E; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; } pre { word-wrap: break-word; } </style>
</head>
<body>
<h1>400 Bad Request</h1>
<p><pre>1INsx8lY/G2fZ1ojZ @ Sat, 25 Mar 2017 14:05:45 GMT</pre>
<p><pre>SEC-43</pre>
<p><pre></pre>
</body>
</html>
神秘的上下文 id 和时间戳不断变化,否则我会得到相同的结果。
- 无论我在该网站上尝试哪个页面,似乎都会发生这种情况
- 在本地(Windows 上的 xampp)和远程在我可以访问的网络酒店(one.com、unix/lamp-type-stack)上发生
- 尝试将用户代理设置为我的 Firefox 的副本,但也无济于事。
- 在终端中运行
curl -i -X HEAD https://www.bergenadventistkirke.com确实工作......但这只会让我更加困惑......
我尝试搜索“错误请求”和“SEC-43”,但我似乎只看到一堆显示相同错误 html 的结果。点击它们会导致错误的证书、其他错误,或者它们会重定向到其他地方。
有人知道这里发生了什么吗?
恶意软件?某种神奇的非浏览器流量阻塞?
代码
<?php
$c = curl_init();
curl_setopt_array($c, [
CURLOPT_URL => 'https://www.bergenadventistkirke.com',
CURLOPT_HEADER => true,
CURLOPT_FOLLOWLOCATION => true,
]);
ob_start();
curl_exec($c);
curl_close($c);
header('content-type: text/plain; charset=utf-8');
echo ob_get_clean();
【问题讨论】:
标签: php curl bad-request