哪些HTTP状态码应该考虑为死链接?

3
我们正在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是否为损坏/死链接。


“Broken link” 意味着所请求的资源不存在,因此 404 是适当的。 - Alexandru Guzinschi
1个回答

2
记住5个HTTP状态码类别:1xx Continue(协议切换),2xx OK,3xx Redirect,4xx client error,5xx server error。
如果您的Curl客户端遵循重定向(3xx),我认为您只需测试该状态代码<= 299。所有其他状态代码都会产生“损坏的链接”。
根据您的测试深度,您还可以考虑以下情况:
- 401未经授权/ 403禁止:资源需要身份验证。这并不意味着链接已损坏,而是授权的客户端可能会看到它,而其他客户端则不会。 - 204无内容:资源可访问但不返回任何内容。某些分析资源返回204。但视觉效果将是损坏的图像或指向空页面的链接。
如果您的目标是更改损坏链接的显示,则可以使用JavaScript在客户端管理它,但它可能仅限于您的域。请参阅this question

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接