web-dev-qa-db-ja.com

URL Shortenerはどのように機能しますか?

URL Shortenerは、アドレスバーからテキストを抽出し、正しいURLにマッピングし、後でリダイレクトするなど、どのように機能するのでしょうか。彼らはどのプログラミング言語を使用していますか?マッピングの履歴をどのように維持しますか?短縮URLの一意性をどのように保証しますか?素人はURLにアクセスせずにマップを解除できますか?

81
prap19

Wikiはあなたの友達です

基本的に、短い名前のWebサイトは、bit.lyなどのプレースホルダーとして使用されます。

次に、ユーザーが提供するキーをbit.lyが生成します。これは、繰り返さないようにランダムに生成されます。 35文字のオプションと8程度の値で、計算を行います。それは多くの可能なキーです。 URLが既存のキーと等しい場合、キーを再利用することをどこかで読んだことを覚えています。

特定のプログラミング言語を実際に使用するのではなく、単純なURLリダイレクトを使用するだけで、HTMLを使用して行うことができます。

36

URLショートナーは、ショートコードを生成し、ターゲットURLをショートコードにマップして、新しいURLを提供するだけです。 URLにアクセスすると、ショートコードをキーとしてデータベース検索が実行され、ターゲットURLにリダイレクトされます。短縮URLとリンク先URLの間にアルゴリズム的な関連付けはないため、URL短縮システムを経由せずに「マッピング解除」することはできません。

任意のプログラミング言語とデータストアで実行できます。コード生成は、一意性を確保するためにも簡単です。プライマリ整数キーが増加している場合、キーをbase62としてエンコードし、それを提供できます。コードは本質的にインクリメンタルであるため、競合することはありません。

23
Chris Heald

プロセスは実際には非常に簡単です。URLを要求するスクリプトがあり、ランダムな文字列を生成し(この文字列がまだ使用されていないことを確認します)、この2つを何らかのデータベースに入れます。 URLをリクエストすると、別のスクリプトがデータベース内でランダムな文字列を検索し、見つかった場合はサイトにリダイレクトされます。

これは、悪用防止、URLフィルタリング、スパム防止、URL検証などの必要な機能のために、実稼働環境ではもちろんより複雑です。しかし、これらは実装が非常に簡単です。


言語は無関係であり、ほとんどの人が行います。

19
TheLQ