Клиентская часть простая:
$('a').click(function(e){
e.preventDefault();
$.post('ping.php', {url: this.href}, function(status){
// ожидаем что сервер вернет ввиде ответа код статуса ресурса
if (status == 200) {
window.location = this.href;
}
});
});
На сервере, если это php - через curl делать запрос ресурса. Для примера ищи "профессоров" php.
Вобще, для удобства нужно проверять ресурс не по клику, а раньше, выводя значек доступности или недоступности. Хотя тогда будет много лишних запросов. Если не критично - можно на сервере кэшировать результаты запроса, например каждый час. Причем когда данные в кэше имеются, то можно вообще без ajax иконки выводить.