アドレスバーからテキストを抽出して正しいURLにマッピングし、後でリダイレクトするなど、URL短縮サービスはどのように機能するのでしょうか。彼らはどのプログラミング言語を使用していますか?マッピングの履歴をどのように維持しますか?短縮URLの一意性をどのように保証しますか?素人がURLにアクセスせずにマップを解除するにはどうすればよいですか?
アドレスバーからテキストを抽出して正しいURLにマッピングし、後でリダイレクトするなど、URL短縮サービスはどのように機能するのでしょうか。彼らはどのプログラミング言語を使用していますか?マッピングの履歴をどのように維持しますか?短縮URLの一意性をどのように保証しますか?素人がURLにアクセスせずにマップを解除するにはどうすればよいですか?
回答:
基本的に、bit.lyのように、短い名前のWebサイトがプレースホルダーとして使用されます。
次に、bit.lyはユーザーが提供するキーを生成します。このキーは、繰り返されないようにランダムに生成されます。35文字のオプションと8程度の値を使用して、計算を行います。それは多くの可能な鍵です。URLが既存のキーと等しい場合、キーも再利用することをどこかで読んだことを覚えています。
彼らは実際には特定のプログラミング言語を使用していません。単純なURLリダイレクトを使用しているだけです。これは私が信じているHTMLで実行できます。
URLショートナーは、ショートコードを生成し、ターゲットURLをショートコードにマップして、新しいURLを提供するだけです。URLにアクセスすると、ショートコードをキーとしてデータベースルックアップが実行され、ターゲットURLにリダイレクトされます。短縮URLとリンク先URLの間にはアルゴリズムによる関連付けがないため、URL短縮サービスのシステムを経由せずに「マップ解除」することはできません。
あなたはどんなプログラミング言語とデータストアでもそれをすることができます。コード生成は、一意性を確保するためにも簡単です。増分する主整数キーがある場合は、キーをbase62としてエンコードし、それを提供するだけです。コードは本質的にインクリメンタルであるため、競合が発生することはありません。
プロセスは実際には非常に単純です。URLを要求し、ランダムな文字列を生成し(そして、この文字列がまだ使用されていないことを確認し)、2つをある種のデータベースに配置するスクリプトがあります。URLをリクエストすると、別のスクリプトがデータベースでランダムな文字列を探し、見つかった場合はサイトにリダイレクトします。
もちろん、これは、悪用防止、URLフィルタリング、スパム防止、URL検証などの必要な機能のため、本番環境ではより複雑です。しかし、これらの実装は非常に簡単です。
言語は無関係であり、ほとんどの人がそうします。
<key, url>