Какие коды статуса HTTP мы должны рассмотреть для мертвых ссылок
Мы выполняем вызов curl из PHP ниже.
$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 ответ
Запомните 5 классов кодов HTTP Status: 1xx Continue (переключение протокола), 2xx OK, 3xx Redirect, ошибка клиента 4xx, ошибка сервера 5xx.
Если ваш клиент Curl следует перенаправлениям (3xx), я думаю, что вы можете просто проверить этот код состояния <= 299. Все остальные коды статуса приведут к "неработающей ссылке".
В зависимости от того, насколько глубоким является ваш тест, вы также можете подумать о следующих случаях:
- 401 Unauthorized / 403 Forbidden: ресурс требует аутентификации. Это не означает, что ссылка не работает, но авторизованный клиент может ее видеть, а другие - нет.
- 204 Нет содержимого: ресурс доступен, но не возвращает никакого содержимого. Некоторые аналитические ресурсы возвращают 204. Но визуальным результатом будет сломанное изображение или ссылка на пустую страницу.
Если ваша цель - изменить отображение неработающей ссылки, вы можете использовать Javascript для управления ею на стороне клиента, но это может быть ограничено вашим доменом. Смотрите этот вопрос