2012-04-16 8 views
0

私はstumbleupon.comを実行しており、ユーザーはサイトのデータベースに追加するサイトを送信できます。ユーザーが追加したサイトが実際のWebサイトであるかどうかを確認するプログラムを作成する方法はありますか?または、404に私が「welp、それはいくつかのバグだった」と言うことができますか、またはURLを送信するときにユーザーがエラーを起こした可能性がありますか?または、私が給与計算機に人を置く必要がありますか?404ページはすべて共通のものですか?404ページは通常のページと区別できますか?

答えて

4

要求からの応答コードは、サーバーからの良好な応答を得る200の成功メッセージではなく、404が見つかりませんでした。チェックを簡単に自動化できます。

+1

いくつかのまれな状況では、無作為なWeb管理者が、ステータスコード200の「見つからない」ページを返すようにWebサーバーを設定することが知られています。 – Spacedman

1

私はPythonについてあまり知らないので、私はクライアント側のソリューションを提供しています。

ユーザーがページを送信するとすぐにURLが正当であるかどうかを確認できます。たぶん '確認用のURL'メッセージなどを投げてしまうかもしれません。

this methodを使用すると、クロスドメインコールを行ってそのサイトが実際に存在するかどうかを確認できます。その後、間違いを修正するか、URLの送信を許可するようにメッセージを表示することができます。このソリューションでは、Yahooをプロキシとして使用していますが、下の私の超シンプルな機能でわかるように、機能します。

function doAjaxCheck(url){ 
// if the URL starts with http 
if(url.match('^http')){ 

    //add a 'loading message here, or something'   

    // assemble the YQL call  
    $.getJSON("http://query.yahooapis.com/v1/public/yql?"+ 
      "q=select%20*%20from%20html%20where%20url%3D%22"+ 
      encodeURIComponent(url)+ 
      "%22&format=xml'&callback=?", 
    function(data){ 
     if(data.results[0]){ 
     alert('it is OK'); 
     } else { 
     alert('not OK'); 
     } 
    } 
); 
} else { 
    $.ajax({ 
    url: url, 
    timeout:5000, 
    success: function(data){ 
     alert('it is OK'); 
    }, 
    error: function(req,error){   
     if(error === 'error'){error = req.statusText;} 
     alert('not OK : ' + error); 
    } 
    }); 
} 
} 

しかし、これはすべて、私は信頼性のためにサーバー側のチェックに行くと言いました。

関連する問題