我们应该为死链接考虑哪些HTTP状态代码

时间:2016-04-28 06:41:57

标签: php http-status-codes broken-links link-checking

我们正在执行以下来自PHP的curl调用。

$url = $fullurl;

if (isset($url)) {
    $ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch , CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
$headers = curl_getinfo($ch);
curl_close($ch);

$check_url_status =  $headers['http_code'];
if ($check_url_status == '200')
    $ress = "Link Works";
else
    $ress =  "Broken Link";

}

我们应该考虑使用哪些其他HTTP状态代码来检查URL是否不是断开/死链接。

1 个答案:

答案 0 :(得分:2)

记住5个HTTP状态代码类:1xx继续(协议切换),2xx OK,3xx重定向,4xx客户端错误,5xx服务器错误。

如果您的Curl客户端遵循重定向(3xx),我认为您只需测试该状态代码< = 299.所有其他状态代码将成为“断开的链接”。

根据您的测试深度,您还可以考虑这些案例:

  • 401 Unauthorized / 403 Forbidden:资源需要验证。这并不意味着链接被破坏,但授权客户可能会看到它,而其他人则不会。
  • 204 No Content:资源可以访问但不返回任何内容。一些分析资源返回204.但是视觉结果将是一个损坏的图像或指向空白页面的链接。

如果您的目标是更改已损坏链接的显示,则可以使用Javascript在客户端管理它,但它可以仅限于您的域。见this question