2012-02-27 11 views
0

私のサイトの一部では、ユーザーがURLを入力できるようにします。私はappengineに取り組んでいるので、私が考えていたことは、このようにそれを検証することです。この種のURL検証には何らかの欠点がありますか

try 
    response = urlfetch.fetch(url,follow_redirects=True, deadline=1) 
    if not response.status_code==200: 
     raise SomeCustomException 
except: Exception as e: 
    my_exception_handling_code(e) 

利点

URLパターンのための
  • チェック自動的
  • もURLが壊れていないことを確認していないとロード時間が時に優れたユーザーエクスペリエンスを確保するために支援し、もはや1秒以下であります私のサイトのリンクをクリックしてください。私が見ることができる

可能短所:

  • 要求が完了するのフェッチを待つ必要があります。これは非常に大きな問題ではないでしょう。ユーザーがURLを入力できる機会はほとんどありません(現在はサインアップ時のみです)。
+0

解決済み。私に知らせるためのthxx。 – bigblind

+0

なぜ 'urlparse'モジュールを使用していませんか? URLからページを読み込んでも、リンクの有効性が増していくので、あまり意味はありません。あなたがそれをチェックした直後にリンクが死んでいく可能性があるので、これで何を達成することを望んでいますか?ユースケースは何ですか? –

+0

あなたが正しいです、入力した直後にリンクが壊れてしまい、リンクが読み込まれるまでに時間がかかることがありますが、大部分の場合はそうではなく、特定のサブネットワークからしか届かない場合もありません。このサイトは技術に精通していないユーザーのために作られているので、私はそこに人があまりにも多くの奇妙なものを入れるとは思っていません。リンクは結局壊れるだろうが、回避可能な404やスローロードのページの大部分を残すことを望んでいる。 – bigblind

答えて

2

これは悪い考えです。 S. Lott氏は指摘しているように、現在はURLが利用できない可能性があります。あるいは、特定のサブネットワークからしか利用できないかもしれません。または、それをロードするのに1秒以上かかる。ただこれをしないでください。従来のアプローチ、たとえばurlparse

1

サイトのユーザーが投稿するたびにURLをポーリングするとわかった場合、投票に投票したりページビューをラッキングしたりするなどの目的でURLを悪用する可能性があります。